Go (ऐल्फ़ा) का इस्तेमाल करके Genkit का इस्तेमाल शुरू करना

Go के लिए Firebase Genkit लाइब्रेरी अब झलक के लिए उपलब्ध है! क्योंकि फ़िलहाल, Go लाइब्रेरी ऐल्फ़ा वर्शन में हैं. इसलिए, आपको एपीआई और उसके काम करने के तरीके में इस तरह से बदलाव दिख सकते हैं: जिसमें लगातार विकास होता है. हमारा सुझाव है कि इसका इस्तेमाल सिर्फ़ प्रोटोटाइप बनाने के लिए और एक्सप्लोरेशन.

अगर आपको लाइब्रेरी या इस दस्तावेज़ में समस्याएं मिलती हैं, तो कृपया उनकी शिकायत करें इन्हें हमारी GitHub डेटा स्टोर करने की जगह में देखें.

Genkit का इस्तेमाल शुरू करने के लिए, Genkit सीएलआई इंस्टॉल करें और चलाएं Go प्रोजेक्ट में genkit init. इस पेज के बाकी हिस्से में इसका तरीका बताया गया है.

ज़रूरी शर्तें

  • 1.22 या उसके बाद के वर्शन पर जाएं

  • Node.js 20 या इसके बाद का वर्शन (Genkit CLI और यूज़र इंटरफ़ेस (यूआई) के लिए)

    सुझाव: nvm और nvm-windows टूल अगर आपने नोड के खास वर्शन को पहले से इंस्टॉल नहीं किया है, तो उन्हें इंस्टॉल करने का आसान तरीका आपके सिस्टम पर इंस्टॉल किया गया है. ये टूल हर उपयोगकर्ता के हिसाब से नोड इंस्टॉल करते हैं. इससे आपको पूरे सिस्टम में बदलाव करने की ज़रूरत नहीं है.

    macOS या Linux जैसे यूनिक्स जैसे सिस्टम पर nvm इंस्टॉल करने के लिए, इन निर्देशों का पालन करें आदेश:

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
    

    इसके बाद, nvm का इस्तेमाल करके नोड इंस्टॉल करने के लिए, नया शेल खोलें और नीचे दिया गया तरीका अपनाएं आदेश:

    nvm install 20
    

काम का तरीका

  1. नीचे दिए गए निर्देश की मदद से, Genkit CLI इंस्टॉल करें:

    npm i -g genkit
    

    यह निर्देश आपके नोड इंस्टॉलेशन डायरेक्ट्री में Genkit CLI इंस्टॉल करता है ताकि इसे किसी नोड प्रोजेक्ट के बाहर इस्तेमाल किया जा सके.

  2. नई प्रोजेक्ट डायरेक्ट्री बनाएं:

    mkdir genkit-intro && cd genkit-intro
    
  3. Genkit प्रोजेक्ट शुरू करना:

    genkit init
    
    1. रनटाइम एनवायरमेंट के तौर पर Go को चुनें.

    2. अपना मॉडल चुनें:

      Gemini (Google का एआई)

      इसका सबसे आसान तरीका है कि Google के AI Gemini API का इस्तेमाल किया जाए. पक्का करें कि यह आपके इलाके में उपलब्ध है.

      एपीआई पासकोड जनरेट करना Google AI Studio का इस्तेमाल करके Gemini API. इसके बाद, GOOGLE_GENAI_API_KEY को सेट करें एनवायरमेंट वैरिएबल को सेट अप करने के बाद:

      export GOOGLE_GENAI_API_KEY=<your API key>
      

      Gemini (Vertex AI)

      अगर आपके इलाके में Google का एआई Gemini API उपलब्ध नहीं है, तो Vertex AI API का इस्तेमाल करके, Gemini और अन्य मॉडल की सुविधाएं भी इस्तेमाल की जा सकती हैं. आपने लोगों तक पहुंचाया मुफ़्त में आपके पास ऐसा Google Cloud प्रोजेक्ट होना चाहिए जिसमें बिलिंग की सुविधा चालू हो. इसके लिए, एआई (AI) चालू करें Platform API का इस्तेमाल कर सकते हैं. साथ ही, एनवायरमेंट के कुछ अन्य वैरिएबल सेट कर सकते हैं:

      gcloud services enable aiplatform.googleapis.com
      export GCLOUD_PROJECT=<your project ID>
      export GCLOUD_LOCATION=us-central1
      

      Vertex AI की सदस्यता की कीमत देखें.

    3. मॉड्यूल के नाम के लिए कुछ भी तय करें. उदाहरण के लिए: example/genkit-intro

    4. बाकी सवालों के डिफ़ॉल्ट जवाब चुनें. इनसे अपने प्रोजेक्ट फ़ोल्डर को कुछ सैंपल कोड से शुरू करें.

    genkit init कमांड, एक सैंपल Go मॉड्यूल बनाता है और ज़रूरी डिपेंडेंसी. फ़ाइल main.go में एक फ़्लो है, menuSuggestionFlow, यह एलएलएम से किसी आइटम का सुझाव देने के लिए कहता है: किसी खास थीम वाला रेस्टोरेंट.

    यह फ़ाइल कुछ इस तरह दिखेगी (प्लगिन कॉन्फ़िगरेशन के चरण अगर आपने Vertex AI को चुना है, तो यह अलग दिख सकता है):

    package main
    
    import (
        "context"
        "errors"
        "fmt"
        "log"
    
        // Import Genkit and the Google AI plugin
        "github.com/firebase/genkit/go/ai"
        "github.com/firebase/genkit/go/genkit"
        "github.com/firebase/genkit/go/plugins/googleai"
    )
    
    func main() {
        ctx := context.Background()
    
        // Initialize the Google AI plugin. When you pass nil for the
        // Config parameter, the Google AI plugin will get the API key from the
        // GOOGLE_GENAI_API_KEY environment variable, which is the recommended
        // practice.
        if err := googleai.Init(ctx, nil); err != nil {
            log.Fatal(err)
        }
    
        // Define a simple flow that prompts an LLM to generate menu suggestions.
        genkit.DefineFlow("menuSuggestionFlow", func(ctx context.Context, input string) (string, error) {
            // The Google AI API provides access to several generative models. Here,
            // we specify gemini-1.5-flash.
            m := googleai.Model("gemini-1.5-flash")
            if m == nil {
                return "", errors.New("menuSuggestionFlow: failed to find model")
            }
    
            // Construct a request and send it to the model API (Google AI).
            resp, err := m.Generate(ctx,
                ai.NewGenerateRequest(
                    &ai.GenerationCommonConfig{Temperature: 1},
                    ai.NewUserTextMessage(fmt.Sprintf(`Suggest an item for the menu of a %s themed restaurant`, input))),
                nil)
            if err != nil {
                return "", err
            }
    
            // Handle the response from the model API. In this sample, we just
            // convert it to a string. but more complicated flows might coerce the
            // response into structured output or chain the response into another
            // LLM call.
            text, err := resp.Text()
            if err != nil {
                return "", fmt.Errorf("menuSuggestionFlow: %v", err)
            }
            return text, nil
        })
    
        // Initialize Genkit and start a flow server. This call must come last,
        // after all of your plug-in configuration and flow definitions. When you
        // pass a nil configuration to Init, Genkit starts a local flow server,
        // which you can interact with using the developer UI.
        if err := genkit.Init(ctx, nil); err != nil {
            log.Fatal(err)
        }
    }
    

    Genkit के साथ अपने ऐप्लिकेशन की एआई सुविधाओं को बनाने पर, कई चरणों के साथ फ़्लो करता है, जैसे कि इनपुट प्री-प्रोसेसिंग, ज़्यादा बेहतर प्रॉम्प्ट बनाने की अनुमति दें, ताकि आपकी वेबसाइट या ऐप्लिकेशन पर रिट्रावल-एग्मेंटेड जनरेशन (आरएजी) वगैरह.

  4. अब आपके पास Genkit की सुविधाओं और सैंपल प्रोजेक्ट को चलाने और एक्सप्लोर करने का विकल्प है ट्रैक किया जा सकता है. Genkit Developer यूज़र इंटरफ़ेस (यूआई) डाउनलोड और शुरू करें:

    genkit start
    

    आपका स्वागत है
