Genkit:Google Firebase团队的全栈AI开发框架

仓库:genkit-ai/genkit  |  ⭐ 6.3k  |  语言:TypeScript  |  协议:Apache-2.0

项目简介

Genkit 是由Google Firebase团队开源的全栈AI应用开发框架。它提供了统一的API接口,让开发者能够轻松集成多种AI模型(Gemini、OpenAI、Anthropic等),并通过跨语言SDK支持TypeScript和Go。Genkit的核心设计理念是"AI去中心化"——开发者可以在本地开发和测试AI流程,然后无缝部署到Firebase Cloud Functions、Cloud Run或任何云平台。

对于想要深入了解TypeScript AI框架的开发者,也可以参考我们的 Mastra TypeScript框架教程 进行对比学习。

核心功能与架构

组件说明核心能力
ai.defineFlow定义AI工作流管道链式调用、流式输出、并行执行
ai.definePrompt结构化提示词模板模板复用、变量注入、输出验证
ai.defineTool自定义工具/函数调用RAG检索、API调用、数据库查询
ai.defineRetriever向量检索器多数据源接入、语义搜索
ai.defineIndexer文档索引器自动分块、向量化、增量更新
Dev UI本地开发调试界面可视化测试、性能分析、模型对比
Dotprompt提示词即代码Markdown格式提示词、版本管理

安装指南

安装Genkit CLI和核心依赖:

# 安装 Genkit CLI
npm install -g genkit

# 创建新项目
mkdir my-ai-app && cd my-ai-app
npm init -y

# 安装核心包
npm install genkit @genkit-ai/googleai

# 安装开发工具
npm install -D genkit-cli

# 配置环境变量
export GEMINI_API_KEY="your-api-key"

# 启动开发服务器
npx genkit start

安装完成后,访问 http://localhost:4000 即可打开Dev UI进行可视化调试。

使用示例

以下示例展示如何构建一个带RAG能力的AI客服代理:

// src/ai.ts
import { genkit, z } from "genkit";
import { googleAI } from "@genkit-ai/googleai";

const ai = genkit({ plugins: [googleAI()] });

// 定义工具:查询订单
const lookupOrder = ai.defineTool({
  name: "lookupOrder",
  description: "根据订单号查询订单状态",
  inputSchema: z.object({ orderId: z.string() }),
  outputSchema: z.object({
    status: z.string(),
    items: z.array(z.string()),
    total: z.number(),
  }),
  run: async (input) => {
    const order = await db.orders.findById(input.orderId);
    return order;
  },
});

// 定义客服代理
const supportAgent = ai.defineFlow({
  name: "support-agent",
  inputSchema: z.string(),
  outputSchema: z.string(),
}, async (userMessage) => {
  const { text } = await ai.generate({
    model: googleAI("gemini-1.5-pro"),
    prompt: `你是客服代理。用户问题:${userMessage}`,
    tools: [lookupOrder],
    config: { temperature: 0.3 },
  });
  return text;
});

// 流式输出
export const streamResponse = ai.defineFlow(
  "stream-response",
  async function* (input) {
    const { stream } = ai.generateStream({
      model: googleAI("gemini-1.5-flash"),
      prompt: input,
    });
    for await (const chunk of stream) {
      yield chunk.text;
    }
  }
);

与其他框架对比

特性GenkitLangChainMastra
开发团队Google/Firebase社区独立团队
语言TS/GoPython/JSTypeScript
Dev UI内置可视化LangSmith(付费)基础
部署Firebase原生通用通用
提示词管理Dotprompt模板字符串文件管理
流式输出原生支持支持支持

📚 常见问题

Genkit是什么?

Genkit 是由Google Firebase团队开源的全栈AI应用开发框架。它提供了统一的API接口,让开发者能够轻松集成多种AI模型(Gemini、OpenAI、Anthropic等),并通过跨语言SDK支持TypeScript和Go。Genkit的核心设计理念是"AI去中心化"——开发者可以在本地开发和测试AI