Plugin AI Generatif Google

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.

Konfigurasikan 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:

model := googleai.Model("gemini-1.5-flash")

Berikut ini adalah model yang didukung: gemini-1.0-pro, gemini-1.5-pro, dan gemini-1.5-flash.

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

text, err := ai.GenerateText(ctx, model, ai.WithTextPrompt("Tell me a joke."))
if err != nil {
	return err
}

Lihat Membuat konten untuk mengetahui informasi selengkapnya.

Model embedding

Untuk mendapatkan referensi ke model embedding yang didukung, tentukan ID-nya:

embeddingModel := googleai.Embedder("text-embedding-004")

Berikut ini adalah model yang didukung: text-embedding-004 dan embedding-001.

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

embedRes, err := ai.Embed(ctx, embeddingModel, ai.WithEmbedText(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.WithIndexerDocs(docsToIndex...)); err != nil {
	return err
}
retrieveRes, err := ai.Retrieve(ctx, myRetriever, ai.WithRetrieverText(userInput))
if err != nil {
	return err
}

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