在nodejs后端服务中集成taotoken调用多模型ai能力
告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度在Node.js后端服务中集成Taotoken调用多模型AI能力基础教程类面向使用Node.js构建Web服务或应用的后端开发者教程逐步讲解如何创建项目安装OpenAI npm包配置环境变量存储Taotoken的API密钥与Base URL并编写异步函数调用聊天补全接口同时处理流式响应实现一个完整的AI对话集成示例。1. 项目初始化与环境准备开始之前你需要一个可运行的Node.js项目。如果你还没有可以新建一个目录并初始化。打开终端执行以下命令创建一个新的项目目录并进入。mkdir taotoken-node-demo cd taotoken-node-demo npm init -y接下来安装必要的依赖。我们将使用官方的openainpm包来与Taotoken的OpenAI兼容API进行交互。同时我们也会安装dotenv来管理环境变量这是一个在开发中管理敏感配置的常见做法。npm install openai dotenv2. 获取并配置Taotoken凭证在编写代码之前你需要从Taotoken平台获取两个关键信息API Key和可用的模型ID。首先访问Taotoken平台注册并登录后在控制台的“API密钥”部分创建一个新的密钥。请妥善保管这个密钥它将在后续请求中用于身份验证。其次在“模型广场”页面你可以浏览平台聚合的各类模型。每个模型都有一个唯一的模型ID例如claude-sonnet-4-6、gpt-4o-mini等。记下你打算在本次集成中使用的模型ID。在项目根目录下创建一个名为.env的文件。这个文件用于存储环境变量请确保它被添加到.gitignore中以避免将密钥提交到版本控制系统。在.env文件中填入以下内容将YOUR_TAOTOKEN_API_KEY替换为你刚刚创建的API Key。TAOTOKEN_API_KEYYOUR_TAOTOKEN_API_KEY TAOTOKEN_BASE_URLhttps://taotoken.net/api TAOTOKEN_MODELclaude-sonnet-4-6这里TAOTOKEN_BASE_URL设置为https://taotoken.net/api。这是使用OpenAI官方JavaScript SDK时的标准配置SDK会自动为我们拼接后续的/v1/chat/completions等路径。3. 编写基础的非流式调用函数现在我们来编写第一个调用函数。在项目根目录创建一个index.js文件。首先我们需要加载环境变量并初始化OpenAI客户端。注意在初始化时我们将baseURL指向Taotoken的端点并将apiKey设置为从环境变量中读取的值。import OpenAI from ‘openai’; import dotenv from ‘dotenv’; dotenv.config(); const client new OpenAI({ apiKey: process.env.TAOTOKEN_API_KEY, baseURL: process.env.TAOTOKEN_BASE_URL, }); async function getChatCompletion(messages) { try { const completion await client.chat.completions.create({ model: process.env.TAOTOKEN_MODEL, messages: messages, max_tokens: 500, }); return completion.choices[0]?.message?.content || ‘未收到回复’; } catch (error) { console.error(‘调用AI接口失败:’, error); throw error; } }这个getChatCompletion函数接受一个消息数组作为参数发起一个简单的非流式请求并返回AI的回复内容。消息数组的格式需要遵循OpenAI的规范例如[{ role: ‘user’, content: ‘你好请介绍一下你自己。’ }]。你可以编写一个简单的测试代码来验证集成是否成功。async function main() { const messages [ { role: ‘user’, content: ‘用一句话介绍Node.js。’ } ]; const reply await getChatCompletion(messages); console.log(‘AI回复:’, reply); } main();在终端运行node index.js如果一切配置正确你将看到来自所选模型的回复。4. 实现并处理流式响应对于需要实时输出或处理长文本的场景流式响应Server-Sent Events是更好的选择。它允许你像接收数据流一样在生成过程中逐步获取AI的回复片段。下面我们实现一个支持流式响应的函数。关键点在于在调用client.chat.completions.create时将stream参数设置为true。async function getStreamingChatCompletion(messages, onChunk) { try { const stream await client.chat.completions.create({ model: process.env.TAOTOKEN_MODEL, messages: messages, max_tokens: 500, stream: true, }); let fullContent ‘’; for await (const chunk of stream) { const content chunk.choices[0]?.delta?.content || ‘’; fullContent content; // 调用回调函数处理每一个收到的片段 if (onChunk content) { onChunk(content); } } return fullContent; } catch (error) { console.error(‘流式调用失败:’, error); throw error; } }这个函数除了接收消息数组还接受一个onChunk回调函数。每当从流中收到一个新的文本片段时就会调用这个回调你可以在这里实现将内容实时推送到前端、写入日志或进行其他处理。以下是如何使用这个流式函数的示例async function mainWithStream() { const messages [ { role: ‘user’, content: ‘写一首关于编程的短诗。’ } ]; console.log(‘开始流式接收:’); const finalReply await getStreamingChatCompletion(messages, (chunk) { process.stdout.write(chunk); // 逐块打印到控制台 }); console.log(‘\n流式接收结束。’); console.log(‘完整回复:’, finalReply); } mainWithStream();5. 在Web框架中的集成示例在实际的Web后端服务中你通常需要将AI能力封装成API端点。这里以流行的Express框架为例展示如何创建一个简单的聊天接口。首先安装Expressnpm install express。然后创建一个新的文件server.js。import express from ‘express’; import { getChatCompletion, getStreamingChatCompletion } from ‘./index.js’; const app express(); app.use(express.json()); app.post(‘/api/chat’, async (req, res) { const { messages, stream false } req.body; if (!messages || !Array.isArray(messages)) { return res.status(400).json({ error: ‘请输入有效的messages数组’ }); } try { if (stream) { // 设置流式响应头 res.setHeader(‘Content-Type’, ‘text/event-stream’); res.setHeader(‘Cache-Control’, ‘no-cache’); res.setHeader(‘Connection’, ‘keep-alive’); await getStreamingChatCompletion(messages, (chunk) { // 按照SSE格式发送数据 res.write(data: ${JSON.stringify({ content: chunk })}\n\n); }); res.write(‘data: [DONE]\n\n’); res.end(); } else { const reply await getChatCompletion(messages); res.json({ reply }); } } catch (error) { console.error(‘API处理错误:’, error); res.status(500).json({ error: ‘AI服务调用失败’ }); } }); const PORT process.env.PORT || 3000; app.listen(PORT, () { console.log(服务运行在 http://localhost:${PORT}); });这个示例创建了一个/api/chat的POST接口。客户端可以通过请求体中的stream布尔值来选择是否使用流式响应。对于流式请求服务端会以Server-Sent Events的形式持续返回数据块。通过以上步骤你已经在Node.js后端服务中完成了Taotoken平台多模型AI能力的基础集成。你可以根据实际业务需求在此基础上添加更复杂的逻辑例如对话历史管理、多模型路由策略或结合用量看板进行成本监控。具体的模型列表、API新和平台功能请以Taotoken控制台和官方文档为准。开始你的集成之旅可以访问 Taotoken 获取API Key并探索可用模型。 告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2632240.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!