142 lines
3.7 KiB
Markdown
142 lines
3.7 KiB
Markdown
|
|
# Batch API 测试总结
|
|||
|
|
|
|||
|
|
## 测试结果
|
|||
|
|
|
|||
|
|
✅ **测试成功!通义千问Batch API可以正常响应**
|
|||
|
|
|
|||
|
|
## 测试信息
|
|||
|
|
|
|||
|
|
### 执行时间
|
|||
|
|
- 日期:2025年10月15日
|
|||
|
|
- 测试模型:`batch-test-model`(测试专用,不产生费用)
|
|||
|
|
|
|||
|
|
### 测试流程
|
|||
|
|
|
|||
|
|
1. **文件上传** ✅
|
|||
|
|
- 上传文件:`test_model.jsonl`(2个测试请求)
|
|||
|
|
- 文件ID:`file-batch-2a6da75ba3e947a4b48faeda`
|
|||
|
|
- 状态:成功
|
|||
|
|
|
|||
|
|
2. **创建Batch任务** ✅
|
|||
|
|
- 任务ID:`batch_430d7e65-635b-47f1-b914-70b9fdc21749`
|
|||
|
|
- Endpoint:`/v1/chat/ds-test`(测试模型专用)
|
|||
|
|
- 初始状态:`validating`
|
|||
|
|
|
|||
|
|
3. **任务执行** ✅
|
|||
|
|
- 轮询次数:2次
|
|||
|
|
- 执行时间:约10-20秒
|
|||
|
|
- 最终状态:`completed`
|
|||
|
|
|
|||
|
|
4. **结果下载** ✅
|
|||
|
|
- 输出文件已保存到:`result.jsonl`
|
|||
|
|
- 包含2条成功响应
|
|||
|
|
- 测试响应内容:`"This is a test result."`
|
|||
|
|
|
|||
|
|
## 测试响应示例
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"id":"1834f621-35f0-459f-afca-7749ac426759",
|
|||
|
|
"custom_id":"1",
|
|||
|
|
"response":{
|
|||
|
|
"status_code":200,
|
|||
|
|
"request_id":"1834f621-35f0-459f-afca-7749ac426759",
|
|||
|
|
"body":{
|
|||
|
|
"created":1760511961,
|
|||
|
|
"usage":{
|
|||
|
|
"completion_tokens":6,
|
|||
|
|
"prompt_tokens":20,
|
|||
|
|
"total_tokens":26
|
|||
|
|
},
|
|||
|
|
"model":"batch-test-model",
|
|||
|
|
"id":"chatcmpl-f18ede12-09e3-4369-8072-1613771bb609",
|
|||
|
|
"choices":[{
|
|||
|
|
"finish_reason":"stop",
|
|||
|
|
"index":0,
|
|||
|
|
"message":{
|
|||
|
|
"content":"This is a test result."
|
|||
|
|
}
|
|||
|
|
}],
|
|||
|
|
"object":"chat.completion"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"error":null
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 环境配置
|
|||
|
|
|
|||
|
|
### API Key设置
|
|||
|
|
```powershell
|
|||
|
|
# Windows PowerShell
|
|||
|
|
$env:DASHSCOPE_API_KEY="sk-bd5ee62703bc41fc9b8a55d748dc1eb8"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 依赖包
|
|||
|
|
- `openai` SDK(已安装)
|
|||
|
|
|
|||
|
|
## 问题排查
|
|||
|
|
|
|||
|
|
### 遇到的问题及解决方案
|
|||
|
|
|
|||
|
|
1. **编码问题**
|
|||
|
|
- 问题:Windows控制台输出包含特殊字符导致编码错误
|
|||
|
|
- 解决:将特殊字符(✓、❌等)替换为纯文本标记([OK]、[ERROR]等)
|
|||
|
|
|
|||
|
|
2. **文件路径问题**
|
|||
|
|
- 问题:脚本在项目根目录运行时找不到输入文件
|
|||
|
|
- 解决:使用`os.path.dirname(__file__)`获取脚本所在目录
|
|||
|
|
|
|||
|
|
3. **JSONL格式问题**
|
|||
|
|
- 问题:文件末尾有空白行导致任务失败(错误码:`line_blank`)
|
|||
|
|
- 解决:移除文件末尾的空白行
|
|||
|
|
|
|||
|
|
## 结论
|
|||
|
|
|
|||
|
|
通义千问Batch API工作正常,可以成功:
|
|||
|
|
- ✅ 上传文件
|
|||
|
|
- ✅ 创建Batch任务
|
|||
|
|
- ✅ 执行任务(快速完成)
|
|||
|
|
- ✅ 下载结果
|
|||
|
|
|
|||
|
|
## 下一步建议
|
|||
|
|
|
|||
|
|
既然API本身工作正常,如果主程序(`main.py`)仍然遇到"一直等待无法响应"的问题,可能的原因包括:
|
|||
|
|
|
|||
|
|
1. **使用的是正式模型而非测试模型**
|
|||
|
|
- 正式模型(如`qwen-plus`)的Batch任务可能需要更长时间
|
|||
|
|
- 当前config中配置的是`qwen-plus`模型
|
|||
|
|
- 建议:等待时间可能需要数小时甚至更长
|
|||
|
|
|
|||
|
|
2. **轮询间隔和最大等待时间设置**
|
|||
|
|
- 当前配置:
|
|||
|
|
- `poll_interval: 60`秒(1分钟)
|
|||
|
|
- `max_wait_time: 86400`秒(24小时)
|
|||
|
|
- 这些设置看起来是合理的
|
|||
|
|
|
|||
|
|
3. **任务队列繁忙**
|
|||
|
|
- Batch任务的执行时间取决于系统资源分配
|
|||
|
|
- 在高峰期可能需要更长等待时间
|
|||
|
|
|
|||
|
|
## 建议的诊断步骤
|
|||
|
|
|
|||
|
|
1. **检查当前运行的Batch任务状态**
|
|||
|
|
- 如果有正在运行的任务,可以通过任务ID查询其状态
|
|||
|
|
- 查看日志文件:`logs/classifier.log`
|
|||
|
|
|
|||
|
|
2. **使用测试模型验证完整流程**
|
|||
|
|
- 修改config.yaml,将模型改为`batch-test-model`
|
|||
|
|
- 修改endpoint为`/v1/chat/ds-test`
|
|||
|
|
- 运行主程序验证是否能快速完成
|
|||
|
|
|
|||
|
|
3. **检查实际产品数量**
|
|||
|
|
- 如果`product_list.xlsx`中有大量产品
|
|||
|
|
- Batch任务处理时间会相应增加
|
|||
|
|
|
|||
|
|
## 参考资料
|
|||
|
|
|
|||
|
|
- API文档:`../docs/API/Tongyi-API.md`
|
|||
|
|
- 测试脚本:`test_batch_api.py`
|
|||
|
|
- 配置文件:`../config/config.yaml`
|
|||
|
|
|