Plugin Vertex AI

Plugin Vertex AI menyediakan antarmuka ke beberapa model AI generatif Google melalui Vertex AI API.

Persyaratan

Jika ingin menjalankan flow yang menggunakan plugin ini secara lokal, Anda perlu menginstal alat Google Cloud CLI.

Konfigurasi

Untuk menggunakan plugin ini, impor paket vertexai dan panggil vertexai.Init():

import "github.com/firebase/genkit/go/plugins/vertexai"
if err := vertexai.Init(ctx, nil); err != nil {
	return err
}

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, vertexai.Init() mendapatkan project ID Google Cloud Anda dari variabel lingkungan GCLOUD_PROJECT.

    Anda juga dapat meneruskan nilai ini secara langsung:

    if err := vertexai.Init(ctx, &vertexai.Config{ProjectID: yourProjectID}); err != nil {
    	return err
    }
    
  • Secara default, vertexai.Init() mendapatkan lokasi API Vertex AI dari variabel lingkungan GCLOUD_LOCATION.

    Anda juga dapat meneruskan nilai ini secara langsung:

    if err := vertexai.Init(ctx, &vertexai.Config{Location: "asia-south1"}); err != nil {
    	return err
    }
    
  • 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:

langModel := vertexai.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 Vertex AI:

genRes, err := ai.GenerateText(ctx, langModel, 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 := vertexai.Embedder("text-embedding-004")

Berikut ini adalah model yang didukung: 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 Vertex 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.