Plugin AI Generatif Google

Plugin AI Generatif Google menyediakan antarmuka ke model Gemini Google melalui Gemini API atau Gemini API in Vertex AI.

Konfigurasi

Konfigurasi bergantung pada penyedia yang Anda pilih:

AI Google

Untuk menggunakan plugin ini, impor paket googlegenai dan teruskan googlegenai.GoogleAI ke WithPlugins() di penginisialisasi Genkit:

import "github.com/firebase/genkit/go/plugins/googlegenai"
g, err := genkit.Init(context.Background(), ai.WithPlugins(&googlegenai.GoogleAI{}))

Plugin ini memerlukan kunci API untuk Gemini API, yang dapat Anda peroleh dari Google AI Studio.

Konfigurasikan plugin untuk menggunakan kunci API Anda dengan melakukan salah satu hal berikut:

  • Tetapkan variabel lingkungan GEMINI_API_KEY ke kunci API Anda.

  • Tentukan kunci API saat Anda menginisialisasi plugin:

    ai.WithPlugins(&googlegenai.GoogleAI{APIKey: "YOUR_API_KEY"})
    

    Namun, jangan sematkan kunci API Anda secara langsung di dalam kode. Hanya gunakan fitur ini bersama dengan layanan seperti Cloud Secret Manager atau yang serupa.

Vertex AI

Untuk menggunakan plugin ini, impor paket googlegenai dan teruskan googlegenai.VertexAI ke WithPlugins() di penginisialisasi Genkit:

import "github.com/firebase/genkit/go/plugins/googlegenai"
g, err := genkit.Init(context.Background(), genkit.WithPlugins(&googlegenai.VertexAI{}))

Plugin ini mengharuskan Anda menentukan project ID Google Cloud, region tempat Anda ingin membuat permintaan Vertex API, dan kredensial project Google Cloud Anda.

  • Secara default, googlegenai.VertexAI mendapatkan project ID Google Cloud Anda dari variabel lingkungan GOOGLE_CLOUD_PROJECT.

    Anda juga dapat meneruskan nilai ini secara langsung:

    genkit.WithPlugins(&googlegenai.VertexAI{ProjectID: "my-project-id"})
    
  • Secara default, googlegenai.VertexAI mendapatkan lokasi API Vertex AI dari variabel lingkungan GOOGLE_CLOUD_LOCATION.

    Anda juga dapat meneruskan nilai ini secara langsung:

    genkit.WithPlugins(&googlegenai.VertexAI{Location: "us-central1"})
    
  • Untuk memberikan kredensial API, Anda perlu menyiapkan Kredensial Default Aplikasi Google Cloud.

    1. Untuk menentukan kredensial Anda:

      • Jika Anda menjalankan flow dari lingkungan Google Cloud (Cloud Functions, Cloud Run, dan sebagainya), kredensial tersebut ditetapkan secara otomatis.

      • Di lingkungan pengembangan lokal Anda, lakukan hal ini dengan menjalankan:

      gcloud auth application-default login
    2. Selain itu, pastikan akun diberi peran IAM Vertex AI User (roles/aiplatform.user). Lihat dokumen kontrol akses Vertex AI.

Penggunaan

Model generatif

Untuk mendapatkan referensi ke model yang didukung, tentukan ID-nya ke googlegenai.GoogleAIModel atau googlgenai.VertexAIModel:

model := googlegenai.GoogleAIModel(g, "gemini-2.0-flash")

Atau, Anda dapat membuat ModelRef yang menyambungkan nama model dengan konfigurasinya:

modelRef := googlegenai.GoogleAIModelRef("gemini-2.0-flash", &googlegenai.GeminiConfig{
    Temperature: 0.5,
    MaxOutputTokens: 500,
    // Other configuration...
})

Berikut ini adalah model yang didukung: gemini-1.5-pro, gemini-1.5-flash, gemini-2.0-pro, gemini-2.0-flash, dan model eksperimental lainnya.

Referensi model memiliki metode Generate() yang memanggil API Google:

resp, err := genkit.Generate(ctx, g, ai.WithModel(modelRef), ai.WithPrompt("Tell me a joke."))
if err != nil {
      return err
}

log.Println(resp.Text())

Baca Membuat konten dengan model AI untuk mengetahui informasi lebih lanjut.

Model embedding

Untuk mendapatkan referensi ke model embedding yang didukung, tentukan ID-nya ke googlegenai.GoogleAIEmbedder atau googlgenai.VertexAIEmbedder:

embeddingModel := googlegenai.GoogleAIEmbedder(g, "text-embedding-004")

Model berikut didukung:

  • AI Google

    text-embedding-004 dan embedding-001

  • Vertex AI

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

Referensi embedder memiliki metode Embed() yang memanggil API Google AI:

resp, err := ai.Embed(ctx, embeddingModel, ai.WithDocs(userInput))
if err != nil {
      return err
}

Anda juga dapat meneruskan Embedder ke metode Index() indexer dan metode Retrieve() retriever:

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
}

Lihat Retrieval-augmented generation (RAG) untuk mengetahui informasi selengkapnya.