在Node.js后端服务中集成Taotoken调用GPT模型
在Node.js后端服务中集成Taotoken调用GPT模型
1. 环境准备与配置
在开始集成Taotoken之前,确保你的Node.js开发环境满足以下条件:
- Node.js版本16或更高(建议18+)
- 已初始化npm或yarn项目
- 安装openai官方npm包(当前示例使用v4+版本)
通过以下命令安装依赖:
npm install openai在项目根目录创建.env文件,配置Taotoken的API密钥和基础地址:
TAOTOKEN_API_KEY=your_api_key_here OPENAI_BASE_URL=https://taotoken.net/api2. 初始化OpenAI客户端
创建lib/aiClient.js文件,编写客户端初始化代码。注意正确处理环境变量和错误情况:
import OpenAI from 'openai'; import dotenv from 'dotenv'; dotenv.config(); const validateConfig = () => { if (!process.env.TAOTOKEN_API_KEY) { throw new Error('Missing TAOTOKEN_API_KEY in environment variables'); } }; export const createAIClient = () => { validateConfig(); return new OpenAI({ apiKey: process.env.TAOTOKEN_API_KEY, baseURL: process.env.OPENAI_BASE_URL, }); };3. 实现聊天补全功能
在同一个文件中添加核心的聊天补全函数,同时支持流式和非流式响应:
export const createChatCompletion = async ({ client, model = 'claude-sonnet-4-6', messages, stream = false, maxTokens = 1024, }) => { try { return await client.chat.completions.create({ model, messages, stream, max_tokens: maxTokens, }); } catch (error) { console.error('AI API Error:', error); throw new Error(`AI service error: ${error.message}`); } };4. 集成到Express/Koa应用
创建一个可复用的路由处理器,示例以Express为例:
import express from 'express'; import { createAIClient, createChatCompletion } from './lib/aiClient.js'; const app = express(); app.use(express.json()); const aiClient = createAIClient(); app.post('/api/chat', async (req, res) => { try { const { messages, stream } = req.body; if (stream) { res.setHeader('Content-Type', 'text/event-stream'); const stream = await createChatCompletion({ client: aiClient, messages, stream: true, }); for await (const chunk of stream) { res.write(`data: ${JSON.stringify(chunk)}\n\n`); } res.end(); } else { const completion = await createChatCompletion({ client: aiClient, messages, }); res.json(completion); } } catch (error) { res.status(500).json({ error: error.message }); } });5. 错误处理与最佳实践
在实际生产环境中,还需要考虑以下方面:
- 速率限制:Taotoken可能有自己的速率限制策略,建议实现指数退避重试机制
- 超时控制:为AI调用设置合理的超时时间(通常15-30秒)
- 模型选择:可以通过环境变量配置默认模型,方便切换
示例改进后的客户端初始化:
export const createAIClient = () => { validateConfig(); return new OpenAI({ apiKey: process.env.TAOTOKEN_API_KEY, baseURL: process.env.OPENAI_BASE_URL, timeout: 20000, // 20秒超时 maxRetries: 2, // 最多重试2次 }); };6. 测试与验证
编写简单的测试脚本来验证集成是否成功:
import { createAIClient, createChatCompletion } from './lib/aiClient.js'; async function testChatCompletion() { const client = createAIClient(); const response = await createChatCompletion({ client, messages: [{ role: 'user', content: 'Hello, who are you?' }], }); console.log('AI Response:', response.choices[0]?.message?.content); } testChatCompletion().catch(console.error);通过以上步骤,你已成功在Node.js后端服务中集成了Taotoken的GPT模型调用能力。可以根据实际业务需求扩展更多功能,如对话历史管理、多轮对话支持等。
Taotoken
