شروع به کار

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

الزامات

Node.js 20 یا جدیدتر.

توصیه: ابزارهای nvm و nvm-windows راه مناسبی برای نصب Node هستند.

Genkit را نصب کنید

Genkit CLI را با اجرای دستور زیر نصب کنید:

npm i -g genkit

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

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

  1. یک پروژه Node جدید ایجاد کنید:

    mkdir genkit-intro && cd genkit-intro
    npm init -y

    به package.json نگاه کنید و مطمئن شوید که فیلد main روی lib/index.js تنظیم شده است.

  2. یک پروژه Genkit را راه اندازی کنید:

    genkit init
    1. مدل خود را انتخاب کنید:

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

      ساده ترین راه برای شروع استفاده از 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 به https://cloud.google.com/vertex-ai/generative-ai/pricing مراجعه کنید.

    2. پاسخ های پیش فرض بقیه سوالات را انتخاب کنید، که پوشه پروژه شما را با مقداری کد نمونه مقداردهی اولیه می کند.

    دستور genkit init یک فایل منبع نمونه به index.ts ایجاد می‌کند که یک جریان منفرد به menuSuggestionFlow را تعریف می‌کند که از یک LLM می‌خواهد یک آیتم را برای یک رستوران با یک موضوع خاص پیشنهاد کند.

    این فایل چیزی شبیه به شکل زیر است (مراحل پیکربندی افزونه ممکن است متفاوت باشد اگر Vertex AI را انتخاب کنید):

    import * as z from 'zod';
    
    // Import the Genkit core libraries and plugins.
    import { generate } from '@genkit-ai/ai';
    import { configureGenkit } from '@genkit-ai/core';
    import { defineFlow, startFlowsServer } from '@genkit-ai/flow';
    import { googleAI } from '@genkit-ai/googleai';
    
    // Import models from the Google AI plugin. The Google AI API provides access to
    // several generative models. Here, we import Gemini 1.5 Flash.
    import { gemini15Flash } from '@genkit-ai/googleai';
    
    configureGenkit({
      plugins: [
        // Load the Google AI plugin. You can optionally specify your API key
        // by passing in a config object; if you don't, the Google AI plugin uses
        // the value from the GOOGLE_GENAI_API_KEY environment variable, which is
        // the recommended practice.
        googleAI(),
      ],
      // Log debug output to tbe console.
      logLevel: 'debug',
      // Perform OpenTelemetry instrumentation and enable trace collection.
      enableTracingAndMetrics: true,
    });
    
    // Define a simple flow that prompts an LLM to generate menu suggestions.
    export const menuSuggestionFlow = defineFlow(
      {
        name: 'menuSuggestionFlow',
        inputSchema: z.string(),
        outputSchema: z.string(),
      },
      async (subject) => {
        // Construct a request and send it to the model API.
        const llmResponse = await generate({
          prompt: `Suggest an item for the menu of a ${subject} themed restaurant`,
          model: gemini15Flash,
          config: {
            temperature: 1,
          },
        });
    
        // 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, etc.
        return llmResponse.text();
      }
    );
    
    // Start a flow server, which exposes your flows as HTTP endpoints. This call
    // must come last, after all of your plug-in configuration and flow definitions.
    // You can optionally specify a subset of flows to serve, and configure some
    // HTTP server options, but by default, the flow server serves all defined flows.
    startFlowsServer();
    

    همانطور که ویژگی‌های هوش مصنوعی برنامه خود را با Genkit ایجاد می‌کنید، احتمالاً جریان‌هایی را با مراحل متعدد مانند پیش‌پردازش ورودی، ساخت سریع‌تر پیچیده‌تر، ادغام منابع اطلاعات خارجی برای تولید افزوده‌شده بازیابی (RAG) و غیره ایجاد خواهید کرد.

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

    genkit start

    به رابط کاربری برنامه نویس Genkit خوش آمدید

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

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

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

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

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

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

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

مراحل بعدی

نحوه ساخت و استقرار برنامه Genkit خود را با Firebase ، Cloud Run یا هر پلتفرم Node.js بررسی کنید.