资讯动态

通过 Node.js 后端服务接入 Taotoken 实现多轮对话机器人

发布时间:2026/10/26 2:48:31 来源:尧图企业网站定制
通过 Node.js 后端服务接入 Taotoken 实现多轮对话机器人1. 准备工作在开始构建 Node.js 后端服务之前需要确保已完成以下准备工作。首先访问 Taotoken 控制台创建 API Key该密钥将用于后续的身份验证。在模型广场中选择适合的模型 ID例如claude-sonnet-4-6或其他符合需求的模型。安装必要的依赖包包括openai和dotenv。openai包提供了与 OpenAI 兼容 API 交互的便捷方式而dotenv用于管理环境变量。可以通过以下命令安装这两个包npm install openai dotenv2. 配置环境变量与初始化客户端在项目根目录下创建.env文件用于存储敏感的 API Key。将以下内容添加到.env文件中TAOTOKEN_API_KEYyour_api_key_here接下来在 Node.js 应用中初始化 OpenAI 客户端。创建一个名为openaiClient.js的文件包含以下代码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, }); export default client;这段代码会从环境变量中读取 API Key并配置正确的 baseURL 指向 Taotoken 服务。注意 baseURL 设置为https://taotoken.net/api这是 Taotoken 提供的 OpenAI 兼容接口地址。3. 实现多轮对话逻辑多轮对话需要维护上下文信息即之前的对话历史。创建一个名为chatService.js的文件来实现这一功能import client from ./openaiClient.js; class ChatService { constructor() { this.conversationHistory []; } async sendMessage(userMessage) { this.conversationHistory.push({ role: user, content: userMessage, }); const completion await client.chat.completions.create({ model: claude-sonnet-4-6, messages: this.conversationHistory, }); const assistantReply completion.choices[0]?.message?.content; if (assistantReply) { this.conversationHistory.push({ role: assistant, content: assistantReply, }); } return assistantReply || 未能获取回复; } clearHistory() { this.conversationHistory []; } } export default ChatService;这个类维护了一个conversationHistory数组存储了用户和助手的对话记录。每次用户发送新消息时会将消息添加到历史记录中然后将整个对话历史发送给 Taotoken API 获取回复。4. 创建 Express 服务端为了提供 HTTP 接口我们可以使用 Express 框架创建一个简单的服务端。创建server.js文件import express from express; import ChatService from ./chatService.js; const app express(); const port 3000; const chatService new ChatService(); app.use(express.json()); app.post(/chat, async (req, res) { try { const { message } req.body; if (!message) { return res.status(400).json({ error: Message is required }); } const reply await chatService.sendMessage(message); res.json({ reply }); } catch (error) { console.error(Error:, error); res.status(500).json({ error: Internal server error }); } }); app.post(/reset, (req, res) { chatService.clearHistory(); res.json({ status: Conversation history cleared }); }); app.listen(port, () { console.log(Server running on port ${port}); });这个服务提供了两个端点/chat用于发送新消息并获取回复/reset用于清空对话历史。启动服务后可以通过 POST 请求与对话机器人交互。5. 测试与部署可以使用 curl 或 Postman 测试服务是否正常工作。以下是使用 curl 测试的示例# 发送第一条消息 curl -X POST http://localhost:3000/chat \ -H Content-Type: application/json \ -d {message:你好介绍一下你自己} # 发送后续消息保持上下文 curl -X POST http://localhost:3000/chat \ -H Content-Type: application/json \ -d {message:你刚才说的内容能再详细点吗} # 重置对话历史 curl -X POST http://localhost:3000/reset部署时建议将 API Key 等敏感信息通过环境变量注入而不是硬编码在代码中。可以使用 PM2 或 Docker 等工具管理 Node.js 进程。6. 进阶优化建议在实际应用中可能需要考虑以下优化点添加对话历史长度限制避免 token 数量超过模型限制实现对话历史持久化使用数据库存储长期对话记录添加用户认证区分不同用户的对话历史实现流式响应提升用户体验添加速率限制防止滥用这些功能可以根据实际需求逐步实现。Taotoken 提供了稳定的 API 服务开发者可以专注于业务逻辑的实现。了解更多关于 Taotoken 的信息请访问 Taotoken。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