El complemento de IA generativa de Google proporciona interfaces para los modelos de Gemini de Google a través de la API de Gemini o Gemini API in Vertex AI.
Configuración
La configuración depende del proveedor que elijas:
IA de Google
Para usar este complemento, importa el paquete googlegenai
y pasa googlegenai.GoogleAI
a WithPlugins()
en el inicializador de Genkit:
import "github.com/firebase/genkit/go/plugins/googlegenai"
g, err := genkit.Init(context.Background(), ai.WithPlugins(&googlegenai.GoogleAI{}))
El complemento requiere una clave de API para la API de Gemini, que puedes obtener en Google AI Studio
Configura el complemento para usar tu clave de API mediante una de las siguientes acciones:
Establece la variable de entorno
GEMINI_API_KEY
en tu clave de API.Especifica la clave de API cuando inicialices el complemento:
ai.WithPlugins(&googlegenai.GoogleAI{APIKey: "YOUR_API_KEY"})
Sin embargo, no incorpores tu clave de API directamente en el código. Usa solo esta característica junto con un servicio como Cloud Secret Manager o uno similar.
Vertex AI
Para usar este complemento, importa el paquete googlegenai
y pasa googlegenai.VertexAI
a WithPlugins()
en el inicializador de Genkit:
import "github.com/firebase/genkit/go/plugins/googlegenai"
g, err := genkit.Init(context.Background(), genkit.WithPlugins(&googlegenai.VertexAI{}))
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,
googlegenai.VertexAI
obtiene tu ID del proyecto de Google Cloud de la variable de entorno de entornoGOOGLE_CLOUD_PROJECT
.También puedes pasar este valor directamente:
genkit.WithPlugins(&googlegenai.VertexAI{ProjectID: "my-project-id"})
De forma predeterminada,
googlegenai.VertexAI
obtiene la ubicación de la API de Vertex AI de la variable de entornoGOOGLE_CLOUD_LOCATION
.También puedes pasar este valor directamente:
genkit.WithPlugins(&googlegenai.VertexAI{Location: "us-central1"})
Para proporcionar las credenciales de la API, debes configurar las credenciales predeterminadas de la aplicación de Google Cloud.
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
- Para otros entornos, consulta los documentos Credenciales predeterminadas de la aplicación.
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 en googlegenai.GoogleAIModel
o googlgenai.VertexAIModel
:
model := googlegenai.GoogleAIModel(g, "gemini-2.0-flash")
Como alternativa, puedes crear un ModelRef
que vincule el nombre del modelo con su configuración:
modelRef := googlegenai.GoogleAIModelRef("gemini-2.0-flash", &googlegenai.GeminiConfig{
Temperature: 0.5,
MaxOutputTokens: 500,
// Other configuration...
})
Se admiten los siguientes modelos: gemini-1.5-pro
, gemini-1.5-flash
, gemini-2.0-pro
, gemini-2.0-flash
y otros modelos experimentales.
Las referencias de modelo tienen un método Generate()
que llama a la API de Google:
resp, err := genkit.Generate(ctx, g, ai.WithModel(modelRef), ai.WithPrompt("Tell me a joke."))
if err != nil {
return err
}
log.Println(resp.Text())
Consulta Cómo generar contenido con modelos de IA para obtener más información.
Modelos de incorporación
Para obtener una referencia a un modelo de incorporación compatible, especifica su identificador en googlegenai.GoogleAIEmbedder
o googlgenai.VertexAIEmbedder
:
embeddingModel := googlegenai.GoogleAIEmbedder(g, "text-embedding-004")
Se admiten los siguientes modelos:
IA de Google
text-embedding-004
yembedding-001
Vertex AI
textembedding-gecko@003
,textembedding-gecko@002
,textembedding-gecko@001
,text-embedding-004
,textembedding-gecko-multilingual@001
,text-multilingual-embedding-002
ymultimodalembedding
Las referencias de incorporaciones tienen un método Embed()
que llama a la API de IA de Google:
resp, err := ai.Embed(ctx, embeddingModel, ai.WithDocs(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.WithDocs(docsToIndex...)); err != nil {
return err
}
resp, err := ai.Retrieve(ctx, myRetriever, ai.WithDocs(userInput))
if err != nil {
return err
}
Consulta Generación mejorada de recuperación (RAG) para obtener más información.