本项目支持将数据目录独立于代码目录,并自动使用项目文件夹名称作为输出版本标识,实现不同代码版本的输出隔离。
支持三种方式配置数据根目录(优先级从高到低):
# 临时设置
DATA_ROOT=~/Documents/账号数据 ./script/data_processing/run_all_with_config.sh 阿里多多酱1
# 永久设置(添加到 ~/.zshrc 或 ~/.bashrc)
export DATA_ROOT=~/Documents/账号数据
编辑 config/accounts.json:
{
"data_root": "~/Documents/账号数据", // 支持 ~、绝对路径、相对路径
...
}
如果不配置,默认使用项目内的 data/ 目录。
默认行为:自动使用项目根目录名称作为输出版本
例如:
how_1124_v1 → 输出版本:how_1124_v1how_1121_v2 → 输出版本:how_1121_v2覆盖方式(优先级从高到低):
通过环境变量:
OUTPUT_VERSION=experiment_weighted ./script/data_processing/run_all_with_config.sh 阿里多多酱1
json
{
"output_version": "custom_version_name",
...
}
通过代码参数:
config = PathConfig(account_name="阿里多多酱1", output_version="v1_baseline")
```
~/Desktop/workspace/daily/1113/ ├── how_1120_v1/ # 项目版本1 ├── how_1121_v2/ # 项目版本2 └── how_1124_v1/ # 项目版本3(当前)
~/Documents/账号数据/ └── 账号/
└── 阿里多多酱1/
├── what单独解构/ # 输入:当前帖子
├── 用于pattern聚类/ # 输入:历史帖子
├── pattern相关文件/ # 输入:pattern聚合
│
└── how解构_outputs/ # 输出(按版本隔离)
├── how_1120_v1/ # 版本1的输出
│ ├── intermediate/
│ ├── results/
│ └── visualization/
│
├── how_1121_v2/ # 版本2的输出
│ └── ...
│
├── how_1124_v1/ # 版本3的输出
│ └── ...
│
└── latest -> how_1124_v1/ # 软链接(可选)
## 使用场景
### 场景1: 默认使用(项目内数据)
```bash
cd ~/Desktop/workspace/daily/1113/how_1124_v1
./script/data_processing/run_all_with_config.sh 阿里多多酱1
# 数据路径:
# 输入:./data/账号/阿里多多酱1/what单独解构/
# 输出:./data/账号/阿里多多酱1/how解构_outputs/how_1124_v1/
# 一次性设置
export DATA_ROOT=~/Documents/账号数据
cd ~/Desktop/workspace/daily/1113/how_1124_v1
./script/data_processing/run_all_with_config.sh 阿里多多酱1
# 数据路径:
# 输入:~/Documents/账号数据/账号/阿里多多酱1/what单独解构/
# 输出:~/Documents/账号数据/账号/阿里多多酱1/how解构_outputs/how_1124_v1/
# 终端1:运行旧版本
cd ~/Desktop/workspace/daily/1113/how_1120_v1
DATA_ROOT=~/Documents/账号数据 ./script/data_processing/run_all_with_config.sh 阿里多多酱1
# 输出到:~/Documents/账号数据/账号/阿里多多酱1/how解构_outputs/how_1120_v1/
# 终端2:同时运行新版本
cd ~/Desktop/workspace/daily/1113/how_1124_v1
DATA_ROOT=~/Documents/账号数据 ./script/data_processing/run_all_with_config.sh 阿里多多酱1
# 输出到:~/Documents/账号数据/账号/阿里多多酱1/how解构_outputs/how_1124_v1/
# 两个版本互不干扰!
# 强制使用自定义版本名
OUTPUT_VERSION=experiment_20241124 ./script/data_processing/run_all_with_config.sh 阿里多多酱1
# 输出到:.../how解构_outputs/experiment_20241124/
# 查看所有版本
ls ~/Documents/账号数据/账号/阿里多多酱1/how解构_outputs/
# 输出:
# how_1120_v1/
# how_1121_v2/
# how_1124_v1/
# 打开旧版本的可视化
open ~/Documents/账号数据/账号/阿里多多酱1/how解构_outputs/how_1120_v1/visualization/how解构结果_可视化.html
# 打开最新版本的可视化
open ~/Documents/账号数据/账号/阿里多多酱1/how解构_outputs/how_1124_v1/visualization/how解构结果_可视化.html
运行以下命令查看当前配置:
python script/data_processing/path_config.py
输出示例:
============================================================
项目根目录: /Users/semsevens/Desktop/workspace/daily/1113/how_1124_v1
项目名称: how_1124_v1
数据根目录: /Users/semsevens/Desktop/workspace/daily/1113/how_1124_v1/data
输出版本: how_1124_v1
账号: 阿里多多酱1
过滤模式: exclude_current_posts
账号根目录: .../data/账号/阿里多多酱1
输入路径:
当前帖子目录: .../what单独解构
过去帖子目录: .../用于pattern聚类
pattern聚合文件: .../pattern相关文件/optimization/...
输出路径:
中间结果目录: .../how解构_outputs/how_1124_v1/intermediate
how解构结果目录: .../how解构_outputs/how_1124_v1/results
可视化结果目录: .../how解构_outputs/how_1124_v1/visualization
============================================================
完整的 config/accounts.json 配置示例:
{
"data_root": "data",
"accounts": [
{
"name": "阿里多多酱1",
"enabled": true,
"description": "主账号"
}
],
"default_account": "阿里多多酱1",
"filter_mode": "exclude_current_posts",
"paths": {
"account_base": "账号",
"input": {
"current_posts": "what单独解构",
"historical_posts": "用于pattern聚类",
"pattern_cluster": "pattern相关文件/optimization/optimized_clustered_data_gemini-3-pro-preview.json"
},
"output": {
"intermediate": "how解构_outputs/{version}/intermediate",
"how_results": "how解构_outputs/{version}/results",
"visualization": "how解构_outputs/{version}/visualization"
}
}
}
data/ 目录(默认)DATA_ROOT 环境变量,指向独立数据目录how_MMDD_v{N}# 1. 创建新的数据目录
mkdir -p ~/Documents/账号数据/账号
# 2. 移动数据
mv data/账号/* ~/Documents/账号数据/账号/
# 3. 设置环境变量
export DATA_ROOT=~/Documents/账号数据
# 4. 验证
python script/data_processing/path_config.py
# 删除特定版本
rm -rf ~/Documents/账号数据/账号/阿里多多酱1/how解构_outputs/how_1120_v1/
# 只保留最新3个版本(示例)
cd ~/Documents/账号数据/账号/阿里多多酱1/how解构_outputs/
ls -t | tail -n +4 | xargs rm -rf
{
"data_root": "${HOME}/Documents/账号数据"
}
注意:需要使用 ${VAR} 格式,不是 $VAR。