# 配置优化总结 ## ✅ 完成的改动 ### 1. 配置集中化 **文件**: `offline_tasks/config/offline_config.py` 新增默认参数配置: ```python # 默认参数配置(用于调试和生产) DEFAULT_LOOKBACK_DAYS = 30 # 默认回看天数(当前为30天,便于快速调试) DEFAULT_RECENT_DAYS = 7 # 默认最近天数 DEFAULT_I2I_TOP_N = 50 # 默认返回Top N个相似商品 DEFAULT_INTEREST_TOP_N = 1000 # 默认每个key返回Top N个商品 ``` **好处**: - ✅ 集中管理所有默认参数 - ✅ 调试环境使用小数值(30天),快速验证 - ✅ 生产环境只需修改配置文件一处 - ✅ 所有脚本自动使用统一配置 ### 2. 脚本更新 更新了所有脚本使用配置文件的默认值: | 脚本 | 更新内容 | |------|---------| | `i2i_swing.py` | 使用 `DEFAULT_LOOKBACK_DAYS`, `DEFAULT_I2I_TOP_N` | | `i2i_session_w2v.py` | 使用 `DEFAULT_LOOKBACK_DAYS`, `DEFAULT_I2I_TOP_N` | | `i2i_deepwalk.py` | 使用 `DEFAULT_LOOKBACK_DAYS`, `DEFAULT_I2I_TOP_N` | | `i2i_content_similar.py` | 使用 `DEFAULT_I2I_TOP_N` | | `interest_aggregation.py` | 使用 `DEFAULT_LOOKBACK_DAYS`, `DEFAULT_RECENT_DAYS`, `DEFAULT_INTEREST_TOP_N` | | `run_all.py` | 使用所有默认配置 | ### 3. .gitignore 文件 **文件**: `/home/tw/recommendation/.gitignore` 忽略以下内容: ``` # 数据文件 *.txt (除了 requirements.txt, COMMANDS.txt) *.csv *.json *.jsonl *.parquet *.pkl # 输出和临时文件 output/ logs/ models/ cache/ tmp/ # Python 相关 __pycache__/ *.pyc *.egg-info/ venv/ # IDE 相关 .vscode/ .idea/ .DS_Store ``` ## 📊 使用对比 ### 之前(硬编码) ```bash # 每次都要手动指定参数 python3 run_all.py --lookback_days 30 --top_n 50 # 不同脚本的默认值不统一,容易混淆 ``` ### 现在(配置化) ```bash # 使用配置文件的默认值(当前30天,调试快速) python3 run_all.py # 临时覆盖(不修改配置文件) python3 run_all.py --lookback_days 7 # 查看当前默认值 python3 run_all.py --help # 输出: --lookback_days (default: 30, adjust in offline_config.py) ``` ## 🎯 调试与生产切换 ### 当前配置(调试模式) ```python # config/offline_config.py DEFAULT_LOOKBACK_DAYS = 30 # 30天,快速验证 DEFAULT_RECENT_DAYS = 7 # 7天 ``` **运行效果**: - 数据量小,运行快(30-60分钟) - 内存占用低(2-4GB) - 适合验证流程和参数调优 ### 切换到生产(编辑配置文件) ```python # config/offline_config.py DEFAULT_LOOKBACK_DAYS = 730 # 2年,更准确 DEFAULT_RECENT_DAYS = 180 # 半年 ``` **运行效果**: - 数据量大,推荐质量高 - 运行时间长(6-10小时) - 内存占用高(8-16GB) - 适合生产环境 ## 🚀 快速开始 ### 第一步:快速验证(7天数据) ```bash cd /home/tw/recommendation/offline_tasks python3 run_all.py --lookback_days 7 --top_n 10 ``` ### 第二步:调试模式(使用默认30天) ```bash # 当前配置文件已设置为30天 python3 run_all.py ``` ### 第三步:生产模式 1. 编辑配置文件: ```bash vim config/offline_config.py # 修改: DEFAULT_LOOKBACK_DAYS = 730 # 修改: DEFAULT_RECENT_DAYS = 180 ``` 2. 运行: ```bash python3 run_all.py ``` ## 📝 新增文档 1. **UPDATE_CONFIG_GUIDE.md** - 配置调整详细指南 2. **.gitignore** - Git忽略规则 ## 🔍 验证配置 ```bash # 查看当前配置 cd /home/tw/recommendation/offline_tasks python3 -c "from config.offline_config import *; print(f'LOOKBACK_DAYS: {DEFAULT_LOOKBACK_DAYS}')" # 查看帮助 python3 run_all.py --help python3 scripts/i2i_swing.py --help python3 scripts/interest_aggregation.py --help ``` ## ✨ 主要优势 1. **集中管理** - 所有默认参数在一处配置 2. **调试友好** - 默认使用小数据量,快速验证 3. **灵活切换** - 调试/生产环境一键切换 4. **参数透明** - help信息显示默认值来源 5. **版本控制** - .gitignore防止数据文件被提交 ## 📌 注意事项 1. **首次运行建议使用小数据量**: ```bash python3 run_all.py --lookback_days 7 ``` 2. **配置文件修改后立即生效**: ```bash # 修改 offline_config.py 后 python3 run_all.py # 自动使用新配置 ``` 3. **临时参数不影响配置文件**: ```bash python3 run_all.py --lookback_days 100 # 仅本次有效 ``` ## 📅 更新日志 **日期**: 2025-10-16 **版本**: v1.2 **改动**: - ✅ 新增默认参数配置(DEFAULT_LOOKBACK_DAYS=30) - ✅ 更新所有6个脚本使用配置文件 - ✅ 创建 .gitignore 忽略数据和临时文件 - ✅ 新增配置调整指南文档 --- **配置文件**: `config/offline_config.py` **当前默认**: 30天调试模式 **生产建议**: 730天 **状态**: ✅ 已完成并测试