通过 Node.js 与 Taotoken 为你的应用添加 AI 对话流
1. 准备工作
在开始编码前,需要完成两项基础配置。首先登录 Taotoken 控制台,在「API 密钥」页面创建一个新密钥并妥善保存。建议将密钥存储在环境变量中而非硬编码到项目里,可通过.env文件管理:
# .env 示例 TAOTOKEN_API_KEY=your_api_key_here其次在模型广场查看可用模型 ID,例如claude-sonnet-4-6或gpt-4-turbo-preview。这些 ID 将作为请求参数使用,平台会实时更新可调用模型列表。
2. 初始化 Node.js 项目
新建项目目录并安装依赖:
mkdir ai-chatbot && cd ai-chatbot npm init -y npm install openai dotenv创建index.js作为主入口文件,加载环境变量并初始化 OpenAI 客户端:
// index.js import 'dotenv/config'; import OpenAI from 'openai'; const client = new OpenAI({ apiKey: process.env.TAOTOKEN_API_KEY, baseURL: 'https://taotoken.net/api', // 关键配置点 });注意baseURL必须设置为https://taotoken.net/api以正确指向 Taotoken 聚合端点。若错误添加/v1后缀会导致路由失败。
3. 实现对话函数
下面实现一个带错误处理的基本对话函数:
async function chatCompletion(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:', error.message); return '服务暂时不可用'; } }该函数接受消息数组和可选模型参数,返回 AI 生成的回复。消息数组需符合 OpenAI 格式,例如:
const messages = [ { role: 'system', content: '你是一个乐于助人的助手' }, { role: 'user', content: '推荐三本经典科幻小说' } ];4. 构建简单交互界面
结合readline模块实现控制台对话循环:
import readline from 'readline'; const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); async function chatLoop() { const history = []; while (true) { const userInput = await new Promise(resolve => rl.question('You: ', resolve) ); if (userInput.toLowerCase() === 'exit') break; history.push({ role: 'user', content: userInput }); const reply = await chatCompletion(history); console.log('AI:', reply); history.push({ role: 'assistant', content: reply }); } rl.close(); } chatLoop();运行node index.js即可开始对话,输入 "exit" 退出。历史消息会自动维护上下文实现多轮对话。
5. 进阶集成建议
对于生产环境,建议考虑以下优化方向:
- 添加速率限制避免意外超额调用
- 实现对话历史持久化存储
- 为不同功能场景切换不同模型
- 使用流式响应改善用户体验
Taotoken 的用量看板可以帮助监控各模型的 Token 消耗情况,便于进行成本优化。更多接入细节可参考 Taotoken 官方文档。