Wtyczka Google Generative AI udostępnia interfejsy modeli Gemini od Google za pomocą Gemini API.
Konfiguracja
Aby użyć tej wtyczki, zaimportuj pakiet googleai
i wywołaj googleai.Init()
:
import "github.com/firebase/genkit/go/plugins/googleai"
if err := googleai.Init(ctx, nil); err != nil {
return err
}
Wtyczka wymaga klucza API dla Gemini API, który można uzyskać z Google AI Studio
Skonfiguruj wtyczkę do korzystania z klucza interfejsu API, wykonując jedną z tych czynności:
Ustaw zmienną środowiskową
GOOGLE_GENAI_API_KEY
na swój klucz interfejsu API.Podaj klucz interfejsu API podczas inicjowania wtyczki:
if err := googleai.Init(ctx, &googleai.Config{APIKey: yourKey}); err != nil { return err }
Nie umieszczaj jednak klucza interfejsu API bezpośrednio w kodzie. Używaj tylko tej funkcji w połączeniu z usługą taką jak Cloud Secret Manager lub podobną.
Wykorzystanie
Modele generatywne
Aby uzyskać odniesienie do obsługiwanego modelu, podaj jego identyfikator:
model := googleai.Model("gemini-1.5-flash")
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 API AI od Google:
text, err := ai.GenerateText(ctx, model, ai.WithTextPrompt("Tell me a joke."))
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 := googleai.Embedder("text-embedding-004")
Obsługiwane są te modele: text-embedding-004
i embedding-001
.
Odwołania do umieszczania na stronie zawierają metodę Embed()
, która wywołuje interfejs API AI od Google:
embedRes, err := ai.Embed(ctx, embeddingModel, ai.WithEmbedText(userInput))
if err != nil {
return err
}
Element Embedder można również przekazać do metody Index()
indeksującego i metody retrievera
Metoda Retrieve()
:
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
}
Więcej informacji znajdziesz w artykule Generowanie rozszerzone przez wyszukiwanie w zapisanych informacjach (RAG).