批量推理
批量推理API允许您以异步方式处理大量推理请求,提高处理效率并降低成本。
概述
批量推理的优势:
- 异步处理大量请求
- 降低API调用成本
- 提高处理效率
- 支持50,000个请求的批量任务
- 48小时内完成处理
基本用法
创建批量任务
bash
curl -X POST "https://realmrouter.cn/v1/batches" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_KEY" \
-d '{
"input_file_id": "file-abc123",
"endpoint": "/v1/chat/completions",
"completion_window": "24h"
}'上传输入文件
bash
curl -X POST "https://realmrouter.cn/v1/files" \
-H "Authorization: Bearer $API_KEY" \
-F purpose="batch" \
-F file="@batch_requests.jsonl"输入文件格式(JSONL):
json
{"custom_id": "request-1", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "gpt-3.5-turbo", "messages": [{"role": "user", "content": "Hello"}]}}
{"custom_id": "request-2", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "gpt-3.5-turbo", "messages": [{"role": "user", "content": "World"}]}}查询批量任务状态
bash
curl -X GET "https://realmrouter.cn/v1/batches/batch_abc123" \
-H "Authorization: Bearer $API_KEY"下载结果文件
bash
curl -X GET "https://realmrouter.cn/v1/files/file-output-123/content" \
-H "Authorization: Bearer $API_KEY"响应格式
批量任务响应
json
{
"id": "batch_abc123",
"object": "batch",
"endpoint": "/v1/chat/completions",
"errors": null,
"input_file_id": "file-abc123",
"completion_window": "24h",
"status": "completed",
"output_file_id": "file-output-123",
"error_file_id": null,
"created_at": 1754902266,
"in_progress_at": 1754902270,
"expires_at": 1754988666,
"finalizing_at": 1754902300,
"completed_at": 1754902320,
"failed_at": null,
"expired_at": null,
"cancelling_at": null,
"cancelled_at": null,
"request_counts": {
"total": 100,
"completed": 95,
"failed": 5
},
"metadata": null
}输出文件格式
输出文件的每一行包含一个请求的响应:
json
{
"custom_id": "request-2589",
"error": null,
"id": "batch_req_task_d2c",
"response": {
"body": {
"id": "29e1432c-edfb-44a4-b531-c23c600abfae",
"object": "chat.completion",
"created": 1754902266,
"model": "deepseek-test",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! 👋 How can I assist you today? 😊"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 5,
"completion_tokens": 13,
"total_tokens": 18
}
},
"request_id": "request-2589",
"status_code": 200
}
}使用说明
限制
- 每个批量任务最多可包含 50,000 个请求
- 每个批量任务的最大输入文件大小为 100MB
错误处理
批量处理过程中遇到的错误记录在单独的错误文件中,可通过 error_file_id 字段访问。常见的错误代码包括:
| 错误代码 | 描述 | 解决方案 |
|---|---|---|
| 400 | 请求格式无效 | 检查 JSONL 语法和必需字段 |
| 401 | 身份验证失败 | 验证 API 密钥 |
| 404 | 未找到批量任务 | 检查批量任务 ID |
| 429 | 超过速率限制 | 降低请求频率 |
| 500 | 服务器错误 | 联系我们 |
批量任务过期
未在 48 小时内完成的批量任务将转换为 EXPIRED 状态。未完成的请求将被取消,而已完成的请求将通过输出文件提供。您只需为已完成请求消耗的令牌付费。批量任务会尽力在 48 小时内完成。
所有批量推理 API
最佳实践
1. 文件准备
- 确保JSONL格式正确
- 验证每个请求的完整性
- 使用合理的批量大小
2. 错误处理
- 定期检查任务状态
- 处理失败请求
- 实现重试机制
3. 性能优化
- 合理设置completion_window
- 监控任务进度
- 优化请求结构
4. 成本控制
- 监控令牌使用量
- 优化提示词长度
- 选择合适的模型