Genkit डेवलपर का यूज़र इंटरफ़ेस (यूआई)

    Genkit डेवलपर यूज़र इंटरफ़ेस (यूआई), अब आपकी मशीन पर चल रहा है. मॉडल इस्तेमाल करते समय या अगले चरण में फ़्लो देता है, तो आपकी मशीन ऑर्कस्ट्रैशन के काम पूरे करेगी आपके फ़्लो के चरणों को एक साथ काम करने के लिए ज़रूरी है; बाहरी उपयोगकर्ताओं को किए जाने वाले कॉल Gemini API जैसी सेवाएँ, लाइव टैब में उपलब्ध नहीं रहेंगी सर्वर.

    साथ ही, आप डेव एनवायरमेंट में हैं, इसलिए Genkit आपके ऐप्लिकेशन की मदद से स्थानीय फ़ाइलों में फ़्लो स्थिति की जानकारी मौजूद होती है.

  5. Genkit Developer का यूज़र इंटरफ़ेस (यूआई) डाउनलोड होने पर, genkit start निर्देश.

    डेवलपर यूज़र इंटरफ़ेस (यूआई) की मदद से, अपने तय किए गए फ़्लो और मॉडल देखे जा सकते हैं कॉन्फ़िगर किया जा सकता है, उन्हें चलाया जा सकता है, और पिछली बार चलाई गई क्वेरी के ट्रेस की जांच की जा सकती है. इनमें से कुछ आज़माएं ये सुविधाएं:

    • Run टैब पर, आपको अपने मौजूदा सभी फ़्लो की सूची दिखेगी तय किए गए और प्लगिन के ज़रिए कॉन्फ़िगर किए गए कोई भी मॉडल.

      menuसुझाएionFlow पर क्लिक करें और इसे कुछ इनपुट टेक्स्ट के साथ चलाने की कोशिश करें (इसके लिए उदाहरण के लिए, "cat"). अगर सब ठीक रहता है, तो आपको इनाम के तौर पर मेन्यू दिया जाएगा बिल्ली की थीम वाले रेस्टोरेंट के लिए सुझाव.

    • जांच करें टैब पर, आपको फ़्लो लागू किए जाने का इतिहास दिखेगा. हर एक के लिए फ़्लो की मदद से, फ़्लो को पास किए गए पैरामीटर और ट्रेस ट्रैक करने में मदद मिलती है.