Skip to content

Go Cloud Function — 一体化 AI 助手

当前推荐方案。EdgeOne Pages 已支持 Go Cloud Function,本项目基于此实现了一体化的 Go 后端,将 MCP Server、RAG 问答、Tool Use 全部整合在边缘函数中,无需自建服务器

演进背景

EdgeOne Pages 早期仅支持 JS Cloud Function,因此本项目最初将功能拆分为两种独立方案:

  • 场景一(JS Serverless MCP):用 JS 边缘函数实现 MCP Server,仅提供外部 AI 工具检索
  • 场景二(Go RAG 自建服务):需要自建 Go 服务器,提供网页端 AI 问答

2026 年 4 月,EdgeOne Pages 新增 Go Cloud Function 支持后,我们将两种方案合并升级为当前的 Go Cloud Function 方案——一个服务同时覆盖 MCP + RAG + Tool Use,不再需要分开部署。

工作原理

  1. 文档向量化:与场景一、二共享同一套 CNB 知识库流水线,Markdown 文档自动向量化
  2. Go Cloud Function:EdgeOne Pages 部署时自动识别 cloud-functions/ 下的 Go 代码,编译并运行在边缘节点
  3. MCP 端点/mcp 路由实现标准 MCP Streamable HTTP 协议,供外部 AI 工具接入
  4. RAG 问答/api/v1/chat/api/v1/chat/stream 提供非流式和流式 RAG 问答
  5. Tool Use/api/v1/mcp/tools/api/v1/mcp/tools/call/api/v1/mcp/llm/chat 支持前端 AI 组件的 Function Calling 流程

💡 与历史场景二的核心区别:无需自建服务器。Go 后端直接运行在 EdgeOne 边缘函数上,享受全球 CDN 加速和自动扩缩容。

路由总览

路由方法说明
/GET服务信息
/api/v1/healthGET健康检查
/api/v1/chatPOSTRAG 非流式问答
/api/v1/chat/streamPOSTRAG 流式问答(SSE)
/api/v1/mcp/toolsGETTool Use 工具列表
/api/v1/mcp/tools/callPOSTTool Use 工具调用
/api/v1/mcp/llm/chatPOSTTool Use LLM 聊天(支持 Function Calling)
/mcpANY标准 MCP Streamable HTTP 端点

技术栈

组件说明
Go 1.22+主要开发语言
GinHTTP 框架,路由与中间件
go-openaiOpenAI 兼容 API 客户端(支持 DeepSeek、混元等)
EdgeOne PagesGo Cloud Function 运行环境
CNB 知识库向量化存储与语义检索

项目结构

cloud-functions/
├── go.mod                          # Go 模块定义
├── index.go                        # 入口文件(路由编排)
└── internal/
    ├── config/
    │   └── config.go               # 配置加载、CORS 中间件、AI 客户端
    ├── handler/
    │   ├── mcp.go                  # 标准 MCP Streamable HTTP 端点
    │   ├── rag.go                  # RAG 问答(流式 / 非流式)
    │   └── tooluse.go              # Tool Use 接口(前端 AI 组件)
    └── knowledge/
        └── knowledge.go            # CNB 知识库查询与结果格式化

环境变量

Go Cloud Function 通过环境变量获取配置,EdgeOne Pages 部署时会自动注入 CNB_TOKEN

变量名必填说明
KNOWLEDGE_API_URLCNB 知识库查询 API 地址
CNB_TOKENCNB 访问令牌(EdgeOne Pages 自动注入)
AI_BASE_URLOpenAI 兼容 API 地址(如 DeepSeek、混元)
AI_API_KEYAI API 密钥
AI_MODEL模型名称(如 deepseek-r1hunyuan-t1-20250711
RAG_SYSTEM_PROMPT自定义系统提示词,默认使用内置提示词

与历史方案的对比

场景一:JS MCP(已归档)场景二:Go RAG 自建(已归档)Go Cloud Function(当前)
运行环境EdgeOne JS Function自建服务器EdgeOne Go Function
MCP 端点
网页 AI 助手
RAG 问答
Tool Use
自建服务器不需要需要不需要
LLM 调用外部工具自带Go 后端调用Go Function 调用
运维复杂度中~高
全球加速✅ CDN取决于部署位置✅ CDN

场景优势

优势说明
一体化MCP + RAG + Tool Use 全部在一个 Go 服务中,统一维护
零服务器运行在 EdgeOne 边缘函数,无需自建服务器
全球加速EdgeOne CDN 天然低延迟
Go 生态使用 Go 语言,性能优异,生态丰富
自动鉴权CNB_TOKEN 自动注入,无需手动管理密钥
流式支持支持 SSE 流式输出,DeepSeek-R1 风格思考链展示
兼容前端完全兼容本项目已有的 Vue AI 助手组件

适用场景

选 Go Cloud Function,如果你:

  • 希望同时拥有 MCP 端点和网页端 AI 助手
  • 不想自建和维护服务器
  • 熟悉 Go 语言,希望用 Go 编写后端逻辑
  • 需要更灵活的后端能力(如自定义 RAG 编排、多工具路由)
历史方案参考

如果你有特殊需求(如私有化部署、特定网络环境),仍可参考历史方案的实现思路:

下一步

基于 CNB 平台知识库 + 腾讯云 EdgeOne Edge Function