با استفاده از Go (آلفا) با Genkit شروع کنید

کتابخانه های Firebase Genkit برای Go اکنون برای پیش نمایش در دسترس هستند! از آنجا که کتابخانه های Go در حال حاضر در آلفا هستند، ممکن است با پیشرفت توسعه، API و تغییرات عملکردی را مشاهده کنید. توصیه می کنیم از آن فقط برای نمونه سازی و اکتشاف استفاده کنید.

اگر مشکلاتی را در مورد کتابخانه ها یا این اسناد کشف کردید، لطفاً آنها را در مخزن GitHub ما گزارش دهید.

برای شروع با Genkit، Genkit CLI را نصب کنید و genkit init در یک پروژه Go اجرا کنید. بقیه این صفحه به شما نشان می دهد که چگونه.

الزامات

  • برو 1.22 یا بالاتر. به دانلود و نصب در اسناد رسمی Go مراجعه کنید.

  • Node.js 20 یا جدیدتر (برای Genkit CLI و UI). برای راهنمایی مختصر در مورد نصب Node به بخش بعدی مراجعه کنید.

Genkit را نصب کنید

  1. اگر در حال حاضر Node 20 یا جدیدتر را روی سیستم خود ندارید، همین الان آن را نصب کنید.

    توصیه: ابزارهای nvm و nvm-windows راه مناسبی برای نصب نسخه‌های خاصی از Node هستند، اگر قبلاً روی سیستم شما نصب نشده باشد. این ابزارها Node را بر اساس هر کاربر نصب می کنند، بنابراین نیازی به ایجاد تغییرات در سطح سیستم ندارید.

    برای نصب nvm :

    لینوکس، macOS و غیره

    دستور زیر را اجرا کنید:

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

    ویندوز

    همانطور که در اسناد nvm-windows توضیح داده شده است، نصب کننده را دانلود و اجرا کنید.

    سپس برای نصب Node و npm یک پوسته جدید باز کنید و دستور زیر را اجرا کنید:

    nvm install 20
    
  2. Genkit CLI را با اجرای دستور زیر نصب کنید:

    npm i -g genkit
    

    این دستور Genkit CLI را در دایرکتوری نصب Node شما نصب می کند تا بتوان از آن در خارج از پروژه Node استفاده کرد.

یک پروژه نمونه ایجاد و کاوش کنید

  1. یک فهرست پروژه جدید ایجاد کنید:

    mkdir genkit-intro && cd genkit-intro
    
  2. یک پروژه Genkit را راه اندازی کنید:

    genkit init
    
    1. Go به عنوان محیط زمان اجرا انتخاب کنید.

    2. مدل خود را انتخاب کنید:

      جمینی (گوگل هوش مصنوعی)

      ساده ترین راه برای شروع استفاده از Google AI Gemini API است. مطمئن شوید که در منطقه شما موجود است.

      با استفاده از Google AI Studio یک کلید API برای Gemini API ایجاد کنید . سپس، متغیر محیطی GOOGLE_GENAI_API_KEY را روی کلید خود تنظیم کنید:

      export GOOGLE_GENAI_API_KEY=<your API key>
      

      Gemini (Vertex AI)

      اگر Google AI Gemini API در منطقه شما در دسترس نیست، از Vertex AI API استفاده کنید که Gemini و مدل های دیگر را نیز ارائه می دهد. شما باید یک پروژه Google Cloud فعال با صورتحساب داشته باشید، 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 ، که از یک LLM می‌خواهد یک آیتم را برای رستورانی با موضوعی خاص پیشنهاد کند.

    این فایل چیزی شبیه به شکل زیر است (مراحل پیکربندی افزونه ممکن است متفاوت به نظر برسد اگر 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 := 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 ایجاد می‌کنید، احتمالاً جریان‌هایی را با مراحل متعدد مانند پیش‌پردازش ورودی، ساخت سریع‌تر پیچیده‌تر، ادغام منابع اطلاعات خارجی برای تولید افزوده‌شده بازیابی (RAG) و غیره ایجاد خواهید کرد.

  3. اکنون می توانید ویژگی های Genkit و نمونه پروژه را به صورت محلی روی دستگاه خود اجرا و کاوش کنید. رابط کاربری Genkit Developer را دانلود و شروع کنید:

    genkit start
    

    به رابط کاربری Genkit Developer UI خوش آمدید

    رابط کاربری Genkit Developer اکنون روی دستگاه شما اجرا می شود. وقتی مدل‌ها یا جریان‌ها را در مرحله بعد اجرا می‌کنید، دستگاه شما وظایف ارکستراسیون مورد نیاز برای کار کردن مراحل جریان شما را انجام می‌دهد. تماس با سرویس های خارجی مانند Gemini API علیه سرورهای زنده ادامه خواهد داشت.

    همچنین، به دلیل اینکه شما در یک محیط توسعه دهنده هستید، Genkit ردیابی ها و وضعیت جریان را در فایل های محلی ذخیره می کند.

  4. با اجرای دستور genkit start ، رابط کاربری Genkit Developer بارگیری می‌شود و به‌طور خودکار باز می‌شود.

    رابط کاربری توسعه‌دهنده به شما امکان می‌دهد ببینید کدام جریان‌ها را تعریف کرده‌اید و مدل‌هایی را که پیکربندی کرده‌اید، اجرا کنید و آثار اجراهای قبلی را بررسی کنید. برخی از این ویژگی ها را امتحان کنید:

    • در تب Run ، لیستی از تمام جریان هایی که تعریف کرده اید و مدل هایی که توسط افزونه ها پیکربندی شده اند را مشاهده خواهید کرد.

      روی menuSuggestionFlow کلیک کنید و سعی کنید آن را با مقداری متن ورودی (به عنوان مثال، "cat" ) اجرا کنید. اگر همه چیز خوب پیش برود، با پیشنهاد منوی رستورانی با مضمون گربه پاداش خواهید گرفت.

    • در تب Inspect ، تاریخچه ای از اجرای جریان را خواهید دید. برای هر جریان، می‌توانید پارامترهایی را که به جریان منتقل شده‌اند و ردی از هر مرحله در حین اجرا مشاهده کنید.