使用Nodejs与Taotoken构建一个轻量级AI助手后端服务
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度
使用Node.js与Taotoken构建一个轻量级AI助手后端服务
本文将指导你使用Node.js和Express框架,快速搭建一个能够调用大模型API的AI助手后端服务。我们将使用官方的openainpm包,通过配置Taotoken提供的OpenAI兼容API端点,实现一个可处理用户消息并返回AI响应的简单HTTP服务。整个过程侧重于可运行的代码和清晰的配置步骤。
1. 项目初始化与环境准备
首先,确保你的开发环境已安装Node.js(建议版本18或更高)。创建一个新的项目目录,并通过终端进入该目录,初始化一个新的Node.js项目。
mkdir ai-assistant-backend cd ai-assistant-backend npm init -y接下来,安装项目所需的依赖。核心依赖是openai库,用于调用大模型API;express用于创建Web服务器;dotenv用于管理环境变量;cors用于处理跨域请求(在开发阶段与前端联调时常用)。
npm install openai express dotenv cors安装完成后,你的package.json文件中的dependencies部分应包含这些包。
2. 获取并配置Taotoken API密钥
要使用Taotoken的服务,你需要一个有效的API Key。请访问Taotoken平台,注册并登录后,在控制台的API密钥管理页面创建一个新的密钥。同时,你可以在模型广场查看所有可用的模型及其对应的ID,例如claude-sonnet-4-6、gpt-4o等。
在项目根目录下创建一个名为.env的文件,用于安全地存储你的API密钥和配置。文件内容如下:
TAOTOKEN_API_KEY=你的_API_Key_粘贴在这里 TAOTOKEN_BASE_URL=https://taotoken.net/api PORT=3000请务必将你的_API_Key_粘贴在这里替换为你从Taotoken控制台获取的真实API Key。.env文件应被添加到.gitignore中,避免将密钥提交到版本控制系统。
3. 构建核心服务端代码
现在,我们创建服务的主文件。在项目根目录下创建app.js(或index.js)。
首先,引入必要的模块并加载环境变量。
// app.js import express from 'express'; import OpenAI from 'openai'; import cors from 'cors'; import * as dotenv from 'dotenv'; dotenv.config(); const app = express(); const port = process.env.PORT || 3000; // 使用CORS中间件,允许前端请求 app.use(cors()); // 解析JSON格式的请求体 app.use(express.json());接下来,初始化OpenAI客户端。关键步骤在于正确设置baseURL和apiKey,使其指向Taotoken的服务。
// 初始化OpenAI客户端,配置Taotoken端点 const client = new OpenAI({ apiKey: process.env.TAOTOKEN_API_KEY, baseURL: process.env.TAOTOKEN_BASE_URL, });请注意,baseURL的值是https://taotoken.net/api。这是使用OpenAI官方JavaScript SDK时的标准配置,SDK会自动在此基础URL后拼接/v1/chat/completions等具体路径。请勿在此处添加/v1。
然后,我们定义一个POST接口/api/chat,用于接收前端发送的聊天消息,并调用大模型API获取回复。
// 定义聊天接口 app.post('/api/chat', async (req, res) => { try { const userMessage = req.body.message; const model = req.body.model || 'claude-sonnet-4-6'; // 可从前端指定模型,默认一个 if (!userMessage) { return res.status(400).json({ error: 'Message is required' }); } const completion = await client.chat.completions.create({ model: model, messages: [{ role: 'user', content: userMessage }], stream: false, // 本例使用非流式响应 }); const aiResponse = completion.choices[0]?.message?.content; res.json({ reply: aiResponse }); } catch (error) { console.error('API调用错误:', error); res.status(500).json({ error: 'Failed to get response from AI service' }); } });最后,启动Express服务器。
app.listen(port, () => { console.log(`AI助手后端服务运行在 http://localhost:${port}`); });为了让Node.js能够识别ES模块的导入语法,你需要在package.json中添加"type": "module"字段。
4. 运行与测试服务
完成代码编写后,你可以启动服务进行测试。在终端中运行:
node app.js如果看到“AI助手后端服务运行在 http://localhost:3000”的日志,说明服务已成功启动。
现在,你可以使用curl命令或任何API测试工具(如Postman)来测试接口。
curl -X POST http://localhost:3000/api/chat \ -H "Content-Type: application/json" \ -d '{"message": "你好,请介绍一下你自己", "model": "claude-sonnet-4-6"}'如果一切配置正确,你将收到一个包含AI回复的JSON响应。这个后端服务现在已具备基本功能,可以接收前端应用发送的用户消息,通过Taotoken调用选定的大模型,并将生成的回复返回给前端。
5. 下一步扩展与注意事项
以上构建了一个最简化的可工作版本。在实际项目中,你可能需要考虑以下方面进行扩展:
- 错误处理与重试:为
client.chat.completions.create调用添加更精细的错误处理,例如网络超时、令牌超限等,并可能实现指数退避重试逻辑。 - 对话历史管理:当前的接口每次只处理单条消息。一个完整的助手需要维护会话上下文。你可以在服务端使用内存存储(如Map)或数据库来管理以会话ID为键的对话历史消息数组,并在每次API调用时传入整个历史。
- 流式响应:对于长文本生成,为了提升用户体验,可以考虑支持流式响应(SSE)。将接口中的
stream参数设为true,并按照OpenAI SDK的流式响应方式将数据块逐步返回给前端。 - 安全性:在生产环境中,你需要考虑添加身份验证、请求速率限制、输入内容过滤等安全措施。
- 配置灵活性:模型ID可以设计为完全由前端控制,也可以在后端根据不同的业务逻辑进行路由选择。所有可用的模型ID均可在Taotoken平台的模型广场查询。
关于Taotoken API更详细的参数说明、计费方式以及稳定性相关特性,请以平台官方文档和控制台信息为准。
至此,你已经完成了一个基于Node.js和Taotoken的轻量级AI助手后端服务。你可以在此基础上,根据具体的业务需求继续开发和完善。开始构建你的AI应用吧。
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度
