Firebase Genkit

Genkit چارچوبی است که برای کمک به شما در ساخت برنامه‌ها و ویژگی‌های مبتنی بر هوش مصنوعی طراحی شده است. کتابخانه های منبع باز برای Node.js و Go، به علاوه ابزارهای توسعه دهنده برای آزمایش و اشکال زدایی فراهم می کند.

این مستندات Genkit را برای Node.js پوشش می دهد. اگر برنامه‌نویس Go هستید، به مستندات Genkit Go مراجعه کنید.

شما می توانید کتابخانه های Genkit را در هر جایی که Node.js پشتیبانی می شود مستقر و اجرا کنید. این برای کار با هر API مدل هوش مصنوعی یا پایگاه داده برداری طراحی شده است. در حالی که ما ادغام هایی را برای Firebase و Google Cloud ارائه می دهیم، می توانید از Genkit مستقل از هر سرویس Google استفاده کنید.

شروع کنید

قابلیت های کلیدی

API یکپارچه برای تولید هوش مصنوعی از یک API برای تولید یا پخش محتوا از مدل های مختلف هوش مصنوعی استفاده کنید. با ورودی/خروجی چندوجهی و تنظیمات مدل سفارشی کار می کند.
نسل ساختاریافته اشیاء ساختار یافته (مانند JSON) را با اعتبار سنجی داخلی تولید یا پخش کنید. ادغام با برنامه خود را ساده کنید و داده های بدون ساختار را به یک قالب قابل استفاده تبدیل کنید.
فراخوانی ابزار به مدل های هوش مصنوعی اجازه دهید توابع و API های شما را به عنوان ابزاری برای تکمیل وظایف فراخوانی کنند. مدل تصمیم می گیرد که چه زمانی و از کدام ابزار استفاده کند.
نسل افزایش یافته بازیابی با یکپارچه سازی داده های خود، دقت و ارتباط خروجی تولید شده را بهبود بخشید. API های ساده به شما کمک می کنند اطلاعات را از منابع مختلف جاسازی، فهرست بندی و بازیابی کنید.
قالب بندی سریع اعلان‌های مؤثری ایجاد کنید که شامل قالب‌بندی متن غنی، تنظیمات مدل، پشتیبانی چندوجهی، و یکپارچه‌سازی ابزار می‌شود - همه در یک فایل سریع فشرده و قابل اجرا.

برای درک دقیق نحوه استفاده از این قابلیت ها در کد، نمونه کد زیر را ببینید:

نسل پایه

import { generate } from `@genkit-ai/ai`;
import { gemini15Flash, claude3Sonnet, llama31 } from '@genkit-ai/vertexai';
import { gpt4o } from 'genkitx-openai';

// Use the same API to generate content from many models
const result = await generate({
    model: gemini15Flash, // Or use claude3Sonnet, llama31, gpt4o
    prompt: 'What makes you the best LLM out there?',
});

نسل ساختاریافته

import { generate } from `@genkit-ai/ai`;
import { gemini15Flash } from `@genkit-ai/googleai`;
import { z } from `zod`;

const result = await generate({
    model: gemini15Flash,
    prompt: 'Create a brief profile for a character in a fantasy video game.',
    // Specify output structure using Zod schema
    output: {
        schema: z.object({
            name: z.string(),
            role: z.enum(['knight', 'mage', 'archer']),
            backstory: z.string(),
            attacks: z.array(z.object({
              name: z.string(),
              damage: z.number().describe('amount of damage, between 2 and 25'),
            })).describe('3 attacks the character can use')
        })
    }
});

فراخوانی ابزار

import { generate, defineTool } from `@genkit-ai/ai`;
import { gemini15Flash } from `@genkit-ai/googleai`;
import { z } from `zod`;

// Define tool to get weather data for a given location
const lookupWeather = defineTool({
    name: 'lookupWeather',
    description: 'Get the current weather in a location.',
    // Define input and output schema so the model knows how to use the tool
    inputSchema: z.object({
        location: z.string().describe('The location to get the weather for.'),
    }),
    outputSchema: z.object({
        temperature: z.number().describe('The current temperature in Fahrenheit.'),
        condition: z.string().describe('A brief description of the weather conditions.'),
    }),
    async (input) => {
        // Insert weather lookup API code
    }
});

const result = await generate({
    model: gemini15Flash,
    tools: [lookupWeather], // Give the model a list of tools it can call
    prompt: 'What is the weather like in New York? ',
});

بازیابی

import { generate, retrieve } from `@genkit-ai/ai`;
import { devLocalRetrieverRef } from '@genkit-ai/dev-local-vectorstore';
import { gemini15Flash } from `@genkit-ai/googleai`;

// Sample assumes Genkit documentation has been chunked, stored, and indexed in 
// local vectorstore in previous step.

// Reference to a local vector database storing Genkit documentation
const retriever = devLocalRetrieverRef('genkitQA');

const query = 'How do I retrieve relevant documents in Genkit?'

// Consistent API to retrieve most relevant documents based on semantic similarity to query
const docs = await retrieve({
    retriever: retriever,
    query: query,
    options: { limit: 5 },
});

const result = await generate({
    model: gemini15Flash
    prompt: 'Use the provided context from the Genkit documentation to answer this query: ${query}',
    context: docs // Pass retrieved documents to the model
});

الگوی درخواستی

---
model: vertexai/gemini-1.5-flash
config:
  temperature: 0.9
input:
  schema:
    properties:
      location: {type: string}
      style: {type: string}
      name: {type: string}
    required: [location]
  default:
    location: a restaurant
---

You are the most welcoming AI assistant and are currently working at {{location}}.

Greet a guest{{#if name}} named {{name}}{{/if}}{{#if style}} in the style of {{style}}{{/if}}.

ابزار توسعه

Genkit یک رابط خط فرمان (CLI) و یک رابط کاربری محلی توسعه دهنده را برای ساختن برنامه های کاربردی هوش مصنوعی فراهم می کند. این ابزارها به شما کمک می کنند:

  • آزمایش: عملکردها، درخواست‌ها و پرس و جوهای هوش مصنوعی خود را آزمایش و اصلاح کنید.
  • اشکال زدایی: پیدا کردن و رفع مشکلات با ردیابی دقیق اجرای.
  • ارزیابی: نتایج تولید شده را در چندین مورد آزمایشی ارزیابی کنید.

با ما ارتباط برقرار کنید

  • به انجمن بپیوندید: به روز بمانید، سؤال بپرسید و کار خود را در سرور Discord ما به اشتراک بگذارید.
  • ارائه بازخورد: مشکلات را گزارش کنید یا ویژگی‌های جدید را با استفاده از ردیاب مشکل GitHub ما پیشنهاد دهید.

مراحل بعدی

در راهنمای شروع ما بیاموزید که چگونه اولین برنامه هوش مصنوعی خود را با Genkit بسازید.