告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度使用Node.js和TaoToken API快速搭建一个智能客服原型系统对于前端或全栈开发者而言利用Node.js环境快速构建一个具备对话能力的智能客服原型是验证想法和启动项目的有效方式。通过TaoToken平台提供的OpenAI兼容API你可以用熟悉的开发工具和流程快速接入多种大语言模型而无需分别处理各家厂商的认证和计费。本文将引导你使用Node.js和openai包一步步搭建一个支持多轮对话的智能客服聊天接口。1. 环境准备与项目初始化开始之前你需要确保本地已安装Node.js建议版本16或更高。首先创建一个新的项目目录并初始化。mkdir smart-customer-service cd smart-customer-service npm init -y接下来安装项目所需的依赖。核心是openai官方Node.js SDK它将用于调用TaoToken的API。我们也会安装express来构建一个简单的Web服务器以及dotenv来管理环境变量。npm install openai express dotenv2. 获取并配置TaoToken API密钥要调用TaoToken的API你需要一个有效的API Key。请访问Taotoken平台注册并登录后在控制台的API密钥管理页面创建一个新的密钥。这个密钥将用于所有API请求的身份验证。在项目根目录下创建一个名为.env的文件用于安全地存储你的密钥和其他配置。将你刚刚获取的API Key填入其中。# .env 文件 TAOTOKEN_API_KEY你的_API_Key_在这里 PORT3000请务必将.env文件添加到你的.gitignore中避免将密钥意外提交到代码仓库。3. 构建核心API调用模块我们将创建一个独立的模块来处理与大模型的对话逻辑。在项目根目录下创建chatService.js文件。这个模块的核心是正确配置OpenAI客户端将其baseURL指向TaoToken的OpenAI兼容端点。请注意对于使用openaiSDK的场景baseURL应设置为https://taotoken.net/apiSDK会自动为你拼接后续的路径如/v1/chat/completions。// chatService.js import OpenAI from openai; import dotenv from dotenv; dotenv.config(); // 初始化客户端关键是指定Taotoken的端点 const client new OpenAI({ apiKey: process.env.TAOTOKEN_API_KEY, baseURL: https://taotoken.net/api, // 使用Taotoken的OpenAI兼容端点 }); // 存储对话历史用于实现多轮对话上下文 const conversationHistory new Map(); /** * 发送消息给AI助手并获取回复 * param {string} sessionId - 会话ID用于区分不同用户或对话 * param {string} userMessage - 用户输入的消息 * param {string} model - 要使用的模型ID可在Taotoken模型广场查看 * returns {Promisestring} AI助手的回复 */ export async function getAIResponse(sessionId, userMessage, model gpt-3.5-turbo) { try { // 获取或初始化当前会话的历史记录 let messages conversationHistory.get(sessionId) || []; // 将用户的新消息加入历史 messages.push({ role: user, content: userMessage }); // 调用Taotoken API const completion await client.chat.completions.create({ model: model, // 指定模型例如gpt-4, claude-3-haiku等 messages: messages, // 传入完整的对话历史 temperature: 0.7, // 控制回复的随机性 max_tokens: 500, // 控制回复的最大长度 }); const aiReply completion.choices[0]?.message?.content; if (aiReply) { // 将AI的回复也加入历史记录 messages.push({ role: assistant, content: aiReply }); // 可选限制历史记录长度防止上下文过长 if (messages.length 20) { messages messages.slice(-10); // 只保留最近10轮对话 } conversationHistory.set(sessionId, messages); } return aiReply || 抱歉我没有收到回复。; } catch (error) { console.error(调用AI API时发生错误:, error); // 更友好的错误信息处理 if (error.status 401) { return 认证失败请检查API密钥是否正确。; } else if (error.status 429) { return 请求过于频繁请稍后再试。; } else { return 服务暂时不可用请稍后重试。错误码: ${error.status || 未知}; } } } /** * 清除指定会话的历史记录 * param {string} sessionId */ export function clearHistory(sessionId) { conversationHistory.delete(sessionId); }4. 创建Express服务器提供聊天接口现在我们创建一个简单的HTTP服务器对外提供聊天接口。创建server.js文件。// server.js import express from express; import dotenv from dotenv; import { getAIResponse, clearHistory } from ./chatService.js; dotenv.config(); const app express(); const PORT process.env.PORT || 3000; // 中间件解析JSON请求体 app.use(express.json()); // 健康检查端点 app.get(/, (req, res) { res.json({ status: ok, message: 智能客服API服务运行中 }); }); // 核心聊天API端点 app.post(/api/chat, async (req, res) { const { sessionId default-session, message, model } req.body; if (!message || typeof message ! string) { return res.status(400).json({ error: 请求中必须包含有效的 message 字段 }); } try { const reply await getAIResponse(sessionId, message, model); res.json({ reply, sessionId }); } catch (error) { console.error(服务器处理错误:, error); res.status(500).json({ error: 内部服务器错误 }); } }); // 可选清除某会话历史的端点 app.post(/api/chat/clear, (req, res) { const { sessionId } req.body; if (sessionId) { clearHistory(sessionId); res.json({ message: 会话 ${sessionId} 的历史记录已清除 }); } else { res.status(400).json({ error: 请求中必须包含 sessionId 字段 }); } }); // 启动服务器 app.listen(PORT, () { console.log(智能客服服务器运行在 http://localhost:${PORT}); console.log(尝试发送 POST 请求到 http://localhost:${PORT}/api/chat); });5. 运行与测试在package.json中添加启动脚本以便快速运行。// package.json 中添加 type: module, scripts: { start: node server.js, dev: node --watch server.js }现在你可以启动服务器了。npm run dev服务器启动后你可以使用curl、Postman或任何HTTP客户端进行测试。以下是一个curl测试示例curl -X POST http://localhost:3000/api/chat \ -H Content-Type: application/json \ -d { sessionId: user-123, message: 你好请问你们支持哪些支付方式, model: gpt-3.5-turbo }如果一切配置正确你将收到一个包含AI回复的JSON响应。通过改变sessionId你可以为不同用户维持独立的对话上下文通过改变model字段你可以切换使用Taotoken模型广场上的其他模型无需修改代码。6. 关键注意事项与后续步骤在开发过程中有几个关键点需要注意。首先是API密钥的安全务必通过环境变量管理切勿写入代码或提交至版本控制系统。其次是模型的选择你可以在Taotoken平台的模型广场查看所有可用模型及其对应的ID根据客服场景对成本、速度和质量的要求进行选择。对于错误处理示例中提供了基本的网络和认证错误反馈。在生产环境中你可能需要更完善的日志记录和监控并考虑对API调用失败设置重试机制。此外前的对话历史存储在内存中服务器重启会丢失。对于生产环境你需要将其持久化到数据库如Redis、MongoDB中。这个原型系统为你提供了一个起点。在此基础上你可以轻松地为其添加前端界面集成知识库检索RAG或连接业务数据库来查询订单、物流等真实信息从而构建一个功能完整的智能客服系统。所有与大模型的交互都通过统一配置的TaoToken端点完成简化了开发和运维的复杂度。你可以访问 Taotoken 获取API Key并探索更多可用的模型开始你的智能应用开发。 告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度