Pinecone প্লাগইন ইনডেক্সার এবং রিট্রিভার ইমপ্লিমেন্টন প্রদান করে যেগুলি Pinecone ক্লাউড ভেক্টর ডাটাবেস ব্যবহার করে।
কনফিগারেশন
এই প্লাগইনটি ব্যবহার করতে, pinecone
প্যাকেজ আমদানি করুন এবং pinecone.Init()
কল করুন :
import "github.com/firebase/genkit/go/plugins/pinecone"
if err := pinecone.Init(ctx, ""); err != nil {
return err
}
প্লাগইনটির জন্য আপনার Pinecone API কী প্রয়োজন। নিম্নলিখিতগুলির মধ্যে একটি করে আপনার API কী ব্যবহার করার জন্য প্লাগইনটি কনফিগার করুন:
আপনার API কীতে
PINECONE_API_KEY
পরিবেশ পরিবর্তনশীল সেট করুন।আপনি যখন প্লাগইন শুরু করবেন তখন API কী নির্দিষ্ট করুন:
if err := pinecone.Init(ctx, pineconeAPIKey); err != nil { return err }
যাইহোক, কোডে সরাসরি আপনার API কী এম্বেড করবেন না! শুধুমাত্র ক্লাউড সিক্রেট ম্যানেজার বা অনুরূপ একটি পরিষেবার সাথে এই বৈশিষ্ট্যটি ব্যবহার করুন৷
ব্যবহার
একটি 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-এর জন্য সূচক এবং পুনরুদ্ধার ব্যবহার করার বিষয়ে একটি সাধারণ আলোচনার জন্য পুনরুদ্ধার-বর্ধিত প্রজন্মের পৃষ্ঠাটি দেখুন।