ปลั๊กอิน Vertex AI

ปลั๊กอิน Vertex AI ให้อินเทอร์เฟซกับโมเดล Generative AI ของ Google หลายโมเดล ผ่าน Vertex AI API

ข้อกำหนด

หากต้องการเรียกใช้โฟลว์ที่ใช้ปลั๊กอินนี้ในเครื่อง คุณต้องใช้ ติดตั้งเครื่องมือ Google Cloud CLI แล้ว

การกำหนดค่า

หากต้องการใช้ปลั๊กอินนี้ ให้นำเข้าแพ็กเกจ vertexai และเรียกใช้ vertexai.Init()

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

ปลั๊กอินจะกำหนดให้คุณระบุรหัสโครงการ Google Cloud ภูมิภาค [region] ที่คุณต้องการส่งคำขอ Vertex API และโปรเจ็กต์ Google Cloud ข้อมูลเข้าสู่ระบบ

  • โดยค่าเริ่มต้น vertexai.Init() จะได้รับรหัสโปรเจ็กต์ Google Cloud จาก ตัวแปรสภาพแวดล้อม GCLOUD_PROJECT

    นอกจากนี้คุณยังส่งผ่านค่านี้โดยตรงได้โดยทำดังนี้

    if err := vertexai.Init(ctx, &vertexai.Config{ProjectID: yourProjectID}); err != nil {
      return err
    }
    
  • โดยค่าเริ่มต้น vertexai.Init() จะได้รับตำแหน่ง Vertex AI API จาก ตัวแปรสภาพแวดล้อม GCLOUD_LOCATION

    นอกจากนี้คุณยังส่งผ่านค่านี้โดยตรงได้โดยทำดังนี้

    if err := vertexai.Init(ctx, &vertexai.Config{Location: "asia-south1"}); err != nil {
      return err
    }
    
  • หากต้องการระบุข้อมูลเข้าสู่ระบบ API คุณต้องตั้งค่าแอปพลิเคชัน Google Cloud ข้อมูลเข้าสู่ระบบเริ่มต้น

    1. วิธีระบุข้อมูลเข้าสู่ระบบ

      • หากเรียกใช้โฟลว์จากสภาพแวดล้อม Google Cloud (Cloud) ฟังก์ชัน, Cloud Run เป็นต้น) โดยระบบจะตั้งค่านี้โดยอัตโนมัติ

      • ในสภาพแวดล้อมสำหรับนักพัฒนาแอปภายในของคุณ ให้เรียกใช้คำสั่งต่อไปนี้ด้วยการเรียกใช้

      gcloud auth application-default login
      
    2. นอกจากนี้ ให้ตรวจสอบว่าบัญชีได้รับบทบาท IAM ของผู้ใช้ Vertex AI (roles/aiplatform.user) ดูการควบคุมการเข้าถึง Vertex AI เอกสาร

การใช้งาน

โมเดล Generative

หากต้องการการอ้างอิงไปยังโมเดลที่รองรับ ให้ระบุตัวระบุของโมเดลนั้น:

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

รุ่นที่รองรับ ได้แก่ gemini-1.0-pro, gemini-1.5-pro และ gemini-1.5-flash

การอ้างอิงโมเดลมีเมธอด Generate() ที่เรียกใช้ Vertex AI API:

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

ดูการสร้างเนื้อหาสำหรับข้อมูลเพิ่มเติม

การฝังโมเดล

หากต้องการการอ้างอิงไปยังโมเดลการฝังที่สนับสนุน ให้ระบุตัวระบุของโมเดลนั้น:

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

รุ่นที่รองรับ ได้แก่ textembedding-gecko@003, textembedding-gecko@002 textembedding-gecko@001 text-embedding-004 textembedding-gecko-multilingual@001, text-multilingual-embedding-002 และ multimodalembedding

การอ้างอิงของเครื่องมือฝังมีเมธอด Embed() ที่เรียกใช้ Vertex AI API:

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

คุณยังสามารถส่งเครื่องมือฝังไปยังเมธอด Index() ของผู้จัดทำดัชนีและรีทรีฟเวอร์ เมธอด 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
}

ดูข้อมูลเพิ่มเติมได้ที่การสร้างดึงข้อมูล (RAG)