谷歌推出新一代AI开发框架Genkit: Go 入门指南:用 Go 轻松构建 AI 应用

简介: Genkit 是 Google Firebase 推出的开源 AI 应用框架,支持 Go、JS、Python。Genkit Go 为纯 Go 实现,统一接入 Gemini/OpenAI/Vertex AI,内置可视化调试、类型安全结构化生成,专为生产环境设计,5 分钟即可启动首个 AI 应用。

一、什么是 Genkit?

Genkit 是 Google Firebase 团队开发的开源 AI 应用开发框架,支持 JavaScript、Go 和 Python 三种语言 。它让你用熟悉的编程语言,轻松构建生产级的 AI 应用,无需学习复杂的 AI 专用语言。

为什么选择 Genkit Go?

  • ✅ 纯 Go 实现,符合 Go 语言习惯
  • ✅ 统一接口对接 Gemini、OpenAI、Vertex AI 等主流模型
  • ✅ 内置开发者工具,可视化调试 AI 流程
  • ✅ 类型安全,用 Go struct 定义输入/输出结构
  • ✅ 专为生产环境设计,Google 内部已在使用 [[21]]

二、快速开始(5 步搞定)

第 1 步:环境准备

确保已安装:

# Go 1.24 或更高版本
go version

💡 提示:Genkit 核心是纯 Go 实现,Node.js 仅用于开发者 UI 工具


第 2 步:创建项目

# 创建项目目录
mkdir my-ai-app && cd my-ai-app

# 初始化 Go 模块
go mod init example/my-ai-app

第 3 步:安装 Genkit

# 安装核心包
go get github.com/firebase/genkit/go

# 安装 Google AI 插件(支持 Gemini 模型)
go get github.com/firebase/genkit/go/plugins/googlegenai

第 4 步:配置 API Key

  1. 访问 Google AI Studio 免费获取 Gemini API Key
  2. 设置环境变量:
# Linux/macOS
export GEMINI_API_KEY=你的API密钥

# Windows (PowerShell)
$env:GEMINI_API_KEY="你的API密钥"

💡 Gemini 提供慷慨的免费额度,无需信用卡即可开始


第 5 步:编写第一个 AI 应用

创建 main.go 文件:

package main

import (
    "context"
    "encoding/json"
    "fmt"
    "log"
    "net/http"

    "github.com/firebase/genkit/go/ai"
    "github.com/firebase/genkit/go/genkit"
    "github.com/firebase/genkit/go/plugins/googlegenai"
    "github.com/firebase/genkit/go/plugins/server"
)

// 定义输入结构(用 Go struct 描述)
type RecipeInput struct {
   
    Ingredient          string `json:"ingredient" jsonschema:"description=主要食材"`
    DietaryRestrictions string `json:"dietaryRestrictions,omitempty" jsonschema:"description=饮食限制"`
}

// 定义输出结构(AI 会按此格式返回数据)
type Recipe struct {
   
    Title       string   `json:"title"`
    Description string   `json:"description"`
    Ingredients []string `json:"ingredients"`
    Instructions []string `json:"instructions"`
}

func main() {
   
    ctx := context.Background()

    // 1. 初始化 Genkit + Google AI 插件
    g := genkit.Init(ctx,
        genkit.WithPlugins(&googlegenai.GoogleAI{
   }),
        genkit.WithDefaultModel("googleai/gemini-2.5-flash"), // 使用最新 Gemini 模型
    )

    // 2. 定义 AI 流程(Flow):输入食材 → 生成菜谱
    recipeFlow := genkit.DefineFlow(g, "recipeGenerator", func(ctx context.Context, input *RecipeInput) (*Recipe, error) {
   
        // 用自然语言描述需求
        prompt := fmt.Sprintf(
            "用 %s 制作一道 %s 菜肴,返回结构化菜谱",
            input.Ingredient,
            input.DietaryRestrictions,
        )

        // 调用 AI 生成结构化数据(自动按 Recipe 格式返回)
        recipe, _, err := genkit.GenerateData[Recipe](ctx, g, ai.WithPrompt(prompt))
        if err != nil {
   
            return nil, fmt.Errorf("生成菜谱失败: %w", err)
        }
        return recipe, nil
    })

    // 3. 立即测试:生成牛油果素食菜谱
    recipe, err := recipeFlow.Run(ctx, &RecipeInput{
   
        Ingredient:          "牛油果",
        DietaryRestrictions: "素食",
    })
    if err != nil {
   
        log.Fatal(err)
    }

    // 4. 打印结果(自动是结构化 JSON)
    jsonData, _ := json.MarshalIndent(recipe, "", "  ")
    fmt.Println("✨ 生成的菜谱:")
    fmt.Println(string(jsonData))

    // 5. 启动 HTTP 服务(可选:供前端调用)
    mux := http.NewServeMux()
    mux.HandleFunc("POST /generate", genkit.Handler(recipeFlow))
    log.Println("🚀 服务启动: http://localhost:3400/generate")
    log.Fatal(server.Start(ctx, "127.0.0.1:3400", mux))
}

三、运行你的 AI 应用

方式 1:直接运行(快速测试)

go run .

输出示例:

✨ 生成的菜谱:
{
   
  "title": "香煎牛油果配藜麦沙拉",
  "description": "一道清爽健康的素食主菜",
  "ingredients": [
    "成熟牛油果 2个",
    "藜麦 100g",
    "樱桃番茄 10颗",
    "柠檬汁 1汤匙"
  ],
  "instructions": [
    "藜麦煮熟放凉",
    "牛油果切片轻煎",
    "混合所有食材",
    "淋上柠檬汁调味"
  ]
}

