Il plug-in Vertex AI fornisce interfacce a diversi modelli di IA generativa di Google tramite l'API Vertex AI.
Requisiti
Se vuoi eseguire localmente i flussi che utilizzano questo plug-in, devi installare lo strumento Google Cloud CLI.
Configurazione
Per utilizzare questo plug-in, importa il pacchetto vertexai
e chiama vertexai.Init()
:
import "github.com/firebase/genkit/go/plugins/vertexai"
if err := vertexai.Init(ctx, nil); err != nil {
return err
}
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,
vertexai.Init()
recupera l'ID progetto Google Cloud dalla variabile di ambienteGCLOUD_PROJECT
.Puoi anche passare direttamente questo valore:
if err := vertexai.Init(ctx, &vertexai.Config{ProjectID: yourProjectID}); err != nil { return err }
Per impostazione predefinita,
vertexai.Init()
recupera la posizione dell'API Vertex AI dalla variabile di ambienteGCLOUD_LOCATION
.Puoi anche passare questo valore direttamente:
if err := vertexai.Init(ctx, &vertexai.Config{Location: "asia-south1"}); err != nil { return err }
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:
langModel := vertexai.Model("gemini-1.5-flash")
Sono supportati i seguenti modelli: gemini-1.0-pro
, gemini-1.5-pro
e
gemini-1.5-flash
.
I riferimenti ai modelli hanno un metodo Generate()
che chiama l'API Vertex AI:
genRes, err := ai.GenerateText(ctx, langModel, ai.WithTextPrompt("Tell me a joke."))
if err != nil {
return err
}
Per ulteriori informazioni, consulta la sezione Generare contenuti.
Modelli di embedding
Per ottenere un riferimento a un modello di embedding supportato, specifica il relativo identificatore:
embeddingModel := vertexai.Embedder("text-embedding-004")
Sono supportati i seguenti modelli: textembedding-gecko@003
,
textembedding-gecko@002
, textembedding-gecko@001
, text-embedding-004
,
textembedding-gecko-multilingual@001
, text-multilingual-embedding-002
e
multimodalembedding
.
I riferimenti dell'inserzionista hanno un metodo Embed()
che chiama l'API Vertex AI:
embedRes, err := ai.Embed(ctx, embeddingModel, ai.WithEmbedText(userInput))
if err != nil {
return err
}
Puoi anche passare un Embedder al metodo Index()
di un indexer e al metodo Retrieve()
di un retriever:
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
}
Per saperne di più, consulta la sezione Retrieval-Augmented Generation (RAG).