通过 Node.js 后端服务接入 Taotoken 实现多轮对话聊天功能
1. 准备工作
在开始编码前,需要完成两项基础配置:获取 Taotoken API Key 和选择模型。登录 Taotoken 控制台,在「API 密钥」页面创建新密钥并妥善保存。模型 ID 可在「模型广场」查看,例如claude-sonnet-4-6或gpt-4-turbo等支持对话场景的模型。
建议将敏感信息存储在环境变量中。创建.env文件并添加以下内容:
TAOTOKEN_API_KEY=your_api_key_here TAOTOKEN_MODEL=claude-sonnet-4-62. 初始化 OpenAI 客户端
安装必要的依赖包,包括openai和dotenv:
npm install openai dotenv新建server.js文件,配置客户端实例。关键点在于正确设置baseURL为 Taotoken 的 OpenAI 兼容端点:
import OpenAI from "openai"; import dotenv from "dotenv"; dotenv.config(); const client = new OpenAI({ apiKey: process.env.TAOTOKEN_API_KEY, baseURL: "https://taotoken.net/api", });3. 实现聊天补全接口
下面实现一个支持多轮对话的 HTTP 接口。使用 Express 框架示例:
import express from "express"; const app = express(); app.use(express.json()); app.post("/chat", async (req, res) => { try { const { messages } = req.body; const completion = await client.chat.completions.create({ model: process.env.TAOTOKEN_MODEL, messages, }); res.json({ reply: completion.choices[0]?.message?.content }); } catch (error) { console.error(error); res.status(500).json({ error: "对话处理失败" }); } }); app.listen(3000, () => console.log("服务运行在 http://localhost:3000"));测试时可发送包含对话历史的 POST 请求:
curl -X POST http://localhost:3000/chat \ -H "Content-Type: application/json" \ -d '{"messages":[{"role":"user","content":"你好"}]}'4. 处理流式响应
对于需要实时输出的场景,可以启用流式响应。修改接口实现:
app.post("/chat-stream", async (req, res) => { try { const { messages } = req.body; res.setHeader("Content-Type", "text/event-stream"); res.setHeader("Cache-Control", "no-cache"); res.setHeader("Connection", "keep-alive"); const stream = await client.chat.completions.create({ model: process.env.TAOTOKEN_MODEL, messages, stream: true, }); for await (const chunk of stream) { const content = chunk.choices[0]?.delta?.content || ""; res.write(`data: ${JSON.stringify({ content })}\n\n`); } res.end(); } catch (error) { console.error(error); res.status(500).json({ error: "流式对话失败" }); } });前端可通过 EventSource 接收数据:
const eventSource = new EventSource("/chat-stream"); eventSource.onmessage = (event) => { const data = JSON.parse(event.data); console.log(data.content); };5. 生产环境注意事项
实际部署时需要考虑以下方面:
- 添加请求验证中间件防止滥用
- 实现对话历史持久化存储
- 设置合理的超时和重试机制
- 监控 Token 消耗和 API 响应状态
完整的示例代码可参考 Taotoken Node.js 示例库。