Google Üretken Yapay Zeka eklentisi

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ğinizi GOOGLE_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 konumunu GOOGLE_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.

    1. 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
    2. 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 ve embedding-001

  • Vertex AI

    textembedding-gecko@003, textembedding-gecko@002, textembedding-gecko@001, text-embedding-004, textembedding-gecko-multilingual@001, text-multilingual-embedding-002, ve multimodalembedding

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.