使用Nodejs和Taotoken为前端应用构建AI聊天后端
告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度使用Node.js和Taotoken为前端应用构建AI聊天后端基础教程类指导前端或全栈开发者使用Node.js环境接入Taotoken文章将演示如何安装openai包通过环境变量管理密钥并设置baseURL编写一个异步的聊天补全接口函数最终将其集成到一个简单的Express服务器中为前端提供AI对话能力。1. 准备工作与环境配置在开始编写后端服务之前你需要准备好Node.js开发环境和Taotoken的访问凭证。首先确保你的系统已经安装了Node.js建议版本16或更高。然后创建一个新的项目目录并通过终端进入该目录。接下来初始化一个新的Node.js项目并安装必要的依赖。我们将使用Express作为Web框架以及官方的OpenAI Node.js库来与Taotoken的兼容API进行通信。在项目根目录下执行以下命令npm init -y npm install express openai dotenv corsdotenv包用于从.env文件加载环境变量cors包用于处理跨域请求这对于前端应用调用后端API是必要的。现在你需要获取Taotoken的API Key。登录Taotoken控制台在API密钥管理页面创建一个新的密钥。同时在模型广场页面查看并记录下你希望使用的模型ID例如claude-sonnet-4-6或gpt-4o-mini。在项目根目录下创建一个名为.env的文件用于安全地存储你的密钥和配置。文件内容如下TAOTOKEN_API_KEY你的_API_Key_粘贴在这里 PORT3000请务必将.env文件添加到你的.gitignore文件中避免将密钥提交到版本控制系统。2. 创建Taotoken API客户端我们将创建一个独立的模块来封装与Taotoken的交互逻辑。在项目根目录下创建一个名为taotokenClient.js的文件。首先导入openai库并加载环境变量。然后初始化OpenAI客户端关键的一步是正确设置baseURL。对于使用OpenAI兼容SDK如openai包的场景baseURL应设置为https://taotoken.net/api。SDK会自动为你拼接后续的路径如/v1/chat/completions。// taotokenClient.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, // 注意此处末尾没有 /v1 }); /** * 调用Taotoken聊天补全API * param {Array} messages - 消息数组格式如 [{role: user, content: Hello}] * param {string} model - 模型ID从Taotoken模型广场获取 * returns {Promisestring} - AI返回的文本内容 */ export async function createChatCompletion(messages, model claude-sonnet-4-6) { try { const completion await client.chat.completions.create({ model: model, messages: messages, // 可根据需要添加其他参数如 temperature, max_tokens 等 }); return completion.choices[0]?.message?.content || ; } catch (error) { console.error(调用Taotoken API失败:, error); throw new Error(AI服务请求失败: ${error.message}); } }这个函数接收一个消息历史数组和一个可选的模型ID返回一个Promise其结果为AI生成的文本。错误处理被包裹在try-catch块中以便在API调用失败时向调用方提供清晰的错误信息。3. 构建Express服务器与API路由接下来我们创建主服务器文件server.js设置Express应用并定义一个处理聊天请求的POST接口。// server.js import express from express; import cors from cors; import dotenv from dotenv; import { createChatCompletion } from ./taotokenClient.js; dotenv.config(); const app express(); const PORT process.env.PORT || 3000; // 启用CORS和JSON解析中间件 app.use(cors()); app.use(express.json()); // 健康检查端点 app.get(/health, (req, res) { res.json({ status: ok, service: taotoken-chat-backend }); }); // 主要的聊天API端点 app.post(/api/chat, async (req, res) { const { messages, model } req.body; // 简单的请求验证 if (!messages || !Array.isArray(messages)) { return res.status(400).json({ error: 请求体中必须包含有效的 messages 数组。 }); } try { const aiResponse await createChatCompletion(messages, model); res.json({ success: true, response: aiResponse }); } catch (error) { console.error(处理聊天请求时出错:, error); res.status(500).json({ success: false, error: error.message }); } }); // 启动服务器 app.listen(PORT, () { console.log(后端服务运行在 http://localhost:${PORT}); });这个服务器做了几件事它使用cors()中间件允许前端跨域请求使用express.json()解析JSON请求体定义了一个健康检查端点用于服务探活核心是/api/chat这个POST接口它接收包含messages和可选model的JSON请求体调用我们之前封装的createChatCompletion函数并将结果返回给前端。4. 测试与运行在启动服务前我们需要在package.json中添加type字段和启动脚本以支持ES模块语法。// package.json { name: taotoken-chat-backend, version: 1.0.0, type: module, scripts: { start: node server.js, dev: node --watch server.js }, dependencies: { cors: ^2.8.5, dotenv: ^16.4.5, express: ^4.19.2, openai: ^4.40.2 } }现在你可以运行服务了。在终端执行npm run dev如果看到“后端服务运行在 http://localhost:3000”的日志说明服务已成功启动。你可以使用curl、Postman或任何HTTP客户端来测试API。以下是一个使用curl进行测试的例子curl -X POST http://localhost:3000/api/chat \ -H Content-Type: application/json \ -d { messages: [ {role: user, content: 用一句话介绍你自己。} ], model: claude-sonnet-4-6 }如果一切配置正确你将收到一个包含AI回复的JSON响应。5. 前端集成与后续步骤后端服务就绪后前端应用无论是React、Vue还是原生JavaScript可以通过标准的fetch或axios库调用http://你的服务器地址/api/chat接口。前端需要构建符合要求的messages数组并处理返回的响应。对于生产环境你还需要考虑更多方面例如在Express中添加更完善的错误处理、请求速率限制、输入验证与清理以及将API Key等敏感信息通过环境变量注入到部署平台如Vercel、Railway或你自己的服务器。此外Taotoken控制台提供的用量看板可以帮助你监控Token消耗和API调用情况。通过以上步骤你已经成功搭建了一个连接Taotoken与前端应用的Node.js桥梁。这个基础结构可以根据你的具体业务需求进行扩展例如支持流式响应、处理多轮对话上下文或集成多个AI模型进行路由调用。所有具体的API参数、支持的模型列表及其特性请以Taotoken官方文档和控制台信息为准。 告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2606801.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!