通过Node.js快速构建一个接入Taotoken多模型的后端服务
通过Node.js快速构建一个接入Taotoken多模型的后端服务
1. 环境准备与依赖安装
开始前请确保已安装Node.js 18或更高版本。新建项目目录并初始化npm包管理:
mkdir taotoken-node-demo && cd taotoken-node-demo npm init -y安装必要的依赖包,包括官方OpenAI JavaScript SDK和Express框架:
npm install openai express dotenv cors其中dotenv用于加载环境变量,cors用于处理跨域请求。在项目根目录创建.env文件存放敏感配置:
TAOTOKEN_API_KEY=your_api_key_here PORT=30002. 初始化OpenAI客户端
创建src/client.js文件配置基础客户端。关键点在于正确设置baseURL指向Taotoken聚合端点:
import OpenAI from 'openai'; import { config } from 'dotenv'; config(); const client = new OpenAI({ apiKey: process.env.TAOTOKEN_API_KEY, baseURL: 'https://taotoken.net/api', }); export default client;注意baseURL使用https://taotoken.net/api而非带/v1的路径,这是OpenAI SDK的路径拼接约定。模型ID将从请求参数动态传入。
3. 实现聊天接口路由
创建src/app.js构建Express应用。核心是处理POST请求的聊天接口:
import express from 'express'; import cors from 'cors'; import client from './client.js'; const app = express(); app.use(cors()); app.use(express.json()); app.post('/api/chat', async (req, res) => { try { const { messages, model } = req.body; const completion = await client.chat.completions.create({ model, messages, temperature: 0.7, }); res.json({ reply: completion.choices[0]?.message?.content }); } catch (error) { console.error('API Error:', error); res.status(500).json({ error: error.message }); } }); const PORT = process.env.PORT || 3000; app.listen(PORT, () => { console.log(`Server running on port ${PORT}`); });4. 前端模型选择实现
在public/index.html中实现简单的模型选择UI。关键是通过下拉菜单传递模型ID:
<select id="modelSelect"> <option value="claude-sonnet-4-6">Claude Sonnet</option> <option value="gpt-4-turbo">GPT-4 Turbo</option> <option value="llama-3-70b">Llama 3 70B</option> </select> <script> async function sendMessage() { const model = document.getElementById('modelSelect').value; const response = await fetch('/api/chat', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ model, messages: [{ role: 'user', content: userInput.value }] }) }); // 处理响应... } </script>模型ID需要与Taotoken模型广场中显示的完全一致。实际项目中建议从后端获取可用模型列表。
5. 运行与测试
在package.json中添加启动脚本:
{ "scripts": { "start": "node src/app.js", "dev": "nodemon src/app.js" } }启动服务后可通过Postman或前端界面测试:
npm run dev测试请求示例:
curl -X POST http://localhost:3000/api/chat \ -H "Content-Type: application/json" \ -d '{"model":"claude-sonnet-4-6","messages":[{"role":"user","content":"你好"}]}'完整示例代码可参考Taotoken官方Node.js示例库。通过这个基础框架,开发者可以快速扩展出支持多模型切换的后端服务。
