مكتبات Firebase Genkit في تطبيق Go أصبحت متاحة الآن للمعاينة. نظرًا لأن تتوفّر مكتبات Go حاليًا في الإصدار الأولي، وقد تظهر لك التغييرات في واجهة برمجة التطبيقات والوظائف على النحو التالي: والتطوير. نوصي باستخدامه فقط لإعداد النماذج الأولية الاستكشاف.
إذا اكتشفت مشاكل في المكتبات أو هذه المستندات، يُرجى الإبلاغ عنها. في مستودع جيت هب.
لبدء استخدام Genkit، عليك تثبيت Genkit CLI وتشغيل
genkit init
في مشروع Go. توضح لك بقية هذه الصفحة كيفية إجراء ذلك.
المتطلّبات
الانتقال إلى الإصدار 1.22 أو إصدار لاحق يمكنك الاطّلاع على التنزيل والتثبيت في مستندات Go الرسمية.
Node.js 20 أو أحدث (لواجهة سطر الأوامر Genkit وواجهة المستخدم). راجِع القسم التالي الدليل الموجز حول تثبيت Node.
تثبيت Genkit
إذا لم يكن لديك العقدة 20 أو إصدار أحدث على نظامك، يمكنك تثبيتها الآن.
اقتراح: سمة
nvm
إنّ أدواتnvm-windows
هي طريقة ملائمة لتثبيت إصدارات معينة من Node إذا لم تكن مثبت على نظامك. وتثبِّت هذه الأدوات Node في كل مستخدم على حدة، وبالتالي ولا تحتاج إلى إجراء تغييرات على مستوى النظام.لتثبيت "
nvm
":Linux وmacOS وما إلى ذلك
شغِّل الأمر التالي:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
Windows
نزِّل أداة التثبيت وشغِّلها كما هو موضَّح في مستندات nvm-Windows.
بعد ذلك، لتثبيت عقدة و
npm
، افتح واجهة أوامر جديدة ونفِّذ ما يلي: :nvm install 20
ثبِّت Genkit CLI من خلال تشغيل الأمر التالي:
npm i -g genkit
هذا الأمر يثبّت واجهة سطر الأوامر Genkit في دليل تثبيت Node لكي يتم استخدامه خارج مشروع العُقدة.
إنشاء واستكشاف نموذج مشروع
إنشاء دليل مشروع جديد:
mkdir genkit-intro && cd genkit-intro
إعداد مشروع Genkit:
genkit init
اختَر "
Go
" كبيئة تشغيل.حدد النموذج:
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.
حدد أي شيء لاسم الوحدة. مثلاً:
example/genkit-intro
اختر الإجابات الافتراضية لبقية الأسئلة، والتي تهيئة مجلد مشروعك باستخدام بعض التعليمات البرمجية.
ينشئ الأمر
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) وغير ذلك.
يمكنك الآن تشغيل واستكشاف ميزات Genkit ونموذج المشروع على الجهاز على جهازك. ابدأ تنزيل واجهة مستخدم مطوّري برامج Genkit:
genkit start
إنّ واجهة مستخدم المطوّرين Genkit قيد التشغيل الآن على جهازك. عند تشغيل النماذج في الخطوة التالية، فسينفذ جهازك مهام التنسيق اللازمة للحصول على خطوات التدفق الخاص بك تعمل معًا؛ المكالمات إلى جهة خارجية سنواصل تقديم خدمات مثل Gemini API مقابل البث المباشر الخوادم.
ونظرًا لأنك في بيئة مطور، ستخزن Genkit آثار حالة التدفق في الملفات المحلية.
يتم تنزيل واجهة مستخدم مطوّر برامج Genkit وفتحها تلقائيًا عند تشغيل الأمر
genkit start
.تتيح لك واجهة المستخدم للمطوّرين معرفة التدفقات التي حدّدتها ونماذجك وقم بتكوينها وتشغيلها وفحص آثار عمليات التشغيل السابقة. جرب بعضًا من الميزات التالية:
في علامة التبويب تشغيل، سترى قائمة بجميع التدفقات التي لديك وأي نماذج تم إعدادها باستخدام المكونات الإضافية.
انقر على mesuggestionFlow وجرِّب تنفيذه مع نص الإدخال (مع مثل
"cat"
). إذا سارت الأمور على ما يرام، ستتم مكافأتك بقائمة اقتراح لمطعم مستوحى من القطط.في علامة التبويب فحص، سيظهر لك سجلّ عمليات تنفيذ التدفق. لكل منها يمكنك رؤية المعاملات التي تم تمريرها إلى التدفق وتتبع كل خطوة أثناء الجري.