Plugin Vertex AI

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

Persyaratan

Jika ingin menjalankan alur yang menggunakan plugin ini secara lokal, Anda memerlukan Google Cloud CLI tool.

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 project Google Cloud Anda memiliki kredensial yang lengkap.

  • Secara default, vertexai.Init() mendapatkan ID project 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 Vertex AI API 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 Aplikasi Google Cloud Kredensial Default.

    1. Untuk menentukan kredensial Anda:

      • Jika Anda menjalankan alur dari lingkungan Google Cloud (Cloud Functions, Cloud Run, dan sebagainya), hal ini diatur secara otomatis.

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

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

Penggunaan

Model generatif

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

langModel := vertexai.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 Vertex 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 := vertexai.Embedder("text-embedding-004")

Model berikut didukung: textembedding-gecko@003, textembedding-gecko@002, textembedding-gecko@001, text-embedding-004, textembedding-gecko-multilingual@001, text-multilingual-embedding-002, dan multimodalembedding.

Referensi penyemat memiliki metode Embed() yang memanggil Vertex 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.