通过Node.js异步调用Taotoken API构建实时聊天应用后端
1. 环境准备与密钥配置
在开始构建实时聊天应用后端前,需要确保开发环境已安装Node.js 16或更高版本。建议使用npm或yarn作为包管理工具。首先创建一个新项目目录并初始化:
mkdir taotoken-chat-backend cd taotoken-chat-backend npm init -y接下来安装必要的依赖包。我们将使用openai官方SDK与Taotoken API交互,同时使用dotenv管理环境变量:
npm install openai dotenv登录Taotoken控制台,在「API密钥」页面创建新的密钥。切勿将密钥直接写入代码,而是存储在项目根目录的.env文件中:
TAOTOKEN_API_KEY=your_api_key_here2. 初始化OpenAI客户端
创建src/client.js文件,配置OpenAI客户端指向Taotoken端点。注意baseURL必须设置为https://taotoken.net/api:
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;关键配置说明:
baseURL使用Taotoken提供的统一入口地址- API密钥通过环境变量注入,避免硬编码
- 客户端实例可被其他模块复用
3. 实现聊天补全接口
创建src/services/chatService.js实现核心对话逻辑。以下示例展示如何处理异步聊天请求:
import client from '../client.js'; async function createChatCompletion(messages, model = 'claude-sonnet-4-6') { try { const completion = await client.chat.completions.create({ model, messages, temperature: 0.7, }); return completion.choices[0]?.message?.content || ''; } catch (error) { console.error('API调用失败:', error); throw new Error('AI服务暂不可用'); } } export { createChatCompletion };主要功能点:
- 支持自定义消息历史记录
- 默认使用Claude Sonnet模型,可通过参数覆盖
- 包含基本的错误处理逻辑
- 返回AI生成的最新消息内容
4. 集成到Web服务器
以Express为例,创建src/server.js构建HTTP接口:
import express from 'express'; import { createChatCompletion } from './services/chatService.js'; const app = express(); app.use(express.json()); app.post('/api/chat', async (req, res) => { const { messages } = req.body; if (!messages || !Array.isArray(messages)) { return res.status(400).json({ error: '无效的消息格式' }); } try { const response = await createChatCompletion(messages); res.json({ reply: response }); } catch (error) { res.status(503).json({ error: error.message }); } }); const PORT = process.env.PORT || 3000; app.listen(PORT, () => { console.log(`服务运行在 http://localhost:${PORT}`); });5. 测试与部署建议
启动服务后,可以使用curl测试接口:
curl -X POST http://localhost:3000/api/chat \ -H "Content-Type: application/json" \ -d '{"messages":[{"role":"user","content":"你好"}]}'部署到生产环境时建议:
- 使用PM2或Docker管理进程
- 配置Nginx反向代理
- 在Taotoken控制台设置用量告警
- 考虑实现对话历史持久化存储
完整项目结构参考:
taotoken-chat-backend/ ├── src/ │ ├── client.js │ ├── services/ │ │ └── chatService.js │ └── server.js ├── .env └── package.jsonTaotoken提供了多种模型选择,开发者可在模型广场查看各模型特性并根据需求调整代码中的model参数。