使用Nodejs和Taotoken构建一个智能客服问答后端服务 告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度使用Node.js和Taotoken构建一个智能客服问答后端服务基础教程类面向全栈或后端开发者讲解如何利用Node.js环境下的openai包结合Taotoken提供的API Key与聚合baseURL构建一个简单的HTTP服务器接收用户问题并将其转发至大模型获取智能回复最后返回给前端展示完整的服务端接入流程。1. 项目准备与环境搭建在开始编写代码之前我们需要准备好开发环境。确保你的系统已经安装了Node.js建议版本18或更高和npm。我们将创建一个新的项目目录并初始化项目安装必要的依赖。首先打开终端创建一个新的项目文件夹并进入。mkdir taotoken-chatbot-backend cd taotoken-chatbot-backend接下来初始化一个新的Node.js项目。你可以一路按回车使用默认配置或者根据需要进行修改。npm init -y然后安装本项目所需的核心依赖包。我们将使用express来构建HTTP服务器使用openai这个官方SDK来调用大模型API同时安装dotenv来管理环境变量。npm install express openai dotenv至此基本的项目环境就搭建完成了。接下来我们需要获取访问大模型服务的凭证。2. 获取并配置Taotoken API密钥要使用Taotoken的服务你需要一个API Key。请访问Taotoken平台注册并登录后在控制台的API密钥管理页面创建一个新的密钥。创建成功后请妥善保管这串字符。为了安全地使用这个密钥我们不会将它硬编码在代码中。在项目根目录下创建一个名为.env的文件用于存储环境变量。touch .env打开.env文件添加以下内容。请将YOUR_TAOTOKEN_API_KEY替换为你刚刚在控制台获取的真实API Key。TAOTOKEN_API_KEYYOUR_TAOTOKEN_API_KEY PORT3000这里我们还定义了一个PORT变量用于指定我们的HTTP服务器监听的端口号。.env文件通常包含敏感信息请确保它被添加到.gitignore文件中避免被意外提交到代码仓库。3. 构建核心的问答服务模块我们将创建一个独立的模块来处理与大模型的交互逻辑。在项目根目录下创建一个名为chatService.js的文件。这个模块的核心是初始化OpenAI客户端并配置其指向Taotoken的聚合端点。OpenAI SDK的baseURL参数需要设置为https://taotoken.net/api。模型ID可以在Taotoken平台的模型广场查看并选择例如claude-sonnet-4-6或gpt-4o-mini等。打开chatService.js写入以下代码const OpenAI require(openai); require(dotenv).config(); // 初始化OpenAI客户端配置Taotoken的Base URL const client new OpenAI({ apiKey: process.env.TAOTOKEN_API_KEY, baseURL: https://taotoken.net/api, // 关键配置使用Taotoken的聚合端点 }); /** * 向大模型发送消息并获取回复 * param {string} userMessage - 用户输入的问题 * param {string} model - 要使用的大模型ID默认为 claude-sonnet-4-6 * returns {Promisestring} - 模型返回的回复内容 */ async function getChatResponse(userMessage, model claude-sonnet-4-6) { try { const completion await client.chat.completions.create({ model: model, messages: [ { role: system, content: 你是一个专业、友好的智能客服助手。请用清晰、简洁的语言回答用户的问题。 }, { role: user, content: userMessage }, ], temperature: 0.7, // 控制回复的随机性值越高越有创意 max_tokens: 500, // 控制回复的最大长度 }); // 返回模型生成的内容 return completion.choices[0]?.message?.content || 抱歉我没有收到回复。; } catch (error) { console.error(调用AI服务失败:, error); // 返回一个友好的错误提示避免将内部错误暴露给前端 return 服务暂时不可用请稍后再试。; } } module.exports { getChatResponse };这段代码做了几件关键的事情首先它从环境变量中读取API密钥并创建了一个配置了TaotokenbaseURL的OpenAI客户端实例。其次它定义了一个异步函数getChatResponse该函数接收用户消息和可选的模型ID构造一个包含系统指令和用户消息的请求体发送给API并返回模型的文本回复。我们还添加了基本的错误处理确保服务在API调用异常时仍能向客户端返回一个友好的信息。4. 创建Express HTTP服务器现在我们来构建Web服务器部分。在项目根目录下创建主文件index.js。这个服务器需要完成以下任务提供静态文件服务用于托管一个简单的前端页面、提供一个接收用户问题的API端点、调用我们刚刚编写的聊天服务、并将结果返回给前端。打开index.js写入以下代码const express require(express); const path require(path); const { getChatResponse } require(./chatService); require(dotenv).config(); const app express(); const PORT process.env.PORT || 3000; // 中间件解析JSON格式的请求体 app.use(express.json()); // 中间件提供静态文件服务将public目录下的文件如HTML暴露出去 app.use(express.static(path.join(__dirname, public))); // 定义处理用户问答的API端点 app.post(/api/chat, async (req, res) { const { message, model } req.body; // 验证用户输入 if (!message || typeof message ! string) { return res.status(400).json({ error: 请输入有效的问题内容。 }); } try { console.log(收到问题: ${message}, 使用模型: ${model || 默认}); // 调用聊天服务获取AI回复 const aiResponse await getChatResponse(message, model); // 返回成功响应 res.json({ success: true, question: message, answer: aiResponse, model: model || claude-sonnet-4-6 }); } catch (error) { console.error(处理请求时出错:, error); res.status(500).json({ error: 服务器内部错误处理请求失败。 }); } }); // 启动服务器 app.listen(PORT, () { console.log(智能客服后端服务已启动监听端口: ${PORT}); console.log(前端页面访问地址: http://localhost:${PORT}); });服务器定义了一个POST /api/chat的接口。它接收一个包含message用户问题和可选model参数的JSON请求体经过简单校验后调用chatService.js中的函数获取AI回复最后将结果包装成JSON格式返回给客户端。5. 创建简单的前端演示页面为了让整个流程完整可见我们创建一个极简的前端页面来测试后端服务。在项目根目录下创建一个public文件夹并在其中创建一个index.html文件。mkdir public touch public/index.html打开public/index.html写入以下HTML和JavaScript代码!DOCTYPE html html langzh-CN head meta charsetUTF-8 meta nameviewport contentwidthdevice-width, initial-scale1.0 titleTaotoken智能客服演示/title style body { font-family: sans-serif; max-width: 800px; margin: 40px auto; padding: 20px; } #chatBox { border: 1px solid #ccc; height: 300px; overflow-y: scroll; padding: 10px; margin-bottom: 10px; } .user { text-align: right; color: blue; margin: 5px 0; } .bot { text-align: left; color: green; margin: 5px 0; } #inputArea { display: flex; gap: 10px; } #question { flex-grow: 1; padding: 10px; } button { padding: 10px 20px; } /style /head body h1智能客服问答演示/h1 p这是一个连接到Taotoken聚合大模型服务的简易客服界面。/p div idchatBox/div div idinputArea input typetext idquestion placeholder请输入您的问题... / button onclicksendQuestion()发送/button /div psmall模型select idmodelSelect option valueclaude-sonnet-4-6Claude 3.5 Sonnet/option option valuegpt-4o-miniGPT-4o Mini/option /select/small/p script const chatBox document.getElementById(chatBox); const questionInput document.getElementById(question); const modelSelect document.getElementById(modelSelect); function addMessage(sender, text) { const msgDiv document.createElement(div); msgDiv.className sender; msgDiv.innerHTML strong${sender}:/strong ${text}; chatBox.appendChild(msgDiv); chatBox.scrollTop chatBox.scrollHeight; // 滚动到底部 } async function sendQuestion() { const message questionInput.value.trim(); const model modelSelect.value; if (!message) return; addMessage(user, message); questionInput.value ; // 清空输入框 questionInput.disabled true; try { const response await fetch(/api/chat, { method: POST, headers: { Content-Type: application/json }, body: JSON.stringify({ message, model }) }); const data await response.json(); if (data.success) { addMessage(bot, data.answer); } else { addMessage(bot, 错误: ${data.error}); } } catch (error) { addMessage(bot, 网络请求失败请检查后端服务。); console.error(error); } finally { questionInput.disabled false; questionInput.focus(); } } // 支持按回车键发送 questionInput.addEventListener(keypress, (e) { if (e.key Enter) sendQuestion(); }); /script /body /html这个页面提供了一个简单的聊天界面包含一个显示对话历史的区域、一个输入框、一个发送按钮和一个模型选择下拉框。当用户输入问题并点击发送后JavaScript代码会调用我们刚刚创建的/api/chat接口并将返回的AI回复展示在页面上。6. 运行与测试服务所有代码都已就绪现在可以启动服务并进行测试了。首先请再次确认你的.env文件中的TAOTOKEN_API_KEY已正确填写。在终端中运行以下命令启动服务器node index.js如果一切正常你将看到控制台输出“智能客服后端服务已启动监听端口: 3000”以及前端页面的访问地址。打开你的浏览器访问http://localhost:3000。在页面中输入一个问题例如“介绍一下Taotoken平台”然后点击发送。稍等片刻你就能看到来自大模型的智能回复显示在页面上。你可以通过下拉框切换不同的模型来体验。通过这个教程我们完成了一个从环境搭建、密钥配置、服务端逻辑编写到前端交互演示的完整流程。你可以以此为基础根据实际业务需求扩展更多的功能例如添加对话历史管理、支持流式响应、集成用户认证或连接数据库等。你可以访问 Taotoken 平台获取API Key并探索更多可用的模型以丰富你的智能客服应用。 告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度