ปลั๊กอิน Google Generative AI

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

การกำหนดค่า

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

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

ปลั๊กอินต้องใช้คีย์ API สำหรับ Gemini API ซึ่งดาวน์โหลดได้จาก Google AI Studio

กำหนดค่าปลั๊กอินเพื่อใช้คีย์ API โดยทำอย่างใดอย่างหนึ่งต่อไปนี้

  • ตั้งค่าตัวแปรสภาพแวดล้อม GOOGLE_GENAI_API_KEY เป็นคีย์ API

  • ระบุคีย์ API เมื่อคุณเริ่มต้นปลั๊กอิน

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

    อย่างไรก็ตาม อย่าฝังคีย์ API ในโค้ดโดยตรง ใช้ฟีเจอร์นี้เท่านั้น บริการอย่างเช่น Cloud Secret Manager หรือบริการอื่นๆ ที่คล้ายกัน

การใช้งาน

โมเดล Generative

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

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

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

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

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

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

การฝังโมเดล

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

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

รุ่นที่รองรับ ได้แก่ text-embedding-004 และ embedding-001

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

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)