Google Üretken Yapay Zeka eklentisi, Gemini API veya Gemini API in Vertex AI üzerinden Google'ın Gemini modellerine arayüz sağlar.
Yapılandırma
Yapılandırma, seçtiğiniz sağlayıcıya bağlıdır:
Google Yapay Zeka
Bu eklentiyi kullanmak için googlegenai
paketini içe aktarın ve Genkit başlatıcısında googlegenai.GoogleAI
değerini WithPlugins()
değerine iletin:
import "github.com/firebase/genkit/go/plugins/googlegenai"
g, err := genkit.Init(context.Background(), ai.WithPlugins(&googlegenai.GoogleAI{}))
Eklenti, Gemini API için bir API anahtarı gerektirir. Bu anahtarı Google AI Studio'dan alabilirsiniz.
Aşağıdakilerden birini yaparak eklentiyi API anahtarınızı kullanacak şekilde yapılandırın:
GEMINI_API_KEY
ortam değişkenini API anahtarınıza ayarlayın.Eklentiyi başlatırken API anahtarını belirtin:
ai.WithPlugins(&googlegenai.GoogleAI{APIKey: "YOUR_API_KEY"})
Ancak API anahtarınızı doğrudan koda yerleştirmeyin. Bu özelliği yalnızca Cloud Secret Manager gibi bir hizmetle birlikte kullanın.
Vertex AI
Bu eklentiyi kullanmak için googlegenai
paketini içe aktarın ve Genkit başlatıcısında googlegenai.VertexAI
değerini WithPlugins()
değerine iletin:
import "github.com/firebase/genkit/go/plugins/googlegenai"
g, err := genkit.Init(context.Background(), genkit.WithPlugins(&googlegenai.VertexAI{}))
Eklenti, Google Cloud proje kimliğinizi, Vertex API isteği göndermek istediğiniz bölgeyi ve Google Cloud proje kimlik bilgilerinizi belirtmenizi gerektirir.
Varsayılan olarak
googlegenai.VertexAI
, Google Cloud proje kimliğiniziGOOGLE_CLOUD_PROJECT
ortam değişkeninden alır.Bu değeri doğrudan da iletebilirsiniz:
genkit.WithPlugins(&googlegenai.VertexAI{ProjectID: "my-project-id"})
Varsayılan olarak
googlegenai.VertexAI
, Vertex AI API konumunuGOOGLE_CLOUD_LOCATION
ortam değişkeninden alır.Bu değeri doğrudan da iletebilirsiniz:
genkit.WithPlugins(&googlegenai.VertexAI{Location: "us-central1"})
API kimlik bilgilerini sağlamak için Google Cloud Uygulama Varsayılan Kimlik Bilgileri'ni ayarlamanız gerekir.
Kimlik bilgilerinizi belirtmek için:
Akışınızı bir Google Cloud ortamından (Cloud Functions, Cloud Run vb.) çalıştırıyorsanız bu ayar otomatik olarak yapılır.
Yerel geliştirici ortamınızda aşağıdakileri çalıştırarak bunu yapın:
gcloud auth application-default login
- Diğer ortamlar için Uygulama Varsayılan Kimlik Bilgileri dokümanlarına bakın.
Ayrıca, hesaba Vertex AI Kullanıcı IAM rolünün (
roles/aiplatform.user
) atandığından emin olun. Vertex AI erişim denetimi belgelerine bakın.
Kullanım
Üretici modeller
Desteklenen bir modele referans almak için tanımlayıcısını googlegenai.GoogleAIModel
veya googlgenai.VertexAIModel
olarak belirtin:
model := googlegenai.GoogleAIModel(g, "gemini-2.0-flash")
Alternatif olarak, model adını yapılandırmasıyla eşleştiren bir ModelRef
oluşturabilirsiniz:
modelRef := googlegenai.GoogleAIModelRef("gemini-2.0-flash", &googlegenai.GeminiConfig{
Temperature: 0.5,
MaxOutputTokens: 500,
// Other configuration...
})
Şu modeller desteklenir: gemini-1.5-pro
, gemini-1.5-flash
,
gemini-2.0-pro
, gemini-2.0-flash
ve diğer deneysel modeller.
Model referanslarında, Google API'yi çağıran bir Generate()
yöntemi bulunur:
resp, err := genkit.Generate(ctx, g, ai.WithModel(modelRef), ai.WithPrompt("Tell me a joke."))
if err != nil {
return err
}
log.Println(resp.Text())
Daha fazla bilgi için Yapay zeka modelleriyle içerik oluşturma başlıklı makaleyi inceleyin.
Modelleri yerleştirme
Desteklenen bir yerleştirme modelinin referansını almak için tanımlayıcısını googlegenai.GoogleAIEmbedder
veya googlgenai.VertexAIEmbedder
olarak belirtin:
embeddingModel := googlegenai.GoogleAIEmbedder(g, "text-embedding-004")
Aşağıdaki modeller desteklenir:
Google Yapay Zeka
text-embedding-004
veembedding-001
Vertex AI
textembedding-gecko@003
,textembedding-gecko@002
,textembedding-gecko@001
,text-embedding-004
,textembedding-gecko-multilingual@001
,text-multilingual-embedding-002
, vemultimodalembedding
Yerleştiren referanslarında, Google Yapay Zeka API'yi çağıran bir Embed()
yöntemi bulunur:
resp, err := ai.Embed(ctx, embeddingModel, ai.WithDocs(userInput))
if err != nil {
return err
}
Ayrıca bir Embedder'ı dizine ekleyenin Index()
yöntemine ve veri alıcısının Retrieve()
yöntemine iletebilirsiniz:
if err := ai.Index(ctx, myIndexer, ai.WithDocs(docsToIndex...)); err != nil {
return err
}
resp, err := ai.Retrieve(ctx, myRetriever, ai.WithDocs(userInput))
if err != nil {
return err
}
Daha fazla bilgi için Almayla artırılmış üretim (RAG) başlıklı makaleyi inceleyin.