方式 2:通过 HTTP API 调用

保持应用运行,在新终端执行:

curl -X POST http://localhost:3400/generate \
  -H "Content-Type: application/json" \
  -d '{"data": {"ingredient": "番茄", "dietaryRestrictions": "纯素"}}'

四、核心概念速览

概念 说明 类比
Flow AI 工作流,封装输入→处理→输出的完整逻辑 类似 HTTP Handler
Plugin 模型提供商插件(Google AI/OpenAI 等) 类似数据库驱动
GenerateData 生成结构化数据(自动按 Go struct 格式返回) 类似 JSON 解码
Developer UI 本地可视化调试工具 类似 Postman + Chrome DevTools

五、常见问题

Q1: 需要付费吗?

Gemini API 有免费额度(每月数万 tokens),个人学习完全够用 [[1]]。生产环境按量计费,价格透明。

Q2: 只能用 Google 模型吗?

支持多提供商:

// Google AI
genkit.WithPlugins(&googlegenai.GoogleAI{
   })

// OpenAI(需安装 openai 插件)
genkit.WithPlugins(&openai.OpenAI{
   })

Q3: 如何处理错误?

Genkit 返回标准 Go error,可直接用 if err != nil 处理:

result, err := flow.Run(ctx, input)
if err != nil {
   
    // 处理网络错误/模型错误/超时等
    log.Printf("AI 调用失败: %v", err)
}

相关文章
|
2月前
|
机器学习/深度学习 存储 自然语言处理
蚂蚁集团 Ling-2.5-1T 开源:万亿参数,重新定义"又快又强"
Ling-2.5-1T是蚂蚁集团inclusionAI推出的开源即时大模型(MIT协议),以“效率×效果”为核心:万亿参数、63B激活,首创混合线性注意力架构,支持百万token上下文;推理吞吐大幅提升,AIME任务仅需1/3 token即达前沿思考模型水平。ModelScope可下载。
557 4
蚂蚁集团 Ling-2.5-1T 开源:万亿参数,重新定义"又快又强"
|
2月前
|
人工智能 运维 安全
2026年OpenClaw(Clawdbot)极速部署与OpenClaw Skills生态运维指南
2026年,开源AI智能体技术进入爆发期,OpenClaw(原Clawdbot、Moltbot)凭借“本地优先、全链路可执行、技能生态丰富”的核心特性,成为个人与轻量团队实现自动化办公的首选工具。它彻底打破了传统AI“只会对话不会执行”的局限,通过标准化的Skills(技能)体系,能够像人类一样调用工具、处理文件、对接系统,完成从内容总结到跨平台推送的全流程任务。
365 10
|
9天前
|
人工智能 Ubuntu API
零门槛组建AI协作团队:OpenClaw多Agent配置+阿里云、本地部署+大模型对接完整手册
OpenClaw的多Agent协作功能,让用户能够快速搭建分工明确、协同高效的AI虚拟团队,每个Agent拥有独立角色、工作空间与权限,可通过预设规则处理专属任务,并实现跨Agent消息传递与协作。本文基于2026年最新版本,详细拆解多Agent团队搭建的核心步骤——Agent创建、属性配置、路由绑定、通信启用,同时提供阿里云及本地多系统部署流程、阿里云百炼免费大模型配置,所有命令可直接复制执行,助力用户轻松实现从单一智能体到多角色协作团队的升级。
1434 7
|
30天前
|
人工智能 安全 API
保姆级图文教程!OpenClaw阿里云/本地MacOS/Windows部署+免费大模型API配置接入15000+Skill指南
当ClawHub的技能数量突破14946个,OpenClaw早已从“单一AI工具”进化为“模块化生产力生态”。技能(Skill)作为AI的“执行身份”,让OpenClaw能在设计总监、增长黑客、法律顾问等角色间无缝切换,一个人+一套技能组合即可搭建微型工作室。但繁华背后暗藏危机——2026年初爆发的ClawHavoc事件,335个恶意技能通过远程代码执行漏洞窃取API Key、注入恶意脚本,让无数用户遭遇“挖矿盗刷”的损失。
1387 16
|
2月前
|
人工智能 安全 JavaScript
从OpenClaw到NullClaw,极致轻量Claw新成员来了
从OpenClaw到NullClaw,极致轻量Claw新成员来了 从OpenClaw到NullClaw,极致轻量Claw新成员来了 从OpenClaw到NullClaw,极致轻量Claw新成员来了
1845 5
|
30天前
|
人工智能 测试技术 微服务
AI 大型项目编程流程
本项目采用Claude与Codex协同开发模式:先由Claude定稿需求、竞品分析、生成技术文档;再由Codex分周期开发、自动生成/更新流程文档,并循环接受Claude评估优化;老项目则支持微服务级模块化改造与迭代测试,实现高效、可靠、可追溯的AI驱动开发闭环。(239字)
259 7
|
2月前
|
Rust 安全 JavaScript
告别 `print()`!用 VS Code 调试器高效定位 Bug
本文手把手教你用VS Code调试器替代低效`print`:5步定位“越打折越贵”Bug,零代码侵入、实时查变量、支持条件断点与表达式监视。免费、高效、安全——调试本该如此简单!