Wtyczka Vertex AI udostępnia interfejsy do kilku modeli generatywnej AI od Google. za pomocą interfejsu Vertex AI API.
Wymagania
Jeśli chcesz lokalnie uruchamiać przepływy korzystające z tej wtyczki, potrzebujesz Zainstalowano narzędzie wiersza poleceń Google Cloud.
Konfiguracja
Aby użyć tej wtyczki, zaimportuj pakiet vertexai
i wywołaj vertexai.Init()
:
import "github.com/firebase/genkit/go/plugins/vertexai"
if err := vertexai.Init(ctx, nil); err != nil {
return err
}
Wtyczka wymaga podania identyfikatora projektu Google Cloud, region [region] do których chcesz wysyłać żądania do interfejsu Vertex API, a Twój projekt Google Cloud dane logowania.
Domyślnie
vertexai.Init()
pobiera identyfikator projektu Google Cloud z Zmienna środowiskowaGCLOUD_PROJECT
.Możesz też przekazać tę wartość bezpośrednio:
if err := vertexai.Init(ctx, &vertexai.Config{ProjectID: yourProjectID}); err != nil { return err }
Domyślnie
vertexai.Init()
pobiera lokalizację interfejsu Vertex AI API z Zmienna środowiskowaGCLOUD_LOCATION
.Możesz też przekazać tę wartość bezpośrednio:
if err := vertexai.Init(ctx, &vertexai.Config{Location: "asia-south1"}); err != nil { return err }
Aby podać dane logowania do interfejsu API, musisz skonfigurować aplikację Google Cloud Domyślne dane logowania.
Aby podać dane logowania:
Jeśli uruchamiasz przepływ ze środowiska Google Cloud (Cloud Functions, Cloud Run itd.), to ustawienie jest ustawiane automatycznie.
W lokalnym środowisku programistycznym uruchom to polecenie:
gcloud auth application-default login
- W przypadku innych środowisk zapoznaj się z sekcją Domyślne dane logowania aplikacji. dokumenty.
Sprawdź też, czy do konta została przypisana rola użytkownika Vertex AI (
roles/aiplatform.user
). Zobacz kontrolę dostępu Vertex AI dokumenty.
Wykorzystanie
Modele generatywne
Aby uzyskać odniesienie do obsługiwanego modelu, podaj jego identyfikator:
langModel := vertexai.Model("gemini-1.5-pro")
Obsługiwane są te modele: gemini-1.0-pro
, gemini-1.5-pro
i
gemini-1.5-flash
Odwołania do modelu zawierają metodę Generate()
, która wywołuje interfejs Vertex AI API:
genRes, err := langModel.Generate(ctx, ai.NewGenerateRequest(
nil, ai.NewUserTextMessage("Tell me a joke.")), nil)
if err != nil {
return err
}
Więcej informacji znajdziesz w artykule Generowanie treści.
Umieszczanie modeli
Aby uzyskać odwołanie do obsługiwanego modelu wektora dystrybucyjnego, podaj jego identyfikator:
embeddingModel := vertexai.Embedder("text-embedding-004")
Obsługiwane są te modele: textembedding-gecko@003
,
textembedding-gecko@002
, textembedding-gecko@001
, text-embedding-004
,
textembedding-gecko-multilingual@001
, text-multilingual-embedding-002
i
multimodalembedding
Odwołania do umieszczania na stronie zawierają metodę Embed()
, która wywołuje interfejs Vertex AI API:
embedRes, err := embeddingModel.Embed(ctx, &ai.EmbedRequest{
Documents: []*ai.Document{ai.DocumentFromText(userInput, nil)},
})
if err != nil {
return err
}
Element Embedder można również przekazać do metody Index()
indeksującego i metody retrievera
Metoda Retrieve()
:
if err := myIndexer.Index(ctx, &ai.IndexerRequest{Documents: docsToIndex}); err != nil {
return err
}
retrieveRes, err := myRetriever.Retrieve(ctx, &ai.RetrieverRequest{
Document: ai.DocumentFromText(userInput, nil),
})
if err != nil {
return err
}
Więcej informacji znajdziesz w artykule Generowanie rozszerzone przez wyszukiwanie w zapisanych informacjach (RAG).