Go (আলফা) ব্যবহার করে Genkit দিয়ে শুরু করুন

Go-এর জন্য Firebase Genkit লাইব্রেরিগুলি এখন পূর্বরূপের জন্য উপলব্ধ! যেহেতু Go লাইব্রেরিগুলি বর্তমানে আলফা-তে রয়েছে, আপনি বিকাশের অগ্রগতির সাথে সাথে API এবং কার্যকরী পরিবর্তনগুলি দেখতে পাবেন। আমরা এটি শুধুমাত্র প্রোটোটাইপিং এবং অন্বেষণের জন্য ব্যবহার করার পরামর্শ দিই।

আপনি যদি লাইব্রেরি বা এই ডকুমেন্টেশনের সমস্যাগুলি খুঁজে পান তবে দয়া করে আমাদের GitHub সংগ্রহস্থলে রিপোর্ট করুন।

Genkit দিয়ে শুরু করতে, Genkit CLI ইনস্টল করুন এবং একটি Go প্রকল্পে genkit init চালান। এই পৃষ্ঠার বাকি আপনি কিভাবে দেখায়.

প্রয়োজনীয়তা

  • 1.22 বা তার পরে যান। অফিসিয়াল Go ডক্সে ডাউনলোড এবং ইনস্টল দেখুন।

  • Node.js 20 বা তার পরে (Genkit CLI এবং UI এর জন্য)। নোড ইনস্টল করার জন্য একটি সংক্ষিপ্ত গাইডের জন্য পরবর্তী বিভাগটি দেখুন।

Genkit ইনস্টল করুন

  1. যদি আপনার সিস্টেমে ইতিমধ্যেই নোড 20 বা নতুন না থাকে, তাহলে এখনই এটি ইনস্টল করুন।

    প্রস্তাবনা: nvm এবং nvm-windows সরঞ্জামগুলি নোডের নির্দিষ্ট সংস্করণ ইনস্টল করার একটি সুবিধাজনক উপায় যদি এটি আপনার সিস্টেমে ইতিমধ্যে ইনস্টল না থাকে। এই সরঞ্জামগুলি প্রতি-ব্যবহারকারীর ভিত্তিতে নোড ইনস্টল করে, তাই আপনাকে সিস্টেম-ব্যাপী পরিবর্তন করতে হবে না।

    nvm ইনস্টল করতে:

    লিনাক্স, ম্যাকোস, ইত্যাদি

    নিম্নলিখিত কমান্ড চালান:

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

    উইন্ডোজ

    nvm-windows ডক্সে বর্ণিত ইনস্টলারটি ডাউনলোড করুন এবং চালান।

    তারপর, Node এবং npm ইনস্টল করতে, একটি নতুন শেল খুলুন এবং নিম্নলিখিত কমান্ডটি চালান:

    nvm install 20
    
  2. নিম্নলিখিত কমান্ডটি চালিয়ে জেনকিট সিএলআই ইনস্টল করুন:

    npm i -g genkit
    

    এই কমান্ডটি আপনার নোড ইনস্টলেশন ডিরেক্টরিতে Genkit CLI ইনস্টল করে যাতে এটি একটি নোড প্রকল্পের বাইরে ব্যবহার করা যেতে পারে।

