Il plug-in di IA generativa di Google fornisce interfacce per i modelli Gemini di Google tramite l'API Gemini o Gemini API in Vertex AI.
Configurazione
La configurazione dipende dal provider scelto:
Google AI
Per utilizzare questo plug-in, importa il pacchetto googlegenai
e passa googlegenai.GoogleAI
a WithPlugins()
nell'inizializzatore Genkit:
import "github.com/firebase/genkit/go/plugins/googlegenai"
g, err := genkit.Init(context.Background(), ai.WithPlugins(&googlegenai.GoogleAI{}))
Il plug-in richiede una chiave API per l'API Gemini, che puoi ottenere da Google AI Studio.
Configura il plug-in in modo che utilizzi la tua chiave API effettuando una delle seguenti operazioni:
Imposta la variabile di ambiente
GEMINI_API_KEY
sulla tua chiave API.Specifica la chiave API quando inizilizza il plug-in:
ai.WithPlugins(&googlegenai.GoogleAI{APIKey: "YOUR_API_KEY"})
Tuttavia, non incorporare la chiave API direttamente nel codice. Utilizza questa funzionalità solo in combinazione con un servizio come Cloud Secret Manager o uno simile.
Vertex AI
Per utilizzare questo plug-in, importa il pacchetto googlegenai
e passa googlegenai.VertexAI
a WithPlugins()
nell'inizializzatore Genkit:
import "github.com/firebase/genkit/go/plugins/googlegenai"
g, err := genkit.Init(context.Background(), genkit.WithPlugins(&googlegenai.VertexAI{}))
Il plug-in richiede di specificare l'ID progetto Google Cloud, la regione a cui vuoi inviare richieste all'API Vertex e le credenziali del progetto Google Cloud.
Per impostazione predefinita,
googlegenai.VertexAI
recupera l'ID progetto Google Cloud dalla variabile di ambienteGOOGLE_CLOUD_PROJECT
.Puoi anche passare questo valore direttamente:
genkit.WithPlugins(&googlegenai.VertexAI{ProjectID: "my-project-id"})
Per impostazione predefinita,
googlegenai.VertexAI
recupera la posizione dell'API Vertex AI dalla variabile di ambienteGOOGLE_CLOUD_LOCATION
.Puoi anche passare questo valore direttamente:
genkit.WithPlugins(&googlegenai.VertexAI{Location: "us-central1"})
Per fornire le credenziali API, devi configurare le credenziali predefinite dell'applicazione Google Cloud.
Per specificare le credenziali:
Se esegui il flusso da un ambiente Google Cloud (Cloud Functions, Cloud Run e così via), questo valore viene impostato automaticamente.
Nel tuo ambiente di sviluppo locale, esegui:
gcloud auth application-default login
- Per altri ambienti, consulta la documentazione relativa alle credenziali predefinite dell'applicazione.
Inoltre, assicurati che all'account sia stato concesso il ruolo IAM Utente Vertex AI (
roles/aiplatform.user
). Consulta la documentazione sul controllo dell'accesso di Vertex AI.
Utilizzo
Modelli generativi
Per ottenere un riferimento a un modello supportato, specifica il relativo identificatore come googlegenai.GoogleAIModel
o googlgenai.VertexAIModel
:
model := googlegenai.GoogleAIModel(g, "gemini-2.0-flash")
In alternativa, puoi creare un ModelRef
che abbina il nome del modello alla relativa configurazione:
modelRef := googlegenai.GoogleAIModelRef("gemini-2.0-flash", &googlegenai.GeminiConfig{
Temperature: 0.5,
MaxOutputTokens: 500,
// Other configuration...
})
Sono supportati i seguenti modelli: gemini-1.5-pro
, gemini-1.5-flash
,
gemini-2.0-pro
, gemini-2.0-flash
e altri modelli sperimentali.
I riferimenti ai modelli hanno un metodo Generate()
che chiama l'API 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())
Per saperne di più, consulta Generare contenuti con i modelli di IA.
Modelli di embedding
Per ottenere un riferimento a un modello di embedding supportato, specifica il relativo identificatore come googlegenai.GoogleAIEmbedder
o googlgenai.VertexAIEmbedder
:
embeddingModel := googlegenai.GoogleAIEmbedder(g, "text-embedding-004")
Sono supportati i seguenti modelli:
IA di Google
text-embedding-004
eembedding-001
Vertex AI
textembedding-gecko@003
,textembedding-gecko@002
,textembedding-gecko@001
,text-embedding-004
,textembedding-gecko-multilingual@001
,text-multilingual-embedding-002
emultimodalembedding
I riferimenti dell'inserzionista hanno un metodo Embed()
che chiama l'API Google AI:
resp, err := ai.Embed(ctx, embeddingModel, ai.WithDocs(userInput))
if err != nil {
return err
}
Puoi anche passare un'entità Embedder al metodo Index()
di un indicizzatore e al metodo
Retrieve()
di un'entità di recupero:
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
}
Per saperne di più, consulta la sezione RAG (Retrieval-Augmented Generation).