Desarrollar una aplicación

Para implementar la aplicación en Vertex AI, crea una instancia nueva de ReasoningEngine y pasa la clase de aplicación como parámetro. Si deseas ingresar dependencias de paquetes para tu aplicación, usa los siguientes parámetros:

  • requirements: Una lista de dependencias de paquetes PyPI externos. Cada línea debe ser una sola string. Para obtener más información, consulta el Formato de archivo de requisitos.
  • extra_packages: Es una lista de dependencias de paquetes internas. Estas dependencias de paquetes son archivos locales o directorios que corresponden a los paquetes locales de Python que requiere la aplicación.

En el siguiente código, se muestra cómo implementar una aplicación:

DISPLAY_NAME = "Demo Langchain Application"

remote_app = reasoning_engines.ReasoningEngine.create(
    reasoning_engines.LangchainAgent(
        model=model,
        tools=[get_exchange_rate],
        model_kwargs=model_kwargs,
    ),
    requirements=[
        "google-cloud-aiplatform",
        "langchain",
        "langchain-core",
        "langchain-google-vertexai",
        "requests==2.*",
    ],
    display_name=DISPLAY_NAME,
)
remote_app

Cuando implementes una aplicación en Reasoning Engine, pasa un objeto nuevo en lugar de reutilizar uno existente. De esta manera, evitas la creación de un objeto que haya inicializado datos que no se pueden serializar, como las conexiones y los servicios de bases de datos en su método .set_up.

La implementación de la aplicación tarda unos minutos en ejecutarse. Compila contenedores y activa servidores HTTP en el backend. La latencia de implementación depende del tiempo total que lleva instalar los paquetes obligatorios.

Una vez implementado, remote_app corresponde a una instancia de CLASS_NAME que se ejecuta en Vertex AI y que se puede consultar o borrar. Es independiente de las instancias locales de CLASS_NAME.

Cada aplicación implementada tiene un identificador único. Ejecuta el comando siguiente a fin de obtener el identificador resource_name para tu aplicación:

remote_app.resource_name

resource_name tiene el siguiente formato: “projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID”.

¿Qué sigue?