تتضمّن أداة Firebase Genkit عمليات دمج مضمّنة تساعدك في نشر عملياتك إلى Cloud Functions لـ Firebase وGoogle Cloud Run، ولكن يمكنك أيضًا نشر عملياتك على أيّ منصة يمكنها عرض تطبيق Express.js، سواء كانت خدمة سحابة إلكترونية أو مستضافة ذاتيًا.
على سبيل المثال، توجّهك هذه الصفحة خلال عملية نشر مسار النموذج التلقائي.
قبل البدء
- Node.js 20 والإصدارات الأحدث: تأكَّد من أنّ بيئتك تستخدم الإصدار 20 من Node.js أو إصدارًا أحدث (node --version).
- يجب أن تكون على دراية بمفهوم العمليات في Genkit.
1- إعداد مشروعك
إنشاء دليل للمشروع:
export GENKIT_PROJECT_HOME=~/tmp/genkit-express-project
mkdir -p $GENKIT_PROJECT_HOME
cd $GENKIT_PROJECT_HOME
إعداد مشروع Node.js:
npm init -y
تثبيت Genkit والتبعيات اللازمة:
npm install --save genkit @genkit-ai/googleai
npm install -D genkit-cli typescript tsx
2- ضبط تطبيق Genkit
إعداد نموذج مسار ونموذج خادم:
في
src/index.ts
، حدِّد نموذج مسار وضبط خادم المسار:import { genkit } from 'genkit'; import { googleAI, gemini15Flash } from '@genkit-ai/googleai'; const ai = genkit({ plugins: [googleAI()], model: gemini15Flash, }); const helloFlow = ai.defineFlow( { name: 'helloFlow', inputSchema: z.object({ name: z.string() }), outputSchema: z.string(), }, async (input) => { const { text } = ai.generate('Say hello to ${input.name}'); return text; } ); ai.startFlowServer({ flows: [menuSuggestionFlow], });
هناك أيضًا بعض المَعلمات الاختيارية لـ
startFlowServer
يمكنك تحديدها:-
port
: منفذ الشبكة الذي سيتم الاستماع إليه في حال عدم تحديده، يستمع الخادم إلى المنفذ المحدّد في متغيّر البيئة PORT، وإذا لم يتم ضبط PORT، يكون الإعداد التلقائي هو 3400. cors
: سياسة مشاركة الموارد المتعددة المصادر (CORS) لخادم سير العمل إذا كنت ستستخدم هذه نقاط النهاية من تطبيق ويب، من المرجّح أن تحتاج إلى تحديد ذلك.pathPrefix
: بادئة مسار اختيارية لإضافتها قبل نقاط نهاية المسارjsonParserOptions
: خيارات يتم تمريرها إلى أداة تحليل محتوى JSON في Express
-
إعداد بيانات اعتماد مقدّم النموذج:
اضبط متغيّرات البيئة المطلوبة لموفّر النماذج. في هذا الدليل، سنستخدم Gemini API من Google AI Studio كمثال.
الحصول على مفتاح واجهة برمجة التطبيقات من Google AI Studio
بعد إنشاء مفتاح واجهة برمجة التطبيقات، اضبط متغيّر
GOOGLE_GENAI_API_KEY
environment على مفتاحك باستخدام الأمر التالي:export GOOGLE_GENAI_API_KEY=<your API key>
سيكون لدى موفّري عمليات النشر المختلفة طرق مختلفة لتأمين مفتاح واجهة برمجة التطبيقات في بيئاتهم. لأغراض الأمان، تأكّد من عدم إتاحة مفتاح واجهة برمجة التطبيقات للجميع.
3- تحضير مشروع Node.js للنشر
إضافة نصوص التشغيل والإنشاء إلى package.json
لنشر مشروع Node.js، حدِّد نصوص start
وbuild
البرمجية في package.json
. بالنسبة إلى مشروع TypeScript، ستبدو النصوص البرمجية على النحو التالي:
"scripts": {
"start": "node --watch lib/index.js",
"build": "tsc"
},
الإنشاء والاختبار على الجهاز
شغِّل الأمر build، ثم ابدأ الخادم واختبره محليًا للتأكّد من أنّه يعمل على النحو المتوقّع.
npm run build
npm start
في نافذة وحدة طرفية أخرى، اختبِر نقطة النهاية:
curl -X POST "http://127.0.0.1:3400/menuSuggestionFlow" \
-H "Content-Type: application/json" \
-d '{"data": "banana"}'
اختياري: بدء واجهة مستخدم المطوّر
يمكنك استخدام واجهة مستخدم المطوّر لاختبار مسارات المستخدمين بشكل تفاعلي أثناء التطوير:
npx genkit start -- npm run start
انتقِل إلى http://localhost:4000/flows لاختبار مسارات الإحالات الناجحة في واجهة المستخدم.
4. نشر المشروع
بعد ضبط إعدادات مشروعك واختباره على الجهاز، ستكون مستعدًا للنشر على أي منصة متوافقة مع Node.js. تختلف خطوات النشر حسب مقدّم الخدمة، ولكن بشكل عام، عليك ضبط الإعدادات التالية:
الإعداد | القيمة |
---|---|
وقت التشغيل | الإصدار 20 من Node.js أو إصدار أحدث |
أمر الإنشاء | npm run build |
أمر Start | npm start |
متغيّرات البيئة | اضبط GOOGLE_GENAI_API_KEY=<your-api-key> والأسرار الأخرى اللازمة. |
يجب أن يشير الأمر start
(npm start
) إلى نقطة الدخول المجمَّعة، والتي تكون عادةً lib/index.js
. احرص على إضافة جميع متغيّرات البيئة اللازمة لمنصّة النشر.
بعد النشر، يمكنك استخدام عنوان URL للخدمة المقدَّم لتشغيل عملية المعالجة كنقطة نهاية HTTPS.