Genkit Google 开源的 AI 应用开发框架介绍

最近在折腾 AI 应用开发,发现 Google 开源了一个叫 Genkit 的框架,用了一段时间感觉挺香的,索性整理成一篇博客,顺便聊聊怎么用它对接国产大模型。


一、Genkit 是什么?

Genkit 是 Google 开源的 AI 应用开发框架,最早叫「Firebase Genkit」,后来独立出来,官网也迁到了 genkit.dev。它主打的是:用一套统一的接口,把各种 AI 模型、检索、评估等能力串起来,让你专注写业务逻辑,而不是到处适配不同厂商的 SDK。

简单说:Genkit 就是 AI 应用开发的「胶水层」------你定义好输入输出和流程,它帮你搞定模型调用、可观测性、调试工具这些脏活累活。


二、它能干什么?

2.1 核心能力

  • 多模态:文本、图片、语音、视频都能玩
  • 结构化输出:用 Zod、Pydantic 等定义 schema,模型直接按结构返回,不用自己解析
  • 工具调用(Tool Calling):让 LLM 能调用你写的函数,查数据库、调 API、算数都行
  • Agent 工作流:支持多步推理、人机协作(human-in-the-loop)等复杂流程
  • 可观测性:内置 tracing,配合 Developer UI 可视化调试

2.2 典型场景

  • 智能客服 / 聊天机器人
  • 自动化工作流(审批、摘要、分类等)
  • 推荐系统、内容生成
  • RAG(检索增强生成)应用

三、支持哪些语言和模型?

3.1 语言支持

语言 状态
TypeScript / JavaScript 稳定
Go 稳定
Python Alpha
Dart Preview

3.2 模型支持

官方插件覆盖:GeminiOpenAIAnthropicxAIDeepSeekOllama 等。更重要的是,它有一个 OpenAI 兼容插件,只要你的模型服务暴露的是 OpenAI 风格的 API,就能接进来------这也是后面适配国产模型的关键。


四、怎么用?快速上手

4.1 安装

以 Node.js 为例:

bash 复制代码
# 安装 CLI(用于 Developer UI 等)
npm install -g genkit-cli

# 安装核心包和 Google AI 插件
npm install genkit @genkit-ai/google-genai

4.2 配置 API Key

bash 复制代码
export GEMINI_API_KEY=<你的 API Key>

4.3 写第一个 Flow

Flow 是 Genkit 的核心抽象:一个带输入输出 schema、可观测、可部署的 AI 函数。

ts 复制代码
import { genkit, z } from "genkit";
import { googleAI } from "@genkit-ai/google-genai";

const ai = genkit({
  plugins: [googleAI()],
  model: googleAI.model("gemini-2.5-flash", { temperature: 0.8 }),
});

const RecipeSchema = z.object({
  title: z.string(),
  description: z.string(),
  ingredients: z.array(z.string()),
  instructions: z.array(z.string()),
});

export const recipeFlow = ai.defineFlow(
  {
    name: "recipeFlow",
    inputSchema: z.object({ ingredient: z.string() }),
    outputSchema: RecipeSchema,
  },
  async ({ ingredient }) => {
    const { output } = await ai.generate({
      prompt: `用 ${ingredient} 做一道菜的菜谱`,
      output: { schema: RecipeSchema },
    });
    return output;
  }
);

4.4 运行和调试

bash 复制代码
# 直接跑
npx tsx src/index.ts

# 启动 Developer UI 可视化调试
genkit start -- npx tsx --watch src/index.ts

浏览器打开 http://localhost:4000,就能在 UI 里选 Flow、填输入、看 trace,非常方便。


五、如何适配国产大模型?

很多国产大模型(通义千问、文心一言、智谱等)都提供了 OpenAI 兼容模式 ,也就是接口格式和 OpenAI 的 Chat Completions API 一致。Genkit 的 @genkit-ai/compat-oai 包里的 openAICompatible 就是干这个的:你只需要配置 baseURLapiKey,就能把国产模型当「自定义 OpenAI 服务」来用。

5.1 安装兼容插件

bash 复制代码
npm install @genkit-ai/compat-oai

5.2 以通义千问为例

