Trình bổ trợ Vertex AI

Trình bổ trợ Vertex AI cung cấp giao diện cho một số mô hình AI tạo sinh của Google thông qua Vertex AI API.

Yêu cầu

Nếu muốn chạy cục bộ các luồng sử dụng trình bổ trợ này, bạn cần có Đã cài đặt công cụ Google Cloud CLI.

Cấu hình

Để sử dụng trình bổ trợ này, hãy nhập gói vertexai và gọi vertexai.Init():

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

Trình bổ trợ này yêu cầu bạn chỉ định mã dự án trên Google Cloud, khu vực mà bạn muốn đưa ra yêu cầu Vertex API và dự án Google Cloud của bạn thông tin xác thực.

  • Theo mặc định, vertexai.Init() lấy mã dự án trên Google Cloud từ Biến môi trường GCLOUD_PROJECT.

    Bạn cũng có thể chuyển trực tiếp giá trị này:

    if err := vertexai.Init(ctx, &vertexai.Config{ProjectID: yourProjectID}); err != nil {
      return err
    }
    
  • Theo mặc định, vertexai.Init() sẽ lấy vị trí Vertex AI API từ Biến môi trường GCLOUD_LOCATION.

    Bạn cũng có thể chuyển trực tiếp giá trị này:

    if err := vertexai.Init(ctx, &vertexai.Config{Location: "asia-south1"}); err != nil {
      return err
    }
    
  • Để cung cấp thông tin đăng nhập API, bạn cần thiết lập Google Cloud Application Thông tin xác thực mặc định.

    1. Để chỉ định thông tin đăng nhập của bạn:

      • Nếu bạn đang chạy quy trình từ môi trường Google Cloud (Đám mây Hàm, Cloud Run, v.v.), các hàm này sẽ được đặt tự động.

      • Trên môi trường nhà phát triển cục bộ, hãy thực hiện việc này bằng cách chạy:

      gcloud auth application-default login
      
    2. Ngoài ra, hãy đảm bảo tài khoản được cấp vai trò IAM của người dùng Vertex AI (roles/aiplatform.user). Xem chế độ kiểm soát quyền truy cập của Vertex AI tài liệu.

Cách sử dụng

Mô hình tạo sinh

Để tham chiếu đến một mô hình được hỗ trợ, hãy chỉ định giá trị nhận dạng của mô hình đó:

langModel := vertexai.Model("gemini-1.5-pro")

Các mô hình sau được hỗ trợ: gemini-1.0-pro, gemini-1.5-progemini-1.5-flash.

Các tham chiếu mô hình có phương thức Generate() để gọi Vertex AI API:

genRes, err := langModel.Generate(ctx, ai.NewGenerateRequest(
    nil, ai.NewUserTextMessage("Tell me a joke.")), nil)
if err != nil {
    return err
}

Hãy xem phần Tạo nội dung để biết thêm thông tin.

Mô hình nhúng

Để tham chiếu đến một mô hình nhúng được hỗ trợ, hãy chỉ định giá trị nhận dạng của mô hình đó:

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

Các mô hình sau được hỗ trợ: textembedding-gecko@003, textembedding-gecko@002, textembedding-gecko@001, text-embedding-004 textembedding-gecko-multilingual@001, text-multilingual-embedding-002multimodalembedding.

Các tệp tham chiếu trình nhúng có phương thức Embed() để gọi Vertex AI API:

embedRes, err := embeddingModel.Embed(ctx, &ai.EmbedRequest{
    Documents: []*ai.Document{ai.DocumentFromText(userInput, nil)},
})
if err != nil {
    return err
}

Bạn cũng có thể truyền một Trình nhúng đến phương thức Index() của trình lập chỉ mục và phương thức truy xuất Phương thức 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
}

Hãy xem bài viết Tạo tăng cường truy xuất (RAG) để biết thêm thông tin.