在 Node.js 后端服务中集成 Taotoken 调用大模型 API
·
在 Node.js 后端服务中集成 Taotoken 调用大模型 API
1. 准备工作
在开始集成 Taotoken 之前,请确保已具备以下条件:
- 拥有有效的 Taotoken API Key(可在控制台创建)
- 已安装 Node.js 16 或更高版本
- 了解基本的异步编程概念
建议将 API Key 存储在环境变量中而非硬编码在代码里。可以通过 .env 文件管理敏感信息:
# .env
TAOTOKEN_API_KEY=your_api_key_here
2. 安装依赖
使用 npm 安装官方 OpenAI 包(兼容 Taotoken API):
npm install openai
如果需要读取环境变量,可以同时安装 dotenv:
npm install dotenv
3. 基础配置
创建一个服务模块来初始化 OpenAI 客户端。以下是完整的配置示例:
// taotokenService.js
import { config } from 'dotenv';
import OpenAI from 'openai';
config(); // 加载.env文件
const client = new OpenAI({
apiKey: process.env.TAOTOKEN_API_KEY,
baseURL: 'https://taotoken.net/api',
});
注意 baseURL 必须设置为 https://taotoken.net/api,这是 Taotoken 的 OpenAI 兼容端点。
4. 实现聊天补全功能
下面是一个完整的异步函数示例,实现对话补全功能:
export async function chatCompletion(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('Taotoken API 调用失败:', error);
throw error;
}
}
5. 在路由中使用
在 Express 或其他框架中,可以这样使用上述服务:
import express from 'express';
import { chatCompletion } from './taotokenService.js';
const app = express();
app.use(express.json());
app.post('/api/chat', async (req, res) => {
const { messages } = req.body;
try {
const response = await chatCompletion(messages);
res.json({ success: true, response });
} catch (error) {
res.status(500).json({
success: false,
error: error.message
});
}
});
6. 处理流式响应
如果需要处理流式响应,可以修改 chatCompletion 函数:
export async function streamChatCompletion(messages, model, callback) {
const stream = await client.chat.completions.create({
model,
messages,
stream: true,
});
for await (const chunk of stream) {
const content = chunk.choices[0]?.delta?.content || '';
callback(content);
}
}
然后在路由中使用:
app.post('/api/chat/stream', (req, res) => {
const { messages } = req.body;
res.setHeader('Content-Type', 'text/event-stream');
res.setHeader('Cache-Control', 'no-cache');
res.setHeader('Connection', 'keep-alive');
streamChatCompletion(messages, 'claude-sonnet-4-6', (chunk) => {
res.write(`data: ${JSON.stringify({ content: chunk })}\n\n`);
}).then(() => {
res.end();
}).catch((error) => {
console.error('流式传输错误:', error);
res.status(500).end();
});
});
7. 最佳实践建议
- 错误处理:始终封装 API 调用在 try-catch 块中,考虑实现重试逻辑
- 超时控制:为长时间运行的请求设置超时
- 模型选择:根据需求在模型广场选择合适的模型
- 日志记录:记录重要调用的请求和响应摘要
- 速率限制:遵循平台的速率限制规则
完整示例代码可参考 Taotoken Node.js 示例库。
开始使用 Taotoken 大模型服务,请访问 Taotoken 获取 API Key 并探索可用模型。
更多推荐
所有评论(0)