在ubuntu上用nodejs调用taotoken实现多模型对话应用
告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度在 Ubuntu 上用 Node.js 调用 Taotoken 实现多模型对话应用基础教程类面向使用 Node.js 在 Ubuntu 上构建后端服务或前端应用的开发者。本文将详细说明如何安装 OpenAI 兼容的 Node.js 包通过环境变量管理密钥配置正确的 Base URL 指向 Taotoken 端点并编写一个可以灵活切换不同大模型进行对话的简单示例应用。1. 环境准备与项目初始化在开始编写代码之前请确保你的 Ubuntu 系统已安装 Node.js 运行环境。你可以通过node --version命令来检查 Node.js 是否已安装。如果尚未安装可以使用 Ubuntu 的包管理器进行安装例如sudo apt update sudo apt install nodejs npm。接下来创建一个新的项目目录并初始化 Node.js 项目。打开终端执行以下命令mkdir taotoken-node-demo cd taotoken-node-demo npm init -y这将在当前目录下生成一个package.json文件用于管理项目的依赖和脚本。2. 安装依赖与配置环境变量本示例将使用官方openaiNode.js 库因为它与 Taotoken 提供的 OpenAI 兼容 API 接口完全适配。在项目根目录下运行以下命令安装依赖npm install openai为了安全地管理 API 密钥我们使用环境变量。首先你需要在 Taotoken 控制台创建一个 API Key。登录后进入“API 密钥”页面点击“创建新密钥”即可获得。在项目根目录下创建一个名为.env的文件用于存储环境变量。将你的 Taotoken API Key 填入其中TAOTOKEN_API_KEY你的_API_Key_在这里同时安装dotenv包以便在代码中加载环境变量npm install dotenv3. 编写核心调用函数创建一个名为index.js的文件作为应用的主入口。我们将首先加载环境变量然后初始化 OpenAI 客户端并编写一个通用的对话函数。import OpenAI from ‘openai‘; import dotenv from ‘dotenv‘; // 加载 .env 文件中的环境变量 dotenv.config(); // 初始化客户端关键是指定 baseURL 为 Taotoken 的端点 const client new OpenAI({ apiKey: process.env.TAOTOKEN_API_KEY, baseURL: ‘https://taotoken.net/api‘, // 注意此处末尾没有 /v1 }); /** * 调用 Taotoken 进行对话 * param {string} model - 模型 ID例如 ‘claude-sonnet-4-6‘, ‘gpt-4o-mini‘ * param {Array} messages - 对话消息数组 * returns {Promisestring} - 模型返回的文本内容 */ async function chatWithModel(model, messages) { 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(调用模型 ${model} 时发生错误:, error.message); throw error; } }关键配置说明初始化OpenAI客户端时baseURL必须设置为https://taotoken.net/api。这是 Taotoken 为 OpenAI 兼容 SDK 提供的标准 Base URLSDK 会自动在其后拼接/v1/chat/completions等具体路径。请勿错误地添加/v1。4. 实现多模型对话示例现在我们利用上面的通用函数构建一个可以切换不同模型的对话示例。我们将定义一个对话历史并尝试用两个不同的模型来回答。首先你需要从 Taotoken 的模型广场获取你想要调用的模型 ID。登录控制台在“模型广场”页面可以查看所有可用模型及其对应的 ID。接下来在index.js文件中添加以下示例代码// 示例对话历史 const conversationHistory [ { role: ‘user‘, content: ‘请用简洁的语言解释什么是机器学习。‘ } ]; // 可供选择的模型 ID 列表请替换为你在模型广场看到的实际 ID const availableModels [ ‘claude-sonnet-4-6‘, // Anthropic Claude 模型示例 ‘gpt-4o-mini‘, // OpenAI 模型示例 // 可以在此添加更多模型 ID例如 ‘deepseek-chat‘ 等 ]; /** * 使用多个模型依次回答同一个问题 */ async function runMultiModelDemo() { console.log(‘用户问题‘, conversationHistory[0].content); console.log(‘---‘); for (const model of availableModels) { console.log(正在使用模型 [${model}] 生成回答...); try { const response await chatWithModel(model, conversationHistory); console.log([${model}] 的回答\n${response}\n); } catch (error) { console.log([${model}] 调用失败。\n); } console.log(‘---‘); } } // 执行示例 runMultiModelDemo();这段代码定义了一个模型列表然后遍历列表使用同一个用户问题分别调用不同的模型并将它们的回答打印到控制台进行对比观察。5. 构建一个简单的交互式应用为了让示例更实用我们可以构建一个简单的命令行交互应用允许用户动态选择模型并持续对话。这需要安装readline模块Node.js 内置来处理控制台输入。在index.js中继续添加以下代码import readline from ‘readline‘; /** * 启动一个简单的命令行交互对话 */ function startInteractiveChat() { const rl readline.createInterface({ input: process.stdin, output: process.stdout, }); let currentModel availableModels[0]; // 默认使用第一个模型 const messageHistory []; console.log(‘ Taotoken 多模型对话演示 ‘); console.log(当前使用模型: ${currentModel}); console.log(‘输入 /model 模型ID 切换模型输入 /exit 退出直接输入内容开始对话。‘); const askQuestion () { rl.question(‘\n你: ‘, async (input) { if (input ‘/exit‘) { console.log(‘再见‘); rl.close(); return; } // 处理切换模型命令 if (input.startsWith(‘/model ‘)) { const newModel input.split(‘ ‘)[1]; if (availableModels.includes(newModel)) { currentModel newModel; console.log(已切换模型至: ${currentModel}); } else { console.log(模型“${newModel}”不在可用列表中。当前可用: ${availableModels.join(‘, ‘)}); } askQuestion(); return; } // 处理用户普通消息 messageHistory.push({ role: ‘user‘, content: input }); console.log([${currentModel}] 正在思考...); try { const assistantReply await chatWithModel(currentModel, messageHistory); console.log(\n助手(${currentModel}): ${assistantReply}); messageHistory.push({ role: ‘assistant‘, content: assistantReply }); } catch (error) { console.log(‘对话出错请检查网络或API配置。‘); } askQuestion(); // 继续下一轮对话 }); }; askQuestion(); } // 注释掉之前的 runMultiModelDemo()启动交互式对话 // runMultiModelDemo(); startInteractiveChat();现在运行node index.js你将进入一个交互式命令行界面。你可以直接输入问题与默认模型对话也可以使用/model claude-sonnet-4-6这样的命令在对话过程中动态切换模型。6. 总结与后续步骤通过以上步骤你已经在 Ubuntu 系统上成功创建了一个可以连接 Taotoken 平台、并能够灵活切换不同大模型进行对话的 Node.js 应用。核心要点在于正确配置baseURL和使用从 Taotoken 控制台获取的 API Key 与模型 ID。你可以在此基础上进一步扩展例如将对话历史持久化到数据库。构建一个简单的 Web 前端提供图形化界面来选择模型和进行对话。根据业务逻辑实现更复杂的模型路由策略例如根据问题类型自动选择模型。所有可用的模型 ID 及其特性、计费信息请以 Taotoken 控制台“模型广场”页面显示为准。对于更复杂的 API 参数用法或高级功能建议查阅 Taotoken 的官方 API 文档。 告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度