Google Generative AI প্লাগইনটি Gemini API বা Vertex AI- তে Gemini API-এর মাধ্যমে Google-এর জেমিনি মডেলগুলিতে ইন্টারফেস সরবরাহ করে।
কনফিগারেশন
কনফিগারেশন নির্ভর করে আপনি কোন প্রদানকারীকে বেছে নেবেন:
গুগল এআই
এই প্লাগইনটি ব্যবহার করতে, googlegenai
প্যাকেজটি আমদানি করুন এবং Genkit ইনিশিয়ালাইজারে googlegenai.GoogleAI
কে WithPlugins()
এ পাস করুন:
import "github.com/firebase/genkit/go/plugins/googlegenai"
g, err := genkit.Init(context.Background(), ai.WithPlugins(&googlegenai.GoogleAI{}))
প্লাগইনটির জন্য Gemini API-এর জন্য একটি API কী প্রয়োজন, যা আপনি Google AI Studio থেকে পেতে পারেন।
নিম্নলিখিতগুলির মধ্যে একটি করে আপনার API কী ব্যবহার করার জন্য প্লাগইনটি কনফিগার করুন:
আপনার API কীতে
GEMINI_API_KEY
এনভায়রনমেন্ট ভেরিয়েবল সেট করুন।আপনি যখন প্লাগইন শুরু করবেন তখন API কী নির্দিষ্ট করুন:
ai.WithPlugins(&googlegenai.GoogleAI{APIKey: "YOUR_API_KEY"})
যাইহোক, কোডে সরাসরি আপনার API কী এম্বেড করবেন না! শুধুমাত্র ক্লাউড সিক্রেট ম্যানেজার বা অনুরূপ একটি পরিষেবার সাথে এই বৈশিষ্ট্যটি ব্যবহার করুন৷
ভার্টেক্স এআই
এই প্লাগইনটি ব্যবহার করতে, googlegenai
প্যাকেজটি আমদানি করুন এবং Genkit ইনিশিয়ালাইজারে googlegenai.VertexAI
কে WithPlugins()
এ পাস করুন:
import "github.com/firebase/genkit/go/plugins/googlegenai"
g, err := genkit.Init(context.Background(), genkit.WithPlugins(&googlegenai.VertexAI{}))
প্লাগইনটির জন্য আপনাকে আপনার Google ক্লাউড প্রকল্পের আইডি, যে অঞ্চলে আপনি Vertex API অনুরোধ করতে চান এবং আপনার Google ক্লাউড প্রকল্পের শংসাপত্রগুলি নির্দিষ্ট করতে হবে৷
ডিফল্টরূপে,
googlegenai.VertexAI
GOOGLE_CLOUD_PROJECT
এনভায়রনমেন্ট ভেরিয়েবল থেকে আপনার Google ক্লাউড প্রকল্প আইডি পায়৷আপনি এই মানটি সরাসরি পাস করতে পারেন:
genkit.WithPlugins(&googlegenai.VertexAI{ProjectID: "my-project-id"})
ডিফল্টরূপে,
googlegenai.VertexAI
GOOGLE_CLOUD_LOCATION
পরিবেশ পরিবর্তনশীল থেকে Vertex AI API অবস্থান পায়।আপনি এই মানটি সরাসরি পাস করতে পারেন:
genkit.WithPlugins(&googlegenai.VertexAI{Location: "us-central1"})
API শংসাপত্রগুলি প্রদান করতে, আপনাকে Google ক্লাউড অ্যাপ্লিকেশন ডিফল্ট শংসাপত্রগুলি সেট আপ করতে হবে৷
আপনার শংসাপত্রগুলি নির্দিষ্ট করতে:
আপনি যদি Google ক্লাউড পরিবেশ (ক্লাউড ফাংশন, ক্লাউড রান ইত্যাদি) থেকে আপনার প্রবাহ চালাচ্ছেন তবে এটি স্বয়ংক্রিয়ভাবে সেট হয়ে যায়।
আপনার স্থানীয় ডেভ পরিবেশে, চালিয়ে এটি করুন:
gcloud auth application-default login
- অন্যান্য পরিবেশের জন্য, অ্যাপ্লিকেশন ডিফল্ট শংসাপত্র ডক্স দেখুন।
উপরন্তু, নিশ্চিত করুন যে অ্যাকাউন্টটি Vertex AI ব্যবহারকারী IAM ভূমিকা (
roles/aiplatform.user
) মঞ্জুর করেছে। Vertex AI অ্যাক্সেস কন্ট্রোল ডক্স দেখুন।
ব্যবহার
জেনারেটিভ মডেল
একটি সমর্থিত মডেলের একটি রেফারেন্স পেতে, googlegenai.GoogleAIModel
বা googlgenai.VertexAIModel
এ এর শনাক্তকারী নির্দিষ্ট করুন:
model := googlegenai.GoogleAIModel(g, "gemini-2.0-flash")
বিকল্পভাবে, আপনি একটি ModelRef
তৈরি করতে পারেন যা মডেলের নামটিকে তার কনফিগারেশনের সাথে যুক্ত করে:
modelRef := googlegenai.GoogleAIModelRef("gemini-2.0-flash", &googlegenai.GeminiConfig{
Temperature: 0.5,
MaxOutputTokens: 500,
// Other configuration...
})
নিম্নলিখিত মডেলগুলি সমর্থিত: gemini-1.5-pro
, gemini-1.5-flash
, gemini-2.0-pro
, gemini-2.0-flash
এবং অন্যান্য পরীক্ষামূলক মডেল৷
মডেল রেফারেন্সগুলির একটি Generate()
পদ্ধতি রয়েছে যা Google API-কে কল করে:
resp, err := genkit.Generate(ctx, g, ai.WithModel(modelRef), ai.WithPrompt("Tell me a joke."))
if err != nil {
return err
}
log.Println(resp.Text())
আরও তথ্যের জন্য এআই মডেলের সাথে সামগ্রী তৈরি করা দেখুন।
এম্বেডিং মডেল
একটি সমর্থিত এমবেডিং মডেলের একটি রেফারেন্স পেতে, googlegenai.GoogleAIEmbedder
বা googlgenai.VertexAIEmbedder
এ এর শনাক্তকারী নির্দিষ্ট করুন :
embeddingModel := googlegenai.GoogleAIEmbedder(g, "text-embedding-004")
নিম্নলিখিত মডেলগুলি সমর্থিত:
গুগল এআই
text-embedding-004
এবংembedding-001
ভার্টেক্স এআই
textembedding-gecko@003
,textembedding-gecko@002
,textembedding-gecko@001
,text-embedding-004
,textembedding-gecko-multilingual@001
,text-multilingual-embedding-002
এবংmultimodalembedding
এমবেডার রেফারেন্সগুলির একটি Embed()
পদ্ধতি রয়েছে যা Google AI API কল করে:
resp, err := ai.Embed(ctx, embeddingModel, ai.WithDocs(userInput))
if err != nil {
return err
}
আপনি একটি সূচকের Index()
পদ্ধতি এবং একটি পুনরুদ্ধারকারীর Retrieve()
পদ্ধতিতে একটি এমবেডার পাস করতে পারেন:
if err := ai.Index(ctx, myIndexer, ai.WithDocs(docsToIndex...)); err != nil {
return err
}
resp, err := ai.Retrieve(ctx, myRetriever, ai.WithDocs(userInput))
if err != nil {
return err
}
আরো তথ্যের জন্য Retrieval-augmented generation (RAG) দেখুন।