একটি নমুনা প্রকল্প তৈরি করুন এবং অন্বেষণ করুন

  1. একটি নতুন প্রকল্প ডিরেক্টরি তৈরি করুন:

    mkdir genkit-intro && cd genkit-intro
    
  2. একটি জেনকিট প্রকল্প শুরু করুন:

    genkit init
    
    1. রানটাইম পরিবেশ হিসাবে Go নির্বাচন করুন।

    2. আপনার মডেল নির্বাচন করুন:

      মিথুন (Google AI)

      শুরু করার সবচেয়ে সহজ উপায় হল Google AI Gemini API। নিশ্চিত করুন যে এটি আপনার অঞ্চলে উপলব্ধ

      Google AI স্টুডিও ব্যবহার করে Gemini API-এর জন্য একটি API কী তৈরি করুন । তারপর, আপনার কী-তে GOOGLE_GENAI_API_KEY এনভায়রনমেন্ট ভেরিয়েবল সেট করুন:

      export GOOGLE_GENAI_API_KEY=<your API key>
      

      মিথুন (Vertex AI)

      Google AI Gemini API আপনার অঞ্চলে উপলব্ধ না হলে, Vertex AI API ব্যবহার করার কথা বিবেচনা করুন যা জেমিনি এবং অন্যান্য মডেলগুলিও অফার করে৷ আপনার একটি বিলিং-সক্ষম Google ক্লাউড প্রকল্প থাকতে হবে, AI প্ল্যাটফর্ম 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 , যা একটি প্রদত্ত থিম সহ একটি রেস্তোরাঁর জন্য একটি আইটেম প্রস্তাব করার জন্য একটি এলএলএমকে অনুরোধ করে৷

    এই ফাইলটি নিচের মত কিছু দেখায় (আপনি ভার্টেক্স এআই নির্বাচন করলে প্লাগইন কনফিগারেশনের ধাপগুলি ভিন্ন দেখাতে পারে):

    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 := ai.Generate(ctx, m,
    			ai.WithConfig(&ai.GenerationCommonConfig{Temperature: 1}),
    			ai.WithTextPrompt(fmt.Sprintf(`Suggest an item for the menu of a %s themed restaurant`, input)))
    		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 := resp.Text()
    		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 এর সাথে আপনার অ্যাপের AI বৈশিষ্ট্যগুলি তৈরি করার সাথে সাথে, আপনি সম্ভবত ইনপুট প্রিপ্রসেসিং, আরও পরিশীলিত প্রম্পট নির্মাণ, পুনরুদ্ধার-বর্ধিত প্রজন্মের (RAG) জন্য বাহ্যিক তথ্য উত্সগুলিকে একীভূত করার মতো একাধিক পদক্ষেপের সাথে প্রবাহ তৈরি করবেন।

  3. এখন আপনি আপনার মেশিনে স্থানীয়ভাবে Genkit বৈশিষ্ট্য এবং নমুনা প্রকল্প চালাতে এবং অন্বেষণ করতে পারেন। Genkit বিকাশকারী UI ডাউনলোড করুন এবং শুরু করুন:

    genkit start
    

    Genkit বিকাশকারী UI তে স্বাগতম

    Genkit বিকাশকারী UI এখন আপনার মেশিনে চলছে। আপনি যখন পরবর্তী ধাপে মডেল বা প্রবাহ চালাবেন, তখন আপনার মেশিন আপনার প্রবাহের ধাপগুলি একসাথে কাজ করার জন্য প্রয়োজনীয় অর্কেস্ট্রেশন কাজগুলি সম্পাদন করবে; লাইভ সার্ভারের বিরুদ্ধে জেমিনি API-এর মতো বাহ্যিক পরিষেবাগুলিতে কল করা অব্যাহত থাকবে।

    এছাড়াও, যেহেতু আপনি একটি ডেভ পরিবেশে আছেন, জেনকিট স্থানীয় ফাইলগুলিতে ট্রেস এবং প্রবাহের অবস্থা সংরক্ষণ করবে।

  4. আপনি যখন genkit start কমান্ডটি চালান তখন Genkit বিকাশকারী UI ডাউনলোড হয় এবং স্বয়ংক্রিয়ভাবে খোলে।

    বিকাশকারী UI আপনাকে দেখতে দেয় যে আপনি কোন প্রবাহগুলি সংজ্ঞায়িত করেছেন এবং মডেলগুলি আপনি কনফিগার করেছেন, সেগুলি চালান এবং পূর্ববর্তী রানগুলির ট্রেস পরীক্ষা করতে পারেন৷ এই বৈশিষ্ট্যগুলির মধ্যে কিছু চেষ্টা করে দেখুন:

    • রান ট্যাবে, আপনি আপনার সংজ্ঞায়িত সমস্ত ফ্লো এবং প্লাগইন দ্বারা কনফিগার করা যেকোন মডেলের একটি তালিকা দেখতে পাবেন।

      MenuSuggestionFlow-এ ক্লিক করুন এবং কিছু ইনপুট টেক্সট দিয়ে এটি চালানোর চেষ্টা করুন (উদাহরণস্বরূপ, "cat" )। সবকিছু ঠিকঠাক থাকলে, আপনাকে একটি বিড়াল থিমযুক্ত রেস্তোরাঁর জন্য একটি মেনু পরামর্শ দিয়ে পুরস্কৃত করা হবে।

    • পরিদর্শন ট্যাবে, আপনি ফ্লো এক্সিকিউশনের ইতিহাস দেখতে পাবেন। প্রতিটি প্রবাহের জন্য, আপনি প্রবাহে পাস করা পরামিতি এবং দৌড়ানোর সময় প্রতিটি ধাপের একটি ট্রেস দেখতে পাবেন।