使用 Node.js 与 Taotoken 构建一个简单的聊天机器人后端
1. 准备工作
在开始构建聊天机器人后端之前,需要确保开发环境已经准备好。首先安装 Node.js 16 或更高版本,推荐使用 LTS 版本以获得最佳稳定性。创建一个新的项目目录并初始化 npm 包管理:
mkdir taotoken-chatbot && cd taotoken-chatbot npm init -y接下来安装必要的依赖包。我们将使用openai官方 SDK 来与 Taotoken API 交互,使用express作为 HTTP 服务器框架,dotenv用于管理环境变量:
npm install openai express dotenv2. 配置 Taotoken 访问凭证
在项目根目录创建.env文件来安全存储 Taotoken API Key。这个文件应该被添加到.gitignore中以避免敏感信息泄露:
TAOTOKEN_API_KEY=your_api_key_here TAOTOKEN_BASE_URL=https://taotoken.net/api PORT=3000请将your_api_key_here替换为你在 Taotoken 控制台获取的实际 API Key。Taotoken 采用 OpenAI 兼容的 API 设计,因此我们可以直接使用openai包进行对接。
3. 实现基础聊天服务
创建一个server.js文件作为应用入口点。首先设置基础 Express 服务器和 OpenAI 客户端:
require('dotenv').config(); const express = require('express'); const { OpenAI } = require('openai'); const app = express(); app.use(express.json()); const openai = new OpenAI({ apiKey: process.env.TAOTOKEN_API_KEY, baseURL: process.env.TAOTOKEN_BASE_URL, }); // 后续路由将在这里添加4. 设计聊天 API 端点
添加一个 POST 端点/chat来处理聊天请求。这个端点将接收用户消息并返回模型响应:
const conversationHistory = {}; app.post('/chat', async (req, res) => { try { const { userId, message, model = 'claude-sonnet-4-6' } = req.body; if (!userId || !message) { return res.status(400).json({ error: 'userId and message are required' }); } // 初始化或获取当前用户的对话历史 if (!conversationHistory[userId]) { conversationHistory[userId] = [ { role: 'system', content: 'You are a helpful assistant.' } ]; } // 添加用户新消息到历史 conversationHistory[userId].push({ role: 'user', content: message }); // 调用 Taotoken API const completion = await openai.chat.completions.create({ model, messages: conversationHistory[userId], }); const assistantReply = completion.choices[0]?.message?.content; // 添加助手回复到历史 conversationHistory[userId].push({ role: 'assistant', content: assistantReply }); res.json({ reply: assistantReply }); } catch (error) { console.error('Chat error:', error); res.status(500).json({ error: error.message }); } });5. 添加模型列表端点
为了方便前端动态获取可用模型,添加一个 GET 端点/models。实际项目中可以从数据库或配置文件中获取模型列表:
app.get('/models', (req, res) => { const availableModels = [ 'claude-sonnet-4-6', 'gpt-3.5-turbo', 'llama-2-7b-chat', // 添加更多从 Taotoken 模型广场获取的模型 ID ]; res.json({ models: availableModels }); });6. 启动服务器并测试
完成上述代码后,添加服务器启动逻辑:
const PORT = process.env.PORT || 3000; app.listen(PORT, () => { console.log(`Server running on http://localhost:${PORT}`); });使用以下命令启动服务器:
node server.js可以使用 curl 或 Postman 测试 API:
curl -X POST http://localhost:3000/chat \ -H "Content-Type: application/json" \ -d '{"userId": "test123", "message": "你好,请介绍一下你自己"}'7. 进阶优化建议
对于生产环境部署,可以考虑以下改进:
- 使用 Redis 或数据库持久化对话历史,替代内存存储
- 添加 API 认证中间件
- 实现速率限制防止滥用
- 添加健康检查端点
- 使用 Winston 等日志库替代 console.log
这个基础实现展示了如何使用 Node.js 和 Taotoken 快速构建一个支持多轮对话的聊天机器人后端。通过 Taotoken 的 OpenAI 兼容 API,开发者可以轻松接入多种大语言模型而无需修改核心业务逻辑。
Taotoken