بدء استخدام Genkit باستخدام Go (الإصدار الأولي)

مكتبات Firebase Genkit في تطبيق Go أصبحت متاحة الآن للمعاينة. نظرًا لأن تتوفّر مكتبات Go حاليًا في الإصدار الأولي، وقد تظهر لك تغييرات في واجهة برمجة التطبيقات والوظائف على النحو التالي: تقدم المشروعات. نوصي باستخدامه فقط لإعداد النماذج الأولية الاستكشاف.

إذا اكتشفت مشاكل في المكتبات أو هذه المستندات، يُرجى الإبلاغ عنها. في مستودع جيت هب.

لبدء استخدام Genkit، عليك تثبيت Genkit CLI وتشغيل genkit init في مشروع Go. توضح لك بقية هذه الصفحة كيفية إجراء ذلك.

المتطلّبات

  • الانتقال إلى الإصدار 1.22 أو إصدار أحدث

  • Node.js 20 أو أحدث (لواجهة سطر الأوامر Genkit وواجهة المستخدم)

    اقتراح: سمة nvm إنّ أدوات nvm-windows هي طريقة ملائمة لتثبيت إصدارات معينة من Node إذا لم تكن مثبت على نظامك. وتثبِّت هذه الأدوات Node في كل مستخدم على حدة، وبالتالي ولا تحتاج إلى إجراء تغييرات على مستوى النظام.

    لتثبيت nvm على نظام يشبه Unix، مثل macOS أو Linux، عليك تشغيل ما يلي: :

    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 في دليل تثبيت Node لكي يتم استخدامه خارج مشروع العُقدة.

  2. إنشاء دليل مشروع جديد:

    mkdir genkit-intro && cd genkit-intro
    
  3. إعداد مشروع Genkit:

    genkit init
    
    1. اختَر "Go" كبيئة تشغيل.

    2. حدد النموذج:

      Gemini (تكنولوجيات الذكاء الاصطناعي من Google)

      أبسط طريقة للبدء هي استخدام Google AI Gemini API. يُرجى التأكد من أنّ: CANNOT TRANSLATE متوفّرة في منطقتك

      إنشاء مفتاح واجهة برمجة تطبيقات Gemini API باستخدام Google AI Studio بعد ذلك، عليك ضبط 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 يفعّل الفوترة، لذلك يجب تفعيل الذكاء الاصطناعي واجهة برمجة التطبيقات للنظام الأساسي وإعداد بعض متغيرات البيئة الإضافية:

      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 := 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، من المحتمل أن تنشئ البيانات التي تحتوي على خطوات متعددة مثل المعالجة المسبقة للإدخال، حيث تكون أكثر تعقيدًا والبناء المطالبة، ودمج مصادر المعلومات الخارجية الجيل المعزز استرجاعيًا (RAG) وغير ذلك.

  4. يمكنك الآن تشغيل واستكشاف ميزات Genkit ونموذج المشروع على الجهاز على جهازك. ابدأ تنزيل واجهة مستخدم مطوّري برامج Genkit:

    genkit start
    

    مرحبًا بك في
واجهة مستخدم مطوّري برامج Genkit

    إنّ واجهة مستخدم المطوّرين Genkit قيد التشغيل الآن على جهازك. عند تشغيل النماذج في الخطوة التالية، فسينفذ جهازك مهام التنسيق اللازمة للحصول على خطوات التدفق الخاص بك تعمل معًا؛ المكالمات إلى جهة خارجية سنواصل تقديم خدمات مثل Gemini API مقابل البث المباشر الخوادم.

    ونظرًا لأنك في بيئة مطور، ستخزن Genkit آثار حالة التدفق في الملفات المحلية.

  5. يتم تنزيل واجهة مستخدم مطوّر برامج Genkit وفتحها تلقائيًا عند تشغيل الأمر genkit start.

    تتيح لك واجهة المستخدم للمطوّرين معرفة التدفقات التي حدّدتها ونماذجك وقم بتكوينها وتشغيلها وفحص آثار عمليات التشغيل السابقة. جرب بعضًا من الميزات التالية:

    • في علامة التبويب تشغيل، سترى قائمة بجميع التدفقات التي لديك وأي نماذج تم إعدادها باستخدام المكونات الإضافية.

      انقر على mesuggestionFlow وجرِّب تنفيذه مع نص الإدخال (مع مثل "cat"). إذا سارت الأمور على ما يرام، ستتم مكافأتك بقائمة اقتراح لمطعم مستوحى من القطط.

    • في علامة التبويب فحص، سيظهر لك سجلّ عمليات تنفيذ التدفق. لكل منها يمكنك رؤية المعاملات التي تم تمريرها إلى التدفق وتتبع كل خطوة أثناء الجري.