README.md
商品品类分析脚本
功能说明
这个脚本用于批量分析商品标题,提取商品的品类、适用人群、标签、场景、季节和材质/功能等信息。
主要特性
- 批量处理:每次处理20条数据,提高效率
- 完整日志:记录所有API请求、响应和解析结果
- 断点续传:每处理完一个批次自动保存,支持中断后继续
- ID映射:使用序号1-20,最后映射回原始ID
- Markdown解析:高效解析LLM返回的markdown表格
输出字段
| 字段 | 说明 | 示例 |
|---|---|---|
| id | 原始商品ID | 107365 |
| title | 原始英文标题 | Sunglasses Men Polarized... |
| title_cn | 中文标题 | 男士偏光飞行员太阳镜 |
| category_path | 品类路径(大类>细分) | 配件>眼镜>太阳镜 |
| tags | 细分标签 | 偏光,金属框,复古 |
| target_audience | 适用人群 | 男女通用,成人 |
| usage_scene | 使用场景 | 驾驶,钓鱼,户外 |
| season | 适用季节 | 四季 |
| key_attributes | 关键属性 | UV400防护,防眩光 |
| material | 材质说明 | 金属框架,树脂镜片 |
| features | 功能特点 | 偏光防眩,轻量化设计 |
| selling_points | 商品卖点 | 专业偏光镜片,有效过滤眩光,适合驾驶和户外运动 |
安装依赖
pip install requests
使用方法
1. 设置API密钥
export DASHSCOPE_API_KEY="your_api_key_here"
2. 测试运行(处理前40条)
# 创建测试数据
python test_process.py
# 运行测试脚本
python process_products_test.py
3. 正式运行(处理全部数据)
python process_products.py
文件结构
.
├── saas_170_products.csv # 输入文件(原始数据)
├── process_products.py # 主处理脚本
├── test_process.py # 测试准备脚本
├── output_logs/ # 输出目录
│ ├── products_analyzed.csv # 最终结果(CSV格式)
│ └── logs/ # 日志目录
│ ├── process_*.log # 主日志文件
│ └── batch_*.json # 每个批次的详细日志
│ ├── input_products # 输入数据
│ ├── raw_response # 原始响应
│ ├── full_response_json # 完整API响应JSON
│ ├── parsed_results # 解析后的markdown表格
│ └── final_results # 最终格式化结果
日志说明
每个批次的JSON日志包含:
- input_products: 输入的商品列表(使用临时序号1-20)
- raw_response: LLM返回的原始markdown文本
- full_response_json: 完整的API响应(包括usage、model等)
- parsed_results: 从markdown解析出的结构化数据
- final_results: 映射回原始ID后的最终结果
配置参数
可以在脚本开头修改以下参数:
BATCH_SIZE = 20 # 每批处理数量
MODEL_NAME = "qwen-turbo" # 模型名称
INPUT_FILE = "saas_170_products.csv" # 输入文件
OUTPUT_FILE = "output_logs/products_analyzed.csv" # 输出文件
注意事项
- 确保
DASHSCOPE_API_KEY环境变量已设置 - 处理4万条数据约需2000次API调用,请确保API配额充足
- 每个批次会自动保存,可随时中断和恢复
- 日志文件可能较大,请确保磁盘空间充足
预计时间
- 每批次约10-15秒
- 总批次约2270批(45389条 ÷ 20)
- 预计总时间:6-9小时
结果格式示例
id,title,title_cn,category_path,tags,target_audience,usage_scene,season,key_attributes,material,features,selling_points
107365,"Sunglasses Men Polarized...","男士偏光飞行员太阳镜","配件>眼镜>太阳镜","偏光,金属框,复古","男女通用,成人","驾驶,钓鱼,户外","四季","UV400防护,防眩光","金属框架,树脂镜片","偏光防眩,轻量化","专业偏光镜片,有效过滤眩光,适合驾驶和户外运动"
107366,"Nintendo Switch™...","任天堂Switch游戏机","电子产品>游戏机>掌机","家用,便携,双人","通用,青少年","家庭娱乐,聚会,旅行","四季","无线连接,HD震动","电子元件,塑料","便携设计,多人游戏","任天堂官方正品,支持多种游戏模式,适合家庭娱乐"
故障排查
API密钥错误
Error: DASHSCOPE_API_KEY environment variable not set!
解决:设置环境变量 export DASHSCOPE_API_KEY="your_key"
API请求失败
检查日志文件中的详细错误信息,可能原因:
- API配额不足
- 网络连接问题
- 代理设置问题(脚本已自动禁用代理)
- 请求格式错误
脚本已内置重试机制(最多重试3次,间隔5秒),可以自动处理临时网络问题。
解析失败
查看 batch_*.json 日志中的 raw_response 字段,检查LLM返回格式是否符合预期
代理连接错误
如果遇到代理连接错误:
- 脚本已自动设置
NO_PROXY=*环境变量 - 脚本已在请求中明确禁用代理
- 如果仍有问题,手动取消系统代理设置:
bash unset http_proxy unset https_proxy unset HTTP_PROXY unset HTTPS_PROXY