要用coze快速搭建可落地的全栈应用,需五步:一、在coze中发布bot为api并保存token和地址;二、vue 3调用该api;三、spring boot封装调用逻辑并处理响应格式;四、mysql持久化用户交互数据;五、nginx反向代理隐藏敏感信息。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

想用扣子(Coze)快速搭建一个能真正跑起来的全栈应用,而不是停留在Bot界面里反复调试对话流——你需要把Bot能力嵌入真实业务流程,让前端页面能调用后端逻辑、数据库能持久化用户行为、接口能被外部系统触发。
第一步:在Coze中导出可复用的Bot逻辑为API
进入Bot编辑页 → 点击右上角「更多」→ 选择「发布为API」→ 勾选「启用API访问」→ 点击「生成Token」。
这一步必须做,否则后续前端无法调用。生成的Token是长期有效的凭证,【务必复制后立即保存,页面关闭后不可再次查看】。
复制完整API地址(形如 https://api.coze.com/open_api/v2/chat?bot_id=xxx),它将作为你全栈链路的“后端入口”。
第二步:用Vue 3 + Pinia构建前端调用层
在src/api/coze.js中新建文件,写入:
export const callCozeBot = (message) => { return axios.post('https://api.coze.com/open_api/v2/chat?bot_id=xxx', { message }, { headers: { 'Authorization': 'Bearer YOUR_TOKEN_HERE', 'Content-Type': 'application/json' } }); };
注意:YOUR_TOKEN_HERE要替换成你上一步复制的真实Token,漏掉或写错会导致401错误,且Coze控制台不会提示具体原因。
在组件中使用时,直接调用callCozeBot(‘你好’)即可发起请求,响应数据结构与Coze Bot返回一致,含content、type等字段。
第三步:Spring Boot接入Coze API并封装成内部服务
方法一:直接转发(适合MVP验证)
在Controller中用RestTemplate或WebClient调用Coze官方API,将前端请求透传过去,再把响应原样返回。优点是零逻辑改造,缺点是无法加校验、埋点或缓存。
方法二:桥接增强(推荐用于生产)
创建CozeService类,封装三件事:① 对message做敏感词过滤;② 记录用户会话ID与时间戳到MySQL日志表;③ 若连续5次空响应,自动触发兜底文案返回。这样既保留Coze智能,又守住业务底线。
关键点:Coze返回的content字段是字符串数组,不是纯文本,前端渲染前需join(‘\n’)处理,否则会显示[“你好”,“请问有什么可以帮您?”]这样的原始格式。
第四步:MySQL存储用户意图与Bot反馈闭环
建表语句必须包含以下字段:id(BIGINT PK)、user_id(VARCHAR)、session_id(VARCHAR)、input_text(TEXT)、output_content(LONGTEXT)、created_at(DATETIME DEFAULT CURRENT_TIMESTAMP)。
插入逻辑放在Spring Boot的CozeService内,不要依赖前端传参——session_id由后端用UUID.randomUUID().toString()生成,避免前端伪造。
这一步做完,你就能在phpMyAdmin或Navicat里看到每一句“查快递”“重置密码”都被存下来,后续可直接喂给微调模型或生成运营报表。
第五步:Nginx反向代理打通跨域与路径收敛
编辑/etc/nginx/conf.d/coze-proxy.conf,写入:
location /api/coze/ { proxy_pass https://api.coze.com/open_api/v2/; proxy_set_header Host api.coze.com; proxy_set_header Authorization $http_authorization; proxy_hide_header Authorization; }
重启Nginx:sudo systemctl restart nginx。
此后前端所有请求改走 /api/coze/chat?bot_id=xxx,不再暴露Coze域名和Token——这是上线前必须做的安全收口,否则Token可能被爬虫提取。











