Complemento de Vertex AI

El complemento de Vertex AI proporciona interfaces para varios modelos de IA generativa de Google a través de la API de Vertex AI.

Requisitos

Si quieres ejecutar localmente flujos que usan este complemento, necesitas tener instalada la herramienta Google Cloud CLI

Configuración

Para usar este complemento, importa el paquete vertexai y llama a vertexai.Init():

import "github.com/firebase/genkit/go/plugins/vertexai"
if err := vertexai.Init(ctx, nil); err != nil {
	return err
}

El complemento requiere que especifiques el ID del proyecto de Google Cloud, la región a la que deseas realizar solicitudes a la API de Vertex y las credenciales de tu proyecto de Google Cloud.

  • De forma predeterminada, vertexai.Init() obtiene tu ID del proyecto de Google Cloud de la variable de entorno de entorno GCLOUD_PROJECT.

    También puedes pasar este valor directamente:

    if err := vertexai.Init(ctx, &vertexai.Config{ProjectID: yourProjectID}); err != nil {
    	return err
    }
    
  • De forma predeterminada, vertexai.Init() obtiene la ubicación de la API de Vertex AI de la variable de entorno GCLOUD_LOCATION.

    También puedes pasar este valor directamente:

    if err := vertexai.Init(ctx, &vertexai.Config{Location: "asia-south1"}); err != nil {
    	return err
    }
    
  • Para proporcionar las credenciales de la API, debes configurar las credenciales predeterminadas de la aplicación de Google Cloud.

    1. Para especificar tus credenciales, haz lo siguiente:

      • Si ejecutas tu flujo desde un entorno de Google Cloud (Cloud Functions, Cloud Run, etc.), esto se configura automáticamente.

      • En tu entorno de desarrollo local, ejecuta el siguiente comando:

      gcloud auth application-default login
      
    2. Además, asegúrate de que la cuenta tenga el rol de IAM Usuario de Vertex AI (roles/aiplatform.user). Consulta los documentos de control de acceso de Vertex AI.

Uso

Modelos generativos

Para obtener una referencia a un modelo compatible, especifica su identificador:

langModel := vertexai.Model("gemini-1.5-flash")

Se admiten los siguientes modelos: gemini-1.0-pro, gemini-1.5-pro y gemini-1.5-flash.

Las referencias de modelos tienen un método Generate() que llama a la API de Vertex AI:

genRes, err := ai.GenerateText(ctx, langModel, ai.WithTextPrompt("Tell me a joke."))
if err != nil {
	return err
}

Consulta Generación de contenido para obtener más información.

Modelos de incorporación

Para obtener una referencia a un modelo de incorporación compatible, especifica su identificador:

embeddingModel := vertexai.Embedder("text-embedding-004")

Se admiten los siguientes modelos: textembedding-gecko@003, textembedding-gecko@002, textembedding-gecko@001, text-embedding-004, textembedding-gecko-multilingual@001, text-multilingual-embedding-002 y multimodalembedding.

Las referencias de incorporaciones tienen un método Embed() que llama a la API de Vertex AI:

embedRes, err := ai.Embed(ctx, embeddingModel, ai.WithEmbedText(userInput))
if err != nil {
	return err
}

También puedes pasar un incorporador al método Index() de un indexador y al método Retrieve() de un recuperador:

if err := ai.Index(ctx, myIndexer, ai.WithIndexerDocs(docsToIndex...)); err != nil {
	return err
}
retrieveRes, err := ai.Retrieve(ctx, myRetriever, ai.WithRetrieverText(userInput))
if err != nil {
	return err
}

Consulta Generación mejorada de recuperación (RAG) para obtener más información.