O plug-in da IA generativa do Google fornece interfaces para os modelos do Gemini do Google pela API Gemini.
Configuração
Para usar esse plug-in, importe o pacote googleai
e chame googleai.Init()
:
import "github.com/firebase/genkit/go/plugins/googleai"
if err := googleai.Init(ctx, nil); err != nil {
return err
}
O plug-in exige uma chave de API para a API Gemini, que você pode acessar no Google AI Studio.
Siga um destes procedimentos para configurar o plug-in para usar sua chave de API:
Defina a variável de ambiente
GOOGLE_GENAI_API_KEY
como sua chave de API.Especifique a chave de API ao inicializar o plug-in:
if err := googleai.Init(ctx, &googleai.Config{APIKey: yourKey}); err != nil { return err }
No entanto, não incorpore a chave de API diretamente no código. Use este recurso apenas em conjunto com um serviço como Cloud Secret Manager ou similar.
Uso
Modelos geradores
Para acessar uma referência a um modelo compatível, especifique o identificador dele:
model := googleai.Model("gemini-1.5-flash")
Os seguintes modelos são compatíveis: gemini-1.0-pro
, gemini-1.5-pro
e
gemini-1.5-flash
.
As referências de modelo têm um método Generate()
que chama a API Google AI:
text, err := ai.GenerateText(ctx, model, ai.WithTextPrompt("Tell me a joke."))
if err != nil {
return err
}
Consulte Como gerar conteúdo para mais informações.
Como incorporar modelos
Para acessar uma referência a um modelo de embedding compatível, especifique o identificador dele:
embeddingModel := googleai.Embedder("text-embedding-004")
Os seguintes modelos são compatíveis: text-embedding-004
e embedding-001
.
As referências do incorporador têm um método Embed()
que chama a API Google AI:
embedRes, err := ai.Embed(ctx, embeddingModel, ai.WithEmbedText(userInput))
if err != nil {
return err
}
Você também pode transmitir um incorporador ao método Index()
de um indexador e ao método
Retrieve()
de um recuperador:
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
}
Consulte Geração aumentada de recuperação (RAG) para mais informações.