Google Üretken Yapay Zeka eklentisi, Google'ın Gemini modellerine arayüz sağlar Gemini API aracılığıyla iletişim kurabilirsiniz.
Yapılandırma
Bu eklentiyi kullanmak için googleai
paketini içe aktarın ve googleai.Init()
çağrısı yapın:
import "github.com/firebase/genkit/go/plugins/googleai"
if err := googleai.Init(ctx, nil); err != nil {
return err
}
Eklenti, Gemini API için şu API'den alabileceğiniz bir API anahtarı gerektirir: Google AI Studio.
Aşağıdakilerden birini yaparak eklentiyi, API anahtarınızı kullanacak şekilde yapılandırın:
GOOGLE_GENAI_API_KEY
ortam değişkenini API anahtarınıza ayarlayın.Eklentiyi başlatırken API anahtarını belirtin:
if err := googleai.Init(ctx, &googleai.Config{APIKey: yourKey}); err != nil { return err }
Ancak API anahtarınızı doğrudan koda yerleştirmeyin. Yalnızca bu özelliği kullan Google Cloud Secret Manager gibi bir hizmetle birlikte kullanılabilir.
Kullanım
Üretici modeller
Desteklenen bir modele referans almak için tanımlayıcıyı belirtin:
langModel := googleai.Model("gemini-1.5-pro")
Şu modeller desteklenir: gemini-1.0-pro
, gemini-1.5-pro
ve
gemini-1.5-flash
.
Model referansları, Google AI API'yi çağıran bir Generate()
yöntemine sahiptir:
genRes, err := langModel.Generate(ctx, ai.NewGenerateRequest(
nil, ai.NewUserTextMessage("Tell me a joke.")), nil)
if err != nil {
return err
}
Daha fazla bilgi için İçerik oluşturma bölümüne bakın.
Modelleri yerleştirme
Desteklenen bir yerleştirme modeline referans almak için tanımlayıcısını belirtin:
embeddingModel := googleai.Embedder("text-embedding-004")
Şu modeller desteklenir: text-embedding-004
ve embedding-001
.
Yerleştirme referansları, Google AI API'yi çağıran bir Embed()
yöntemine sahiptir:
embedRes, err := embeddingModel.Embed(ctx, &ai.EmbedRequest{
Documents: []*ai.Document{ai.DocumentFromText(userInput, nil)},
})
if err != nil {
return err
}
Bir Yerleştirme aracını, dizinleyicinin Index()
yöntemine ve bir retriever'ın yöntemine de iletebilirsiniz.
Retrieve()
yöntemi:
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
}
Daha fazla bilgi için Almayla artırılmış oluşturma (RAG) bölümüne bakın.