Google का जनरेटिव एआई प्लगिन

Google का जनरेटिव एआई प्लग इन, Gemini API या Gemini API in Vertex AI की मदद से, Google के Gemini मॉडल के इंटरफ़ेस उपलब्ध कराता है.

कॉन्फ़िगरेशन

कॉन्फ़िगरेशन इस बात पर निर्भर करता है कि आपने किस सेवा देने वाली कंपनी को चुना है:

Google का एआई

इस प्लग इन का इस्तेमाल करने के लिए, googlegenai पैकेज इंपोर्ट करें और Genkit initializer में googlegenai.GoogleAI को WithPlugins() पर पास करें:

import "github.com/firebase/genkit/go/plugins/googlegenai"
g, err := genkit.Init(context.Background(), ai.WithPlugins(&googlegenai.GoogleAI{}))

प्लग इन को Gemini API के लिए एपीआई पासकोड की ज़रूरत होती है. इसे Google AI Studio से पाया जा सकता है.

अपनी एपीआई कुंजी का इस्तेमाल करने के लिए, प्लग इन को कॉन्फ़िगर करें. इसके लिए, इनमें से कोई एक काम करें:

  • GEMINI_API_KEY एनवायरमेंट वैरिएबल को अपनी एपीआई पासकोड पर सेट करें.

  • प्लग इन को शुरू करते समय, एपीआई पासकोड डालें:

    ai.WithPlugins(&googlegenai.GoogleAI{APIKey: "YOUR_API_KEY"})
    

    हालांकि, अपनी एपीआई पासकोड को सीधे कोड में एम्बेड न करें! इस सुविधा का इस्तेमाल सिर्फ़ Cloud Secret Manager या मिलती-जुलती सेवा के साथ करें.

Vertex AI

इस प्लग इन का इस्तेमाल करने के लिए, googlegenai पैकेज इंपोर्ट करें और Genkit initializer में googlegenai.VertexAI को WithPlugins() पर पास करें:

import "github.com/firebase/genkit/go/plugins/googlegenai"
g, err := genkit.Init(context.Background(), genkit.WithPlugins(&googlegenai.VertexAI{}))

प्लग इन के लिए, आपको अपना Google Cloud प्रोजेक्ट आईडी, वह इलाका बताना होगा जहां आपको Vertex API के अनुरोध करने हैं. साथ ही, आपको अपने Google Cloud प्रोजेक्ट के क्रेडेंशियल भी देने होंगे.

  • डिफ़ॉल्ट रूप से, googlegenai.VertexAI को आपका Google Cloud प्रोजेक्ट आईडी, GOOGLE_CLOUD_PROJECT एनवायरमेंट वैरिएबल से मिलता है.

    इस वैल्यू को सीधे भी पास किया जा सकता है:

    genkit.WithPlugins(&googlegenai.VertexAI{ProjectID: "my-project-id"})
    
  • डिफ़ॉल्ट रूप से, googlegenai.VertexAI को Vertex AI API की जगह की जानकारी, GOOGLE_CLOUD_LOCATION एनवायरमेंट वैरिएबल से मिलती है.

    इस वैल्यू को सीधे भी पास किया जा सकता है:

    genkit.WithPlugins(&googlegenai.VertexAI{Location: "us-central1"})
    
  • एपीआई क्रेडेंशियल देने के लिए, आपको Google Cloud ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल सेट अप करने होंगे.

    1. अपने क्रेडेंशियल डालने के लिए:

      • अगर आपका फ़्लो, Google Cloud के किसी एनवायरमेंट (Cloud Functions, Cloud Run वगैरह) से चल रहा है, तो यह अपने-आप सेट हो जाता है.

      • अपने स्थानीय डेवलपर एनवायरमेंट में, यह करने के लिए:

      gcloud auth application-default login
    2. इसके अलावा, पक्का करें कि खाते को Vertex AI उपयोगकर्ता आईएएम भूमिका (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")

ये मॉडल काम करते हैं:

  • Google का एआई

    text-embedding-004 और embedding-001

  • Vertex AI

    textembedding-gecko@003, textembedding-gecko@002, textembedding-gecko@001, text-embedding-004, textembedding-gecko-multilingual@001, text-multilingual-embedding-002, और multimodalembedding

एम्बेड करने वाले रेफ़रंस में एक Embed() तरीका होता है, जो Google के एआई एपीआई को कॉल करता है:

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
}

ज़्यादा जानकारी के लिए, रिट्रीवल-ऑगमेंटेड जनरेशन (आरएजी) देखें.