Plugin AI Generatif Google menyediakan antarmuka ke model Gemini Google melalui Gemini API.
Konfigurasi
Untuk menggunakan plugin ini, impor paket googleai
dan panggil googleai.Init()
:
import "github.com/firebase/genkit/go/plugins/googleai"
if err := googleai.Init(ctx, nil); err != nil {
return err
}
Plugin ini memerlukan kunci API untuk Gemini API, yang dapat Anda peroleh dari Google AI Studio.
Konfigurasi plugin untuk menggunakan kunci API Anda dengan melakukan salah satu hal berikut:
Tetapkan variabel lingkungan
GOOGLE_GENAI_API_KEY
ke kunci API Anda.Tentukan kunci API saat Anda menginisialisasi plugin:
if err := googleai.Init(ctx, &googleai.Config{APIKey: yourKey}); err != nil { return err }
Namun, jangan sematkan kunci API Anda secara langsung di dalam kode. Gunakan fitur ini saja bersama dengan layanan seperti Cloud Secret Manager atau yang serupa.
Penggunaan
Model generatif
Untuk mendapatkan referensi ke model yang didukung, tentukan ID-nya:
langModel := googleai.Model("gemini-1.5-pro")
Model berikut didukung: gemini-1.0-pro
, gemini-1.5-pro
, dan
gemini-1.5-flash
.
Referensi model memiliki metode Generate()
yang memanggil Google AI API:
genRes, err := langModel.Generate(ctx, ai.NewGenerateRequest(
nil, ai.NewUserTextMessage("Tell me a joke.")), nil)
if err != nil {
return err
}
Lihat Membuat konten untuk informasi selengkapnya.
Model penyematan
Untuk mendapatkan referensi ke model penyematan yang didukung, tentukan ID-nya:
embeddingModel := googleai.Embedder("text-embedding-004")
Model berikut didukung: text-embedding-004
dan embedding-001
.
Referensi penyemat memiliki metode Embed()
yang memanggil Google AI API:
embedRes, err := embeddingModel.Embed(ctx, &ai.EmbedRequest{
Documents: []*ai.Document{ai.DocumentFromText(userInput, nil)},
})
if err != nil {
return err
}
Anda juga dapat meneruskan Embedder ke metode Index()
pengindeks dan metode retriever
Metode Retrieve()
:
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
}
Lihat Retrieval-augmented generation (RAG) untuk mengetahui informasi selengkapnya.