最近在折腾 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 模型支持
官方插件覆盖:Gemini、OpenAI、Anthropic、xAI、DeepSeek、Ollama 等。更重要的是,它有一个 OpenAI 兼容插件,只要你的模型服务暴露的是 OpenAI 风格的 API,就能接进来——这也是后面适配国产模型的关键。
四、怎么用?快速上手
4.1 安装
以 Node.js 为例:
# 安装 CLI(用于 Developer UI 等)
npm install -g genkit-cli
# 安装核心包和 Google AI 插件
npm install genkit @genkit-ai/google-genai
4.2 配置 API Key
export GEMINI_API_KEY=<你的 API Key>
4.3 写第一个 Flow
Flow 是 Genkit 的核心抽象:一个带输入输出 schema、可观测、可部署的 AI 函数。
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 运行和调试
# 直接跑
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 就是干这个的:你只需要配置 baseURL 和 apiKey,就能把国产模型当「自定义 OpenAI 服务」来用。
5.1 安装兼容插件
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
配置示例:
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 接口,用法都一样:
- 查文档拿到
baseURL和apiKey - 用
openAICompatible注册一个插件实例 - 用
modelRef("插件名/模型ID")引用具体模型
例如智谱 GLM-4:
openAICompatible({
name: "zhipu",
apiKey: process.env.ZHIPU_API_KEY!,
baseURL: "https://open.bigmodel.cn/api/paas/v4",
})
// 模型:zhipu/glm-4
5.4 多模型并存
可以同时挂多个插件,按需切换:
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配好baseURL和apiKey即可,一套代码多模型切换,非常省事。
如果你也在做 AI 应用,不妨试试 Genkit,尤其是需要同时对接多个模型或做复杂工作流时,会轻松不少。
参考: Genkit 官方文档 | 通义千问 OpenAI 兼容说明