ปลั๊กอิน Pinecone จะมีการติดตั้งใช้งานโปรแกรมจัดทำดัชนีและรีทรีฟเวอร์ที่ใช้ Pinecone ฐานข้อมูลเวกเตอร์ระบบคลาวด์
การกำหนดค่า
หากต้องการใช้ปลั๊กอินนี้ ให้นำเข้าแพ็กเกจ pinecone
และเรียกใช้ pinecone.Init()
import "github.com/firebase/genkit/go/plugins/pinecone"
if err := pinecone.Init(ctx, ""); err != nil {
return err
}
ปลั๊กอินต้องใช้คีย์ API ของ Pinecone กำหนดค่าปลั๊กอินเพื่อใช้คีย์ API โดยทำอย่างใดอย่างหนึ่งต่อไปนี้
ตั้งค่าตัวแปรสภาพแวดล้อม
PINECONE_API_KEY
เป็นคีย์ APIระบุคีย์ API เมื่อคุณเริ่มต้นปลั๊กอิน
if err := pinecone.Init(ctx, pineconeAPIKey); err != nil { return err }
อย่างไรก็ตาม อย่าฝังคีย์ API ในโค้ดโดยตรง ใช้ฟีเจอร์นี้เท่านั้น บริการอย่างเช่น Cloud Secret Manager หรือบริการอื่นๆ ที่คล้ายกัน
การใช้งาน
หากต้องการเพิ่มเอกสารไปยังดัชนีของ Pinecone ให้สร้างการกำหนดดัชนีที่ ระบุชื่อดัชนีและโมเดลการฝังที่คุณใช้อยู่
menuIndexer, err := pinecone.DefineIndexer(ctx, pinecone.Config{
IndexID: "menu_data", // Your Pinecone index
Embedder: googleai.Embedder("text-embedding-004"), // Embedding model of your choice
})
if err != nil {
return err
}
คุณยังเลือกระบุคีย์ที่ Pinecone ใช้สำหรับข้อมูลเอกสารได้ด้วย
(_content
โดยค่าเริ่มต้น)
จากนั้น เรียกใช้เมธอด Index()
ของดัชนี โดยส่งรายการเอกสารที่คุณ
ต้องการเพิ่ม:
if err := ai.Index(
ctx,
menuIndexer,
ai.WithIndexerDocs(docChunks...)); err != nil {
return err
}
ในทำนองเดียวกัน หากต้องการเรียกเอกสารจากดัชนี ให้สร้างรีทรีฟเวอร์ก่อน คำจำกัดความ:
menuRetriever, err := pinecone.DefineRetriever(ctx, pinecone.Config{
IndexID: "menu_data", // Your Pinecone index
Embedder: googleai.Embedder("text-embedding-004"), // Embedding model of your choice
})
if err != nil {
return err
}
จากนั้นเรียกเมธอด Retrieve()
ของรีทรีฟเวอร์ โดยส่งต่อข้อความค้นหา
resp, err := menuRetriever.Retrieve(ctx, &ai.RetrieverRequest{
Document: ai.DocumentFromText(userInput, nil),
Options: nil,
})
if err != nil {
return err
}
menuInfo := resp.Documents
ดูหน้าการสร้างและดึงข้อมูลสำหรับข้อมูลทั่วไป การพูดคุยเกี่ยวกับการใช้ตัวจัดทำดัชนีและรีทรีฟเวอร์สำหรับ RAG