Node.js 服务端应用接入 Taotoken 调用大模型的完整代码示例1. 环境准备与依赖安装在开始编写 Node.js 服务端代码前需要确保开发环境已安装 Node.js建议版本 16 或更高和 npm。创建一个新的项目目录并初始化mkdir taotoken-node-demo cd taotoken-node-demo npm init -y安装官方 OpenAI 兼容 SDK该 SDK 也适用于 Taotoken 的 OpenAI 兼容接口npm install openai2. 配置 API Key 与 Base URL建议通过环境变量管理敏感信息。创建.env文件并添加以下内容TAOTOKEN_API_KEYyour_api_key_here TAOTOKEN_BASE_URLhttps://taotoken.net/api在代码中通过dotenv加载环境变量。先安装依赖npm install dotenv然后在项目根目录创建index.js文件添加以下基础配置代码import dotenv/config; import OpenAI from openai; const client new OpenAI({ apiKey: process.env.TAOTOKEN_API_KEY, baseURL: process.env.TAOTOKEN_BASE_URL, });3. 实现基础聊天补全功能以下是一个完整的异步函数示例实现与 Taotoken 的聊天补全接口交互async function getChatCompletion(messages, model claude-sonnet-4-6) { try { const completion await client.chat.completions.create({ model, messages, temperature: 0.7, }); return completion.choices[0]?.message?.content || ; } catch (error) { console.error(Error calling Taotoken API:, error); throw error; } } // 使用示例 const messages [ { role: system, content: 你是一个有帮助的助手 }, { role: user, content: Node.js中如何读取环境变量 }, ]; getChatCompletion(messages) .then(response console.log(AI Response:, response)) .catch(err console.error(Error:, err));4. 处理流式响应对于需要实时显示生成结果的场景可以使用流式响应。修改函数如下async function getStreamingChatCompletion(messages, model claude-sonnet-4-6) { try { const stream await client.chat.completions.create({ model, messages, temperature: 0.7, stream: true, }); let fullResponse ; for await (const chunk of stream) { const content chunk.choices[0]?.delta?.content || ; process.stdout.write(content); // 实时输出到控制台 fullResponse content; } return fullResponse; } catch (error) { console.error(Error in streaming:, error); throw error; } }5. 错误处理与重试机制为增强鲁棒性可以添加简单的错误处理和重试逻辑async function getChatCompletionWithRetry(messages, model, maxRetries 3) { let lastError; for (let attempt 1; attempt maxRetries; attempt) { try { return await getChatCompletion(messages, model); } catch (error) { lastError error; if (attempt maxRetries) { const delay Math.min(1000 * attempt, 5000); console.log(Attempt ${attempt} failed, retrying in ${delay}ms...); await new Promise(resolve setTimeout(resolve, delay)); } } } throw lastError; }6. 完整示例与部署建议将以上代码整合后一个完整的服务端应用可能如下所示import dotenv/config; import OpenAI from openai; const client new OpenAI({ apiKey: process.env.TAOTOKEN_API_KEY, baseURL: process.env.TAOTOKEN_BASE_URL, }); export async function chatWithAI(userInput, model claude-sonnet-4-6) { const messages [ { role: system, content: 你是一个专业的编程助手 }, { role: user, content: userInput }, ]; try { const response await getChatCompletionWithRetry(messages, model); return { success: true, response }; } catch (error) { return { success: false, error: error.message }; } } // 示例作为Express路由处理函数 import express from express; const app express(); app.use(express.json()); app.post(/api/chat, async (req, res) { const { message, model } req.body; const result await chatWithAI(message, model); res.json(result); }); const PORT process.env.PORT || 3000; app.listen(PORT, () { console.log(Server running on port ${PORT}); });在实际部署时建议将 API Key 存储在安全的密钥管理服务中添加适当的请求速率限制实现日志记录以跟踪 API 使用情况考虑添加缓存层减少重复请求Taotoken 提供了多种模型选择开发者可以在模型广场查看可用模型 ID 及其特性。