使用Nodejs和Taotoken构建一个简单的AI对话代理服务1. 项目初始化与环境配置首先创建一个新的Node.js项目并安装必要的依赖。在项目目录下执行以下命令npm init -y npm install openai express dotenv创建.env文件用于存储敏感信息避免将API密钥硬编码在代码中。文件内容如下TAOTOKEN_API_KEYyour_api_key_here PORT3000在Taotoken控制台获取API Key后替换your_api_key_here。建议将.env添加到.gitignore中以防止密钥意外提交。2. 基础服务搭建创建一个server.js文件作为应用入口设置Express服务器和OpenAI客户端import express from express; import { OpenAI } from openai; import dotenv from dotenv; dotenv.config(); const app express(); app.use(express.json()); const client new OpenAI({ apiKey: process.env.TAOTOKEN_API_KEY, baseURL: https://taotoken.net/api, }); app.post(/chat, async (req, res) { try { const { message } req.body; if (!message) { return res.status(400).json({ error: Message is required }); } const completion await client.chat.completions.create({ model: claude-sonnet-4-6, messages: [{ role: user, content: message }], }); res.json({ reply: completion.choices[0]?.message?.content }); } catch (error) { console.error(API Error:, error); res.status(500).json({ error: Failed to get AI response }); } }); const PORT process.env.PORT || 3000; app.listen(PORT, () { console.log(Server running on port ${PORT}); });3. 请求处理与错误管理上述代码已经包含了基本的错误处理但我们可以进一步完善app.post(/chat, async (req, res) { try { const { message, model } req.body; if (!message) { return res.status(400).json({ error: Message is required }); } const validModels [claude-sonnet-4-6, gpt-3.5-turbo]; const selectedModel validModels.includes(model) ? model : claude-sonnet-4-6; const completion await client.chat.completions.create({ model: selectedModel, messages: [{ role: user, content: message }], max_tokens: 500, }); if (!completion.choices?.[0]?.message?.content) { throw new Error(Empty response from AI); } res.json({ reply: completion.choices[0].message.content, usage: completion.usage }); } catch (error) { console.error(Error:, error.message); let status 500; let message Internal server error; if (error instanceof OpenAI.APIError) { status error.status || 500; message error.message; } res.status(status).json({ error: message }); } });4. 服务测试与部署可以使用curl或Postman测试服务curl -X POST http://localhost:3000/chat \ -H Content-Type: application/json \ -d {message:Explain quantum computing in simple terms}对于生产环境部署建议使用PM2等进程管理器保持服务运行添加HTTPS支持实现请求限流防止滥用添加更详细的日志记录5. 进阶扩展方向这个基础服务可以进一步扩展添加对话历史管理实现多轮对话集成用户认证系统添加响应缓存减少API调用实现流式传输(streaming)提升用户体验添加管理接口查看使用统计Taotoken提供了多种模型选择和使用统计功能可以帮助开发者更好地管理和优化AI服务。