使用Node.js和Taotoken为大赛官网集成实时智能问答机器人为大赛官网添加一个能够实时解答访客关于赛制、规则等问题的智能问答机器人可以有效提升用户体验和服务效率。本文将介绍如何利用Node.js环境通过Taotoken平台提供的统一API快速构建一个稳定、可维护的智能问答后端接口。1. 准备工作获取API密钥与选择模型在开始编码之前你需要完成两项准备工作。首先访问Taotoken平台注册并登录后在控制台的“API密钥”页面创建一个新的密钥。请妥善保管此密钥它将用于后续的API身份验证。其次你需要为你的问答机器人选择一个合适的大语言模型。前往Taotoken的“模型广场”这里聚合了多家主流厂商的模型。你可以根据模型的能力描述、上下文长度和价格等因素进行选择。例如claude-sonnet-4-6、gpt-4o或deepseek-chat都是适用于问答场景的常见选择。记下你选定模型的ID后续代码中会用到。2. 项目初始化与环境变量配置我们创建一个新的Node.js项目。在终端中新建一个项目目录并初始化。mkdir tournament-qa-bot cd tournament-qa-bot npm init -y接下来安装必要的依赖。我们将使用官方openaiSDK因为它与Taotoken的OpenAI兼容API可以无缝对接。npm install openai为了安全地管理API密钥等敏感信息我们使用环境变量。在项目根目录下创建一个名为.env的文件并填入以下内容TAOTOKEN_API_KEY你的API密钥 TAOTOKEN_MODEL_ID你选择的模型ID例如claude-sonnet-4-6请务必将你的API密钥和你选择的模型ID替换为你在第一步获取的实际值。同时请确保将.env文件添加到.gitignore中避免将密钥提交到版本控制系统。3. 核心实现构建问答服务接口现在我们来编写核心的Node.js服务代码。创建一个名为server.js的文件。首先加载环境变量和openai库并初始化客户端。关键在于将baseURL正确设置为Taotoken的聚合端点。import OpenAI from openai; import dotenv from dotenv; // 加载环境变量 dotenv.config(); // 初始化 OpenAI 客户端指向 Taotoken 端点 const client new OpenAI({ apiKey: process.env.TAOTOKEN_API_KEY, baseURL: https://taotoken.net/api, // 注意此处 baseURL 不带 /v1 });接下来我们实现一个异步函数来处理问答请求。这个函数将接收用户的问题调用Taotoken API并返回模型的回答。/** * 调用大模型进行智能问答 * param {string} userQuestion - 用户提出的问题 * returns {Promisestring} - 模型的回答 */ async function getAIAnswer(userQuestion) { try { const completion await client.chat.completions.create({ model: process.env.TAOTOKEN_MODEL_ID, messages: [ { role: system, content: 你是一个大赛官网的智能助手专门解答关于比赛赛制、规则、时间安排、报名方式等问题的。回答要专业、清晰、友好。如果遇到不知道的信息请引导用户查看官网的具体公告或联系官方客服。 }, { role: user, content: userQuestion } ], temperature: 0.7, // 控制回答的创造性可根据需要调整 max_tokens: 1000, // 控制回答的最大长度 }); return completion.choices[0]?.message?.content || 抱歉暂时无法生成回答。; } catch (error) { console.error(调用AI接口失败:, error); return 服务暂时不可用请稍后再试。; } }为了使这个函数能够被官网前端调用我们需要创建一个简单的HTTP服务器。这里以Node.js原生http模块为例你也可以使用Express、Koa等框架。import http from http; import url from url; const server http.createServer(async (req, res) { // 设置CORS头部允许前端跨域访问 res.setHeader(Access-Control-Allow-Origin, *); res.setHeader(Access-Control-Allow-Methods, GET, POST, OPTIONS); res.setHeader(Access-Control-Allow-Headers, Content-Type); // 处理预检请求 if (req.method OPTIONS) { res.writeHead(204); res.end(); return; } // 只处理POST请求到 /api/ask 路径 if (req.method POST req.url /api/ask) { let body ; req.on(data, chunk body chunk.toString()); req.on(end, async () { try { const { question } JSON.parse(body); if (!question) { res.writeHead(400, { Content-Type: application/json }); res.end(JSON.stringify({ error: 缺少问题参数 })); return; } const answer await getAIAnswer(question); res.writeHead(200, { Content-Type: application/json }); res.end(JSON.stringify({ answer })); } catch (error) { res.writeHead(500, { Content-Type: application/json }); res.end(JSON.stringify({ error: 服务器内部错误 })); } }); } else { res.writeHead(404, { Content-Type: application/json }); res.end(JSON.stringify({ error: 接口不存在 })); } }); const PORT process.env.PORT || 3000; server.listen(PORT, () { console.log(智能问答服务已启动监听端口: ${PORT}); console.log(API端点: http://localhost:${PORT}/api/ask); });4. 运行、测试与前端集成完成代码编写后我们需要在package.json中添加启动脚本并修改模块类型以支持ESM导入。打开package.json添加”type”: “module”字段和启动脚本。{ name: tournament-qa-bot, version: 1.0.0, type: module, scripts: { start: node server.js }, dependencies: { dotenv: ^16.0.0, openai: ^4.0.0 } }现在可以启动服务了。node server.js # 或 npm start服务启动后你可以使用curl命令或Postman等工具进行测试。curl -X POST http://localhost:3000/api/ask \ -H Content-Type: application/json \ -d {question: 本次大赛的报名截止日期是什么时候}如果一切正常你将收到一个包含AI回答的JSON响应。最后你只需要将官网前端中聊天窗口的提交请求指向你部署的Node.js服务的/api/ask接口即可。前端示例代码如下使用fetch APIasync function askBot(question) { const response await fetch(http://你的服务器地址:3000/api/ask, { method: POST, headers: { Content-Type: application/json }, body: JSON.stringify({ question }) }); const data await response.json(); return data.answer; }通过以上步骤你就成功为大赛官网集成了一个基于Taotoken平台的实时智能问答机器人。这种方式将复杂的模型调用和路由逻辑交由Taotoken处理你只需关注业务实现并通过统一的接口和密钥管理多个模型极大地简化了开发和运维工作。所有具体的模型列表、价格和平台功能请以Taotoken控制台和官方文档为准。