阿里云通义千问的兼容接口 baseURL 如下(按地域选):

  • 北京:https://dashscope.aliyuncs.com/compatible-mode/v1
  • 新加坡:https://dashscope-intl.aliyuncs.com/compatible-mode/v1
  • 弗吉尼亚:https://dashscope-us.aliyuncs.com/compatible-mode/v1

配置示例:

ts 复制代码
import { genkit, modelRef } from "genkit";
import { openAICompatible } from "@genkit-ai/compat-oai";

const ai = genkit({
  plugins: [
    openAICompatible({
      name: "tongyi",
      apiKey: process.env.DASHSCOPE_API_KEY!,  // 通义的 API Key
      baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1",
    }),
  ],
});

// 定义模型引用,格式:插件名/模型ID
const qwenModel = modelRef({
  name: "tongyi/qwen-plus",  // 或 qwen-max、qwen-turbo 等
});

// 使用
const { text } = await ai.generate({
  model: qwenModel,
  prompt: "介绍一下你自己",
});

5.3 文心一言、智谱等

只要厂商提供 OpenAI 兼容的 HTTP 接口,用法都一样:

  1. 查文档拿到 baseURLapiKey
  2. openAICompatible 注册一个插件实例
  3. modelRef("插件名/模型ID") 引用具体模型

例如智谱 GLM-4:

ts 复制代码
openAICompatible({
  name: "zhipu",
  apiKey: process.env.ZHIPU_API_KEY!,
  baseURL: "https://open.bigmodel.cn/api/paas/v4",
})
// 模型:zhipu/glm-4

5.4 多模型并存

可以同时挂多个插件,按需切换:

ts 复制代码
const ai = genkit({
  plugins: [
    googleAI(),
    openAICompatible({
      name: "tongyi",
      apiKey: process.env.DASHSCOPE_API_KEY!,
      baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1",
    }),
  ],
});

// 用 Gemini
await ai.generate({ model: googleAI.model("gemini-2.5-flash"), prompt: "..." });

// 用通义
await ai.generate({ model: modelRef("tongyi/qwen-plus"), prompt: "..." });

六、小结

  • Genkit 是 Google 的 AI 应用框架,帮你统一模型调用、流程编排和可观测性。
  • 支持 JS/TS、Go、Python、Dart,模型覆盖主流厂商,还能通过 OpenAI 兼容插件 接自定义服务。
  • 国产大模型只要提供 OpenAI 兼容 API,用 openAICompatible 配好 baseURLapiKey 即可,一套代码多模型切换,非常省事。

如果你也在做 AI 应用,不妨试试 Genkit,尤其是需要同时对接多个模型或做复杂工作流时,会轻松不少。


参考: Genkit 官方文档 | 通义千问 OpenAI 兼容说明

相关推荐
IT_陈寒12 小时前
React Hooks闭包陷阱:你以为的state可能早就过期了
前端·人工智能·后端
Thomas.Sir13 小时前
第一章:Agent智能体开发实战之【初步认识 LlamaIndex:从入门到实操】
人工智能·python·ai·检索增强·llama·llamaindex
笨笨饿13 小时前
29_Z变换在工程中的实际意义
c语言·开发语言·人工智能·单片机·mcu·算法·机器人
boy快快长大13 小时前
【大模型应用开发】记忆
人工智能
LaughingZhu14 小时前
Product Hunt 每日热榜 | 2026-04-05
前端·数据库·人工智能·经验分享·神经网络
OPHKVPS14 小时前
GoBruteforcer(GoBrut)僵尸网络新攻势:AI 生成弱配置成“帮凶”,瞄准加密货币及区块链数据库
网络·人工智能·区块链
打乒乓球只会抽14 小时前
AI Agent:大模型+工具的智能革命
人工智能
Pelb14 小时前
求导 y = f(x) = x^2
人工智能·深度学习·神经网络·数学建模
workflower15 小时前
注塑机行业目前自动化现状分析
运维·人工智能·语言模型·自动化·集成测试·软件工程·软件需求
CeshirenTester15 小时前
华泰证券2027届校招启动|提前批+国际管培+金融科技,三个专场一次说清
人工智能·科技·金融