Trình bổ trợ AI tạo sinh của Google

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

Cấu hình

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

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

Trình bổ trợ này yêu cầu bạn phải có một khoá API cho Gemini API mà bạn có thể lấy từ Google AI Studio

Định cấu hình trình bổ trợ để sử dụng khoá API bằng cách thực hiện một trong những thao tác sau:

  • Đặt biến môi trường GOOGLE_GENAI_API_KEY thành khoá API.

  • Chỉ định khoá API khi bạn khởi chạy trình bổ trợ:

    if err := googleai.Init(ctx, &googleai.Config{APIKey: yourKey}); err != nil {
      return err
    }
    

    Tuy nhiên, đừng nhúng khóa API trực tiếp vào mã! Chỉ sử dụng tính năng này cùng với một dịch vụ như Cloud Secret Manager hoặc các dịch vụ tương tự.

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 := googleai.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 tệp tham chiếu mô hình có phương thức Generate() để gọi API AI của Google:

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

Các mô hình sau được hỗ trợ: text-embedding-004embedding-001.

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

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.