গুগল জেনারেটিভ এআই প্লাগইন

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 ক্লাউড অ্যাপ্লিকেশন ডিফল্ট শংসাপত্রগুলি সেট আপ করতে হবে৷

    1. আপনার শংসাপত্রগুলি নির্দিষ্ট করতে:

      • আপনি যদি Google ক্লাউড পরিবেশ (ক্লাউড ফাংশন, ক্লাউড রান ইত্যাদি) থেকে আপনার প্রবাহ চালাচ্ছেন তবে এটি স্বয়ংক্রিয়ভাবে সেট হয়ে যায়।

      • আপনার স্থানীয় ডেভ পরিবেশে, চালিয়ে এটি করুন:

      gcloud auth application-default login
    2. উপরন্তু, নিশ্চিত করুন যে অ্যাকাউন্টটি 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) দেখুন।