使用 Node.js 快速构建一个接入 Taotoken 多模型的对话演示应用
1. 环境准备与项目初始化
开始前请确保已安装 Node.js 16 或更高版本。新建项目目录并初始化:
mkdir taotoken-demo && cd taotoken-demo npm init -y npm install openai express dotenv创建基础文件结构:
.env- 存储 API 密钥等敏感信息server.js- 主服务文件public/index.html- 前端界面
2. 配置 Taotoken 访问凭证
在 Taotoken 控制台创建 API Key 后,将以下内容写入.env文件:
TAOTOKEN_API_KEY=your_api_key_here TAOTOKEN_BASE_URL=https://taotoken.net/api安全提示:务必在.gitignore中添加.env防止密钥泄露。
3. 实现后端服务
在server.js中构建 Express 服务与 Taotoken 接口代理:
require('dotenv').config(); const express = require('express'); const { OpenAI } = require('openai'); const app = express(); app.use(express.json()); app.use(express.static('public')); const client = new OpenAI({ apiKey: process.env.TAOTOKEN_API_KEY, baseURL: process.env.TAOTOKEN_BASE_URL, }); app.post('/api/chat', async (req, res) => { try { const completion = await client.chat.completions.create({ model: req.body.model || 'claude-sonnet-4-6', // 默认模型 messages: req.body.messages, }); res.json(completion.choices[0].message); } catch (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中实现简易聊天界面:
<!DOCTYPE html> <html> <head> <title>Taotoken 多模型演示</title> <style> body { font-family: sans-serif; max-width: 800px; margin: 0 auto; } #chat { border: 1px solid #ddd; height: 400px; overflow-y: scroll; padding: 1rem; } select { padding: 0.5rem; margin-right: 1rem; } </style> </head> <body> <h1>Taotoken 多模型对话演示</h1> <div id="chat"></div> <div> <select id="model"> <option value="claude-sonnet-4-6">Claude Sonnet</option> <option value="gpt-3.5-turbo">GPT-3.5 Turbo</option> </select> <input id="input" type="text" placeholder="输入消息..." style="width: 60%; padding: 0.5rem;"> <button onclick="sendMessage()">发送</button> </div> <script> async function sendMessage() { const input = document.getElementById('input'); const model = document.getElementById('model').value; const chat = document.getElementById('chat'); chat.innerHTML += `<p><strong>你:</strong>${input.value}</p>`; const userMessage = input.value; input.value = ''; const response = await fetch('/api/chat', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ model: model, messages: [{ role: 'user', content: userMessage }] }) }); const data = await response.json(); chat.innerHTML += `<p><strong>AI:</strong>${data.content}</p>`; chat.scrollTop = chat.scrollHeight; } </script> </body> </html>5. 运行与测试
启动服务并访问http://localhost:3000:
node server.js测试要点:
- 检查控制台无报错
- 前端选择不同模型发送消息
- 观察响应内容与速度差异
- 在 Taotoken 控制台查看实时用量
6. 扩展建议
如需进一步开发可考虑:
- 添加对话历史持久化
- 实现流式响应改善用户体验
- 增加模型温度等参数控制
- 添加用户认证与多会话支持
完整项目代码可参考 Taotoken 示例仓库。