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 兼容说明

相关推荐
BertieHuang2 小时前
《OpenCode 源码解析》Step 9: User Content 组装和第二次 LLM 调用概览
人工智能
AI攻城狮2 小时前
长上下文不是长期记忆:为什么 1M Context 也不会淘汰 RAG
人工智能·云原生·aigc
疲惫的神熊猫2 小时前
Linux(Ubuntu)部署Ollama+Qwen(千问)本地大模型实战01
人工智能
码路飞2 小时前
熬夜看完 GTC 2026 Keynote,这 5 个发布跟开发者最相关(不只是显卡)
人工智能
数字生命卡兹克2 小时前
AI,正在吞噬所有软件。
人工智能
深视智能科技2 小时前
AIR 系列:极端环境下的高速成像方案
人工智能·科技·相机
HyperAI超神经3 小时前
基于2.5万临床数据,斯坦福大学发布首个原生3D腹部CT视觉语言模型,Merlin在752类任务中全面领先
人工智能·深度学习·神经网络·机器学习·3d·语言模型·cpu
飞Link3 小时前
具身智能:从大脑到四肢,AI跨越物理世界的全景指南
人工智能·机器人
KKKlucifer3 小时前
数据资产化背景下的分类分级技术架构设计
人工智能·安全·重构