使用nodejs快速构建接入taotoken大模型api的聊天机器人
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度
使用 Node.js 快速构建接入 Taotoken 大模型 API 的聊天机器人
对于 Node.js 开发者而言,将大模型能力集成到自己的应用中,通常意味着需要处理不同厂商的 API 密钥、端点地址和调用方式。Taotoken 平台通过提供 OpenAI 兼容的 HTTP API,简化了这一过程。本文将指导你使用 Node.js 和 OpenAI 官方 SDK,快速构建一个能够通过 Taotoken 调用多种大模型的基础聊天机器人后端服务。
1. 环境准备与项目初始化
开始之前,请确保你的开发环境已安装 Node.js(建议版本 16 或更高)。首先,创建一个新的项目目录并初始化一个 Node.js 项目。
mkdir taotoken-chatbot cd taotoken-chatbot npm init -y接下来,安装项目所需的核心依赖。我们将使用openai这个官方 Node.js 库来发起 API 请求,同时使用dotenv来管理环境变量。
npm install openai dotenv2. 获取并配置 Taotoken API 密钥
要使用 Taotoken 的服务,你需要一个有效的 API Key。请访问 Taotoken 控制台,在 API 密钥管理页面创建一个新的密钥。创建成功后,请妥善保管。
在项目根目录下创建一个名为.env的文件,用于存储敏感信息和配置。将你的 Taotoken API Key 填入其中。
# .env TAOTOKEN_API_KEY=你的_API_Key_粘贴于此提示:请务必将
.env文件添加到.gitignore中,避免将密钥提交到版本控制系统。
3. 编写核心聊天函数
现在,我们来编写调用 Taotoken API 的核心逻辑。创建一个名为chat.js的文件。
首先,导入必要的模块并初始化 OpenAI 客户端。关键在于正确设置baseURL参数,对于 OpenAI 兼容的 SDK,应使用https://taotoken.net/api。
// chat.js import OpenAI from 'openai'; import dotenv from 'dotenv'; // 加载环境变量 dotenv.config(); // 初始化 OpenAI 客户端,指向 Taotoken 端点 const client = new OpenAI({ apiKey: process.env.TAOTOKEN_API_KEY, baseURL: 'https://taotoken.net/api', // 注意:此处末尾没有 /v1 });接下来,我们定义一个异步函数来调用聊天补全接口。你需要从 Taotoken 的模型广场选择一个模型 ID,例如claude-sonnet-4-6或gpt-4o-mini,并将其作为model参数传入。
/** * 调用 Taotoken 聊天补全 API * @param {Array} messages - 消息历史数组,格式为 [{role: 'user', content: '你好'}] * @param {string} model - 模型 ID,从 Taotoken 模型广场获取 * @returns {Promise<string>} - 模型返回的文本内容 */ async function getChatCompletion(messages, model = 'claude-sonnet-4-6') { try { const completion = await client.chat.completions.create({ model: model, messages: messages, temperature: 0.7, max_tokens: 1000, }); return completion.choices[0]?.message?.content || '未收到回复。'; } catch (error) { console.error('调用 API 时发生错误:', error); throw error; } }4. 实现流式响应处理
对于需要实时输出效果的聊天场景,流式响应能显著提升用户体验。我们可以修改上面的函数,或者新增一个专门处理流式响应的函数。
/** * 调用 Taotoken 聊天补全 API(流式响应) * @param {Array} messages - 消息历史数组 * @param {string} model - 模型 ID * @param {Function} onChunk - 处理每个文本块的函数,参数为 (chunkText) */ async function getChatCompletionStream(messages, model = 'claude-sonnet-4-6', onChunk) { try { const stream = await client.chat.completions.create({ model: model, messages: messages, temperature: 0.7, max_tokens: 1000, stream: true, // 启用流式响应 }); let fullContent = ''; for await (const chunk of stream) { const content = chunk.choices[0]?.delta?.content || ''; if (content) { fullContent += content; if (onChunk) { onChunk(content); // 将每个新内容块传递给回调函数 } } } return fullContent; } catch (error) { console.error('流式调用 API 时发生错误:', error); throw error; } }5. 构建简单的后端服务
为了演示一个完整的聊天机器人后端,我们可以使用 Node.js 内置的http模块或更流行的Express框架。这里以Express为例,因为它更简洁。
首先,安装 Express。
npm install express然后,创建一个server.js文件作为应用入口。
// server.js import express from 'express'; import dotenv from 'dotenv'; import { getChatCompletion, getChatCompletionStream } from './chat.js'; dotenv.config(); const app = express(); const port = process.env.PORT || 3000; // 解析 JSON 请求体 app.use(express.json()); // 定义一个简单的聊天端点 app.post('/api/chat', async (req, res) => { const { message, model, stream } = req.body; const messages = [{ role: 'user', content: message }]; try { if (stream) { // 设置流式响应的头部 res.setHeader('Content-Type', 'text/plain; charset=utf-8'); res.setHeader('Transfer-Encoding', 'chunked'); await getChatCompletionStream(messages, model, (chunk) => { res.write(chunk); }); res.end(); } else { const reply = await getChatCompletion(messages, model); res.json({ reply }); } } catch (error) { res.status(500).json({ error: '聊天服务暂时不可用' }); } }); // 启动服务器 app.listen(port, () => { console.log(`聊天机器人服务运行在 http://localhost:${port}`); });最后,在package.json中添加启动脚本,并运行服务。
// package.json { "type": "module", "scripts": { "start": "node server.js" } // ... 其他配置 }node server.js现在,你的聊天机器人后端服务已经启动。你可以使用curl、Postman 或编写前端页面来测试/api/chat端点。发送一个包含message和可选model、stream参数的 POST 请求,即可获得 AI 的回复。
通过以上步骤,你已经成功构建了一个能够通过 Taotoken 灵活调用多种大模型的基础聊天机器人后端。你可以在此基础上扩展更多功能,例如维护对话历史、支持多轮对话、添加用户认证等。所有具体的模型列表、价格和最新的 API 特性,请以 Taotoken 控制台和官方文档为准。
想开始使用并探索更多模型?可以访问 Taotoken 获取 API Key 并查看模型广场。
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度
