多账号目录管理方案.md 4.6 KB

多账号目录管理方案

目录结构

data/
├── 账号/
│   ├── 阿里多多酱/                        # 账号目录
│   │   ├── what解构/                      # 当前帖子what解构(原始数据,不动)
│   │   ├── what解构_所有帖子/             # 过去帖子what解构(原始数据,不动)
│   │   ├── pattern/                       # pattern聚合结果(原始数据,不动)
│   │   │   └── cluster/
│   │   │       └── clustered_data.json
│   │   └── how解构/                       # 新增:所有输出结果
│   │       ├── intermediate/              # 中间结果
│   │       │   ├── 特征名称_分类映射.json
│   │       │   ├── 分类层级映射.json
│   │       │   ├── 特征名称_帖子来源.json
│   │       │   └── 当前帖子_解构任务列表.json
│   │       ├── results/                   # how解构最终结果
│   │       │   └── *_how.json
│   │       └── visualization/             # 可视化结果
│   │           └── how解构结果_可视化.html
│   │
│   └── 其他账号名/                        # 其他账号,结构相同
│       └── ...
│
└── config/
    └── accounts.json                      # 账号配置文件

核心设计原则

  1. 原始数据目录不动what解构/what解构_所有帖子/pattern/ 保持原样
  2. 输出统一管理:所有输出结果放到新增的 how解构/ 目录下
  3. 账号隔离:每个账号独立目录,互不影响
  4. 配置驱动:通过配置文件管理路径,支持批量处理

使用方式

1. 配置账号

编辑 config/accounts.json

{
  "accounts": [
    {
      "name": "阿里多多酱",
      "enabled": true,
      "description": "第一个测试账号"
    },
    {
      "name": "新账号名",
      "enabled": true,
      "description": "新增账号"
    }
  ],
  "default_account": "阿里多多酱"
}

2. 准备数据

确保账号目录下有以下原始数据:

  • what解构/ - 当前帖子解构结果
  • what解构_所有帖子/ - 过去帖子解构结果
  • pattern/cluster/clustered_data.json - pattern聚合结果

3. 运行处理脚本

方式一:处理单个账号

# 指定账号名
./script/data_processing/run_all_with_config.sh 阿里多多酱

# 或使用环境变量
ACCOUNT_NAME=阿里多多酱 ./script/data_processing/run_all_with_config.sh

方式二:批量处理所有启用的账号

./script/data_processing/run_all_with_config.sh --all

4. 查看结果

处理完成后,结果在 data/账号/<账号名>/how解构/ 目录下:

  • intermediate/ - 中间结果文件
  • results/ - how解构结果
  • visualization/ - 可视化HTML文件

Python脚本中使用

所有Python脚本都应该使用 PathConfig 类来管理路径:

from path_config import PathConfig

# 获取路径配置
config = PathConfig()  # 使用默认账号或环境变量
# 或指定账号
config = PathConfig(account_name="阿里多多酱")

# 使用路径
input_file = config.pattern_cluster_file
output_file = config.feature_category_mapping_file

# 确保输出目录存在
config.ensure_dirs()

路径配置说明

PathConfig 类提供的主要属性:

输入路径

  • current_posts_dir - 当前帖子目录
  • historical_posts_dir - 过去帖子目录
  • pattern_cluster_file - pattern聚合文件

输出路径

  • intermediate_dir - 中间结果目录
  • feature_category_mapping_file - 特征分类映射文件
  • category_hierarchy_file - 分类层级映射文件
  • feature_source_mapping_file - 特征来源映射文件
  • task_list_file - 任务列表文件
  • how_results_dir - how解构结果目录
  • visualization_dir - 可视化目录
  • visualization_file - 可视化HTML文件

优势

  1. 原始数据安全:不修改原始数据目录,只新增输出目录
  2. 易于扩展:添加新账号只需创建目录和添加配置
  3. 批量处理:支持一键处理所有账号
  4. 配置灵活:通过配置文件轻松调整路径结构
  5. 代码复用:所有脚本使用统一的路径管理类

注意事项

  1. 新增账号时,确保账号目录下有完整的原始数据
  2. 运行脚本前会自动验证输入路径是否存在
  3. 输出目录会自动创建,无需手动创建
  4. 可以通过环境变量 ACCOUNT_NAME 指定账号,方便在CI/CD中使用