news 2026/4/16 17:15:30

用 Go 快速搭建一个 Coze (扣子)API 流式回复模拟接口(Mock Server)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
用 Go 快速搭建一个 Coze (扣子)API 流式回复模拟接口(Mock Server)

用 Go 快速搭建一个 Coze (扣子) API 流式回复模拟接口(Mock Server)

在开发 Coze Bot 相关的前端功能时,我们经常需要测试流式回复(SSE)的打字机效果、加载状态、停止响应、内容渲染等逻辑。但直接调用真实的 Coze API 会消耗 token,而且回复速度和内容不可控。

下面分享一个纯 Go 实现的本地模拟接口,只需几分钟就能跑起来,完全兼容 Coze 的/v3/chat流式返回格式,让你零成本、无限次地测试前端体验。

功能亮点
  • 完美还原 Coze 的 SSE 流式结构(event: conversation.message.delta+data: {"content":"..."}
  • 逐字打字机效果,延迟随机 50~150ms,模拟真人输入
  • 支持 CORS,前端直接调用无需额外配置
  • 回复内容支持 Markdown,前端可直接渲染
  • 自动发送[DONE]结束标志
  • 代码简洁,只有不到 100 行
完整代码(mock_coze.go)
packagemainimport("fmt""io""log""net/http""strings""time")constproxyPort=":8680"funcmain(){http.HandleFunc("/coze-chat",mockHandler)log.Printf("[MOCK] 模拟 Coze 接口已启动")log.Printf("[MOCK] 监听地址: http://localhost%s/coze-chat",proxyPort)log.Printf("[MOCK] 可直接用你原来的前端代码测试(无需 token)")log.Fatal(http.ListenAndServe(proxyPort,nil))}funcmockHandler(w http.ResponseWriter,r*http.Request){clientIP:=r.RemoteAddr log.Printf("[MOCK REQUEST] %s %s from %s",r.Method,r.URL.Path,clientIP)// 处理 CORS 预检ifr.Method==http.MethodOptions{w.Header().Set("Access-Control-Allow-Origin","*")w.Header().Set("Access-Control-Allow-Methods","POST, OPTIONS")w.Header().Set("Access-Control-Allow-Headers","Content-Type")w.Header().Set("Access-Control-Max-Age","86400")w.WriteHeader(http.StatusNoContent)return}ifr.Method!=http.MethodPost{http.Error(w,"Method Not Allowed",http.StatusMethodNotAllowed)return}// 读取请求体(仅模拟,可忽略内容)_,_=io.ReadAll(r.Body)deferr.Body.Close()// 设置 SSE 响应头w.Header().Set("Content-Type","text/event-stream")w.Header().Set("Cache-Control","no-cache")w.Header().Set("Connection","keep-alive")w.Header().Set("Access-Control-Allow-Origin","*")w.(http.Flusher).Flush()// 自定义回复内容(支持 Markdown,随时修改)fullResponse:=`# 时尚审美评估师 **评判结果**:好看 **理由**: - 这件帽衫的深灰色非常百搭,经典不过时,适合各种肤色。 - 版型宽松舒适,oversize 设计很有街头感,显瘦又时髦。 - 帽绳和袖口细节处理精致,质感看起来很不错(棉感强,不廉价)。 - 前胸的小logo绣标低调有质感,不会太张扬。 - 整体风格偏休闲运动风,日常穿搭、约会、逛街都非常合适。 **搭配建议**: - 下装:黑色或深蓝牛仔裤 + 白球鞋(经典安全) - 进阶:卡其色工装裤 + 马丁靴(更有层次) - 外搭:短款羽绒服或风衣(冬天显高) 总体来说,这件帽衫设计简洁大方,性价比应该很高,值得入手!✨`// 逐字输出,模拟打字机效果for_,char:=rangefullResponse{fmt.Fprintf(w,"event: conversation.message.delta\n")fmt.Fprintf(w,"data: {\"id\":\"mock123\",\"conversation_id\":\"mock\",\"bot_id\":\"mock\",\"role\":\"assistant\",\"type\":\"answer\",\"content\":\"%s\",\"content_type\":\"text\"}\n\n",escapeJSON(string(char)))w.(http.Flusher).Flush()// 随机延迟,模拟人类打字速度time.Sleep(time.Millisecond*time.Duration(50+(char%100)))}// 发送结束标志fmt.Fprint(w,"event: done\ndata: [DONE]\n\n")w.(http.Flusher).Flush()log.Printf("[MOCK SUCCESS] 模拟回复完成,共输出 %d 个字符",len(fullResponse))}// 简单 JSON 转义函数funcescapeJSON(sstring)string{s=strings.ReplaceAll(s,"\\","\\\\")s=strings.ReplaceAll(s,"\"","\\\"")s=strings.ReplaceAll(s,"\n","\\n")s=strings.ReplaceAll(s,"\r","\\r")returns}
使用方法
  1. 保存为mock_coze.go
  2. 运行:
go run mock_coze.go
  1. 前端保持原有调用方式(URL 指向http://localhost:8680/coze-chat即可)
自定义回复内容

只需修改fullResponse变量中的文本,支持任意 Markdown 格式。例如想测试负面评价:

fullResponse:="这件帽衫不太行,颜色暗沉、版型臃肿,建议再看看其他款~"

或者测试超长回复、代码块、列表等,都可以随意发挥。

总结

这个小工具极大提升了前端开发效率:

  • 零成本、无限测试
  • 完全还原真实流式体验
  • 内容、速度可控
  • 支持前后端联调

推荐所有在做 Coze Bot 前端交互的同学都备一个,调试 UI、加载状态、打字动画时简直无敌好用!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 12:12:58

记录一次Linux下java程序证书认证导致访问失败

前景提示 博主使用DependencyCheck命令行工具的时候,出现地址无法访问,显示证书不可信 处理办法 为java添加可信库 步骤生成可信密钥文件openssl s_client -connect 域名:443 -servername 域名 |sed -n /-----BEGIN CERTIFICATE-----/,/-----END CERTIFI…

作者头像 李华
网站建设 2026/4/16 13:05:15

MySQL终端常用命令

1、终端登录MySQLmysql -u username -p2、显示服务端创建的数据库show databases;3、使用指定数据库// use 数据库名 use db_name; // 例如数据库名为mysql use mysql;4、显示数据库所包含的数据库表show tables;5、查看具体表描述desc table_name;6、查看具体表中内容select *…

作者头像 李华
网站建设 2026/4/16 12:56:11

如何用3步实现企业Agent的Docker权限最小化?运维必看

第一章:企业Agent的Docker权限最小化概述在企业级容器化部署中,运行 Agent 类服务(如监控、日志采集、安全探针等)时,确保其所在 Docker 容器具备最小必要权限是保障系统安全的关键实践。过度授权可能导致容器逃逸、横…

作者头像 李华
网站建设 2026/4/16 14:31:54

构建时间从30分钟到3分钟:AI模型Docker缓存调优真实案例

第一章:构建时间从30分钟到3分钟:AI模型Docker缓存调优真实案例在持续集成环境中,一个基于PyTorch的AI模型服务镜像构建时间曾高达30分钟,严重拖慢了开发迭代效率。通过深入分析Docker构建层机制,结合依赖缓存策略优化…

作者头像 李华
网站建设 2026/4/16 12:56:42

别再裸奔了!智能 Agent 的 Docker 安全配置必须包含这 8 个核心项

第一章:智能 Agent 的 Docker 安全配置概述在部署智能 Agent 的容器化环境时,Docker 的安全配置是保障系统稳定与数据隔离的核心环节。不当的配置可能导致权限提升、网络暴露或镜像污染等安全风险。因此,从镜像构建到运行时策略,每…

作者头像 李华
网站建设 2026/4/16 13:30:05

网络开始替你做决定,这事真的有点不对劲

一开始,我也觉得这事挺离谱的。 网络嘛,不就是发请求、收响应? 最多加个代理、配个 timeout。 但后来你会发现一件很微妙的事:你越来越多的代码,根本不是在“写业务”, 而是在安抚网络的情绪。这时候你心里…

作者头像 李华