使用Nodejs和Taotoken构建一个简单的AI对话服务端
使用Nodejs和Taotoken构建一个简单的AI对话服务端
1. 环境准备与密钥配置
在开始构建AI对话服务端之前,需要确保已安装Node.js 18或更高版本。首先创建一个新的项目目录并初始化npm:
mkdir taotoken-chat-server cd taotoken-chat-server npm init -y安装必要的依赖包,包括openai用于与Taotoken API交互,以及dotenv用于管理环境变量:
npm install openai dotenv在项目根目录创建.env文件,用于安全存储API密钥。从Taotoken控制台获取的API Key应写入该文件:
TAOTOKEN_API_KEY=your_api_key_here2. 配置OpenAI客户端
创建一个名为chatService.js的文件,配置OpenAI客户端连接Taotoken平台。关键点在于正确设置baseURL参数:
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', });注意baseURL必须设置为https://taotoken.net/api,这是Taotoken平台提供的OpenAI兼容端点。错误配置会导致API调用失败。
3. 实现对话处理函数
下面实现一个完整的异步函数,用于处理用户消息并返回模型生成的回复。函数包含错误处理逻辑:
export async function generateChatResponse(messages, model = 'claude-sonnet-4-6') { try { const completion = await client.chat.completions.create({ model, messages, temperature: 0.7, max_tokens: 500, }); return { success: true, content: completion.choices[0]?.message?.content || '', }; } catch (error) { console.error('API调用失败:', error); return { success: false, error: error.message, }; } }该函数接收消息历史数组和可选模型参数,返回包含生成内容或错误信息的对象。messages数组应符合OpenAI消息格式,例如:
[ { role: 'system', content: '你是一个有帮助的助手' }, { role: 'user', content: '你好,介绍一下你自己' } ]4. 创建简易HTTP服务
使用Express框架快速搭建一个接收POST请求的HTTP服务端。创建server.js文件:
import express from 'express'; import { generateChatResponse } from './chatService.js'; const app = express(); app.use(express.json()); app.post('/chat', async (req, res) => { const { messages, model } = req.body; if (!messages || !Array.isArray(messages)) { return res.status(400).json({ error: 'Invalid messages format' }); } const result = await generateChatResponse(messages, model); res.json(result); }); const PORT = process.env.PORT || 3000; app.listen(PORT, () => { console.log(`Server running on port ${PORT}`); });安装Express依赖:
npm install express5. 测试与运行
启动服务并测试API端点。可以使用curl命令进行测试:
curl -X POST http://localhost:3000/chat \ -H "Content-Type: application/json" \ -d '{"messages":[{"role":"user","content":"你好"}],"model":"claude-sonnet-4-6"}'服务应返回类似以下的响应:
{ "success": true, "content": "你好!我是一个AI助手..." }如需在生产环境部署,建议添加以下增强功能:
- 请求速率限制
- 输入验证中间件
- 更完善的错误处理
- 日志记录系统
Taotoken平台提供了多种模型选择,开发者可根据需求在控制台查看可用模型列表并测试不同模型的响应效果。
