使用 Node.js 和 Taotoken 快速搭建一个简单的 AI 对话中间件

📅 2026/7/3 11:13:55 👁️ 阅读次数 📝 编程学习
使用 Node.js 和 Taotoken 快速搭建一个简单的 AI 对话中间件

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度

使用 Node.js 和 Taotoken 快速搭建一个简单的 AI 对话中间件

在构建需要集成大语言模型的应用时,开发者常常面临一个需求:在业务逻辑与模型 API 之间建立一个统一的中间层。这个中间层可以用于集中管理 API 密钥、统一日志记录、添加自定义预处理逻辑或进行简单的请求转发。本文将介绍如何利用 Taotoken 平台提供的 OpenAI 兼容接口,快速构建一个基于 Node.js 的 AI 对话中间件。

1. 项目初始化与环境配置

首先,确保你的开发环境中已安装 Node.js(建议版本 16 或更高)。创建一个新的项目目录,并初始化一个新的 Node.js 项目。

mkdir ai-middleware cd ai-middleware npm init -y

接下来,安装项目所需的依赖。核心依赖是openai官方 Node.js SDK,它将帮助我们以标准方式调用 Taotoken 的接口。同时,我们也会安装dotenv来管理环境变量。

npm install openai dotenv

为了安全地管理 API 密钥,我们使用环境变量。在项目根目录下创建一个.env文件,并填入从 Taotoken 控制台获取的 API Key 和你选定的模型 ID。

# .env 文件 TAOTOKEN_API_KEY=your_taotoken_api_key_here TAOTOKEN_BASE_URL=https://taotoken.net/api TAOTOKEN_MODEL=claude-sonnet-4-6

请将your_taotoken_api_key_here替换为你在 Taotoken 平台创建的实际 API Key。模型 IDclaude-sonnet-4-6是一个示例,你可以在 Taotoken 的模型广场查看并选择其他可用的模型。

2. 核心中间件函数实现

中间件的核心是一个异步函数,它接收用户输入的消息,调用 Taotoken 的聊天补全接口,并返回处理后的结果。我们在项目根目录下创建一个名为middleware.js的文件。

首先,加载环境变量并初始化 OpenAI 客户端。关键点在于配置baseURL为 Taotoken 的 OpenAI 兼容端点。

// middleware.js require('dotenv').config(); const OpenAI = require('openai'); // 初始化客户端,指向 Taotoken 服务 const client = new OpenAI({ apiKey: process.env.TAOTOKEN_API_KEY, baseURL: process.env.TAOTOKEN_BASE_URL, // 即 https://taotoken.net/api }); /** * AI 对话中间件函数 * @param {Array} messages - 符合 OpenAI 格式的消息数组 * @param {Object} options - 可选的额外参数,如 temperature, max_tokens 等 * @returns {Promise<Object>} - 返回完整的 API 响应或错误信息 */ async function aiChatMiddleware(messages, options = {}) { // 这里可以添加前置业务逻辑,例如输入验证、日志记录、消息格式化等 console.log(`[Middleware] 收到请求,消息数: ${messages.length}`); try { const completion = await client.chat.completions.create({ model: process.env.TAOTOKEN_MODEL, messages: messages, ...options // 将用户传入的额外参数(如 temperature)合并进来 }); // 这里可以添加后置业务逻辑,例如响应格式化、使用量统计、结果缓存等 console.log(`[Middleware] 请求成功,消耗 Token: ${completion.usage?.total_tokens}`); return { success: true, data: completion }; } catch (error) { // 统一的错误处理逻辑 console.error(`[Middleware] 请求失败:`, error.message); return { success: false, error: error.message }; } } module.exports = { aiChatMiddleware };

这个aiChatMiddleware函数构成了中间件的核心。它接收标准格式的messages数组和一个可选的options对象。在函数内部,它先执行可能的前置逻辑(如日志),然后调用 Taotoken 接口,最后执行后置逻辑并返回一个结构化的结果。

3. 集成与使用示例

中间件构建完成后,可以很容易地集成到现有的 Web 框架(如 Express、Koa)或任何 Node.js 脚本中。下面我们创建一个简单的 Express 服务器作为示例。

首先,安装 Express。

npm install express

然后,创建一个server.js文件。

// server.js require('dotenv').config(); const express = require('express'); const { aiChatMiddleware } = require('./middleware'); const app = express(); const port = process.env.PORT || 3000; app.use(express.json()); // 定义一个简单的对话接口 app.post('/api/chat', async (req, res) => { const { messages, temperature, max_tokens } = req.body; if (!messages || !Array.isArray(messages)) { return res.status(400).json({ error: 'Invalid messages format' }); } // 调用我们的中间件 const result = await aiChatMiddleware(messages, { temperature, max_tokens }); if (result.success) { // 返回 AI 的回复内容 const aiResponse = result.data.choices[0]?.message?.content || ''; res.json({ reply: aiResponse, usage: result.data.usage // 可选:返回 Token 使用情况 }); } else { res.status(500).json({ error: result.error }); } }); // 健康检查端点 app.get('/health', (req, res) => { res.json({ status: 'ok', service: 'AI Middleware' }); }); app.listen(port, () => { console.log(`AI 对话中间件服务运行在 http://localhost:${port}`); });

现在,你可以启动服务器并测试中间件。

node server.js

使用curl或 Postman 等工具向http://localhost:3000/api/chat发送一个 POST 请求。

curl -X POST http://localhost:3000/api/chat \ -H "Content-Type: application/json" \ -d '{ "messages": [ {"role": "user", "content": "你好,请用一句话介绍你自己。"} ], "temperature": 0.7 }'

如果一切配置正确,你将收到来自所选大模型的回复,并且在服务器控制台能看到中间件记录的日志信息。

4. 扩展中间件功能

上述基础中间件已经可以工作,但其价值在于可扩展性。你可以根据业务需求,轻松地在中间件函数的前后添加各种逻辑。

  • 统一日志与监控:在try-catch块前后,可以更详细地记录请求的模型、参数、耗时、Token 用量以及成功/失败状态,方便后续分析和监控。
  • 请求预处理:在调用client.chat.completions.create之前,可以对messages进行清洗、过滤敏感词、添加系统提示词或根据上下文补全历史对话。
  • 响应后处理:获取到 AI 的回复后,可以对其进行格式化(如转换为 Markdown)、内容安全审核、或提取结构化信息(如 JSON)。
  • 失败重试与降级:在catch块中,可以根据错误类型(如超时、限流)实现简单的重试机制,或在特定模型不可用时切换到备用模型。
  • 缓存层:对于重复或相似的查询,可以引入缓存(如 Redis),将(messages, options)的哈希值作为键,存储响应结果,以降低成本和提升响应速度。

通过 Taotoken 统一的 API 接口,你的中间件无需关心后端具体是哪个模型供应商在提供服务,从而将业务逻辑与底层模型基础设施解耦。这使得模型切换、成本分析和统一治理变得更加容易。


开始构建你的 AI 应用中间层吧,你可以访问 Taotoken 获取 API Key 并探索更多可用的模型。

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度