必须先获取天工ai的api key并完成账号注册与api密钥创建,再初始化node.js项目安装axios和eventsource-parser,接着封装同步调用、流式响应及错误重试的ai调用函数,最后在express中集成sse流式接口供前端eventsource消费。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在Node.js项目中接入天工AI实现自动回复功能,必须先获取天工AI官方提供的API Key,并确保后端服务能发起HTTPS请求、正确处理JSON响应体、设置合理超时与错误重试逻辑。
注册天工AI账号并获取API Key
访问 天工AI官网 → 点击右上角「登录」→ 使用手机号注册新账号 → 登录后进入「控制台」→ 左侧菜单选择「API管理」→ 点击「创建API Key」→ 填写应用名称(如:node-chatbot)→ 点击「确认创建」。
【创建后务必立即复制并安全保存API Key,页面关闭后无法再次查看】
这一步不能跳过,没有有效API Key后续所有请求都会返回401错误。
初始化Node.js项目并安装依赖
执行命令:npm init -y → 安装核心依赖:npm install axios → 若需处理流式响应,额外安装:npm install eventsource-parser。
axios用于发送HTTP请求,eventsource-parser用于解析天工AI返回的SSE流式数据。不装后者会导致流式回复无法逐字渲染。
编写调用天工AI大模型的封装函数
在项目根目录新建 ai.js 文件,填入以下代码:
方法一:同步调用单次回复(适合简单问答场景)
导入axios:const axios = require('axios'); → 定义基础配置:const TIANGONG_API_URL = 'https://api.tiangong.cn/v2/chat/completions'; → 设置请求头:const headers = { Authorization: `Bearer ${process.env.TIANGONG_API_KEY}`, 'Content-Type': 'application/json' };
方法二:流式响应支持(推荐用于对话界面)
引入eventsource-parser:const { createParser } = require('eventsource-parser'); → 构造POST请求体,【必须包含model字段,当前可用值为'tg-3.5-pro'或'tg-4.0',填错会返回400】 → 请求体示例:{ model: 'tg-4.0', messages: [{ role: 'user', content: '你好' }], stream: true }。
Miller (mlr) 是一个命令行工具,用于查询、整形和重新格式化名称索引数据,如 CSV、TSV、JSON 和 JSON Lines。它将 awk、sed、cut、join 和 sort 的功能整合到一个专为结构化数据处理而构建的单一工具中。
方法三:错误兜底处理
对axios请求包裹try-catch → 捕获429状态码时,应主动sleep 1秒再重试 → 遇到503或连接超时,直接reject并抛出'AI服务暂时不可用'。
在Express路由中集成自动回复逻辑
第一步:启动Express服务,监听3000端口
第二步:定义POST接口 /api/reply
第三步:从请求体解构出 userInput 字段
第四步:调用上一步封装的流式函数,将 userInput 作为用户消息传入 → 把AI返回的每一段文本通过 res.write() 推送 → 最后调用 res.end() 关闭连接。
注意:必须设置响应头 res.setHeader('Content-Type', 'text/event-stream'),否则前端无法接收SSE事件。
前端发起请求并接收流式回复
使用EventSource连接 /api/reply 接口 → 监听message事件 → 将每次收到的data字段追加到页面DOM中 → 遇到event: error时,显示“网络异常,请重试”提示。
这一步操作起来很简单,直接把EventSource实例挂载到按钮点击事件里就行。
若使用fetch + ReadableStream,需手动解析event: data:格式,容易漏掉换行符导致JSON解析失败。










