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 lingkunganGOOGLE_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 lingkunganGOOGLE_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.
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
- Untuk lingkungan lainnya, lihat dokumen Kredensial Default Aplikasi.
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
danembedding-001
Vertex AI
textembedding-gecko@003
,textembedding-gecko@002
,textembedding-gecko@001
,text-embedding-004
,textembedding-gecko-multilingual@001
,text-multilingual-embedding-002
, danmultimodalembedding
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.