# 维度提取与主题修正系统 - 完整使用流程

## 系统概述

本系统实现了从用户报告中提取维度，并用维度分析来修正YouTube搜索主题（themes）的完整流程。

**核心流程**：
1. 用户写日报/周报/月报（自然语言）
2. LLM从报告中提取维度
3. 维度分析与现有themes对比
4. 生成themes修正建议（添加/删除themes）
5. 用户确认后更新themes.yaml

## 文件说明

### 核心工具脚本

1. **`write_report.py`** - 报告编写工具
   - 创建日报/周报/月报
   - 交互式输入，保存为Markdown格式

2. **`extract_dimensions.py`** - 维度提取工具
   - 从报告中用LLM提取维度
   - 批量处理报告文件

3. **`manage_themes.py`** - 主题管理工具
   - 管理themes.yaml文件
   - 添加/删除/查看themes

4. **`analyze_dimensions.py`** - 主分析工具
   - 整合维度提取和分析
   - 生成themes修正建议
   - 支持交互式确认和应用

### 数据文件结构

```
Personal_Information_Signaling_System/
├── themes.yaml                    # 用户设置的搜索主题
├── archive/
│   ├── reports/                   # 用户报告（Markdown）
│   │   ├── daily/                 # 日报
│   │   ├── weekly/                # 周报
│   │   └── monthly/               # 月报
│   ├── dimensions/                # 维度提取结果
│   │   └── YYYY-MM-DD_type_dimensions.json
│   └── dimension_analysis/        # 分析报告
│       └── YYYY-MM-DD_analysis.json
```

## 完整使用流程

### 步骤1：写报告

使用 `write_report.py` 创建报告：

```bash
python write_report.py
```

选择操作：
- 1. 创建日报
- 2. 创建周报
- 3. 创建月报

输入报告内容（自然语言，Markdown格式），系统会自动保存。

**或者**：直接在 `archive/reports/` 目录下创建/编辑 `.md` 文件：
- 日报：`YYYY-MM-DD.md`
- 周报：`YYYY-Www.md`
- 月报：`YYYY-MM.md`

### 步骤2：提取维度

从报告中提取维度：

```bash
# 提取所有报告的维度
python extract_dimensions.py

# 只提取日报的维度
python extract_dimensions.py --report-type daily

# 提取单个报告文件的维度
python extract_dimensions.py --report-file archive/reports/daily/2025-12-28.md
```

提取结果保存在 `archive/dimensions/` 目录。

### 步骤3：分析维度并生成themes建议

运行主分析工具：

```bash
# 基本分析（加载已有提取结果）
python analyze_dimensions.py

# 重新提取维度并分析
python analyze_dimensions.py --extract

# 交互模式（查看并处理建议）
python analyze_dimensions.py --interactive

# 组合使用
python analyze_dimensions.py --extract --interactive
```

### 步骤4：管理themes（可选）

手动管理themes：

```bash
# 交互式管理
python manage_themes.py

# 命令行操作
python manage_themes.py --list              # 列出所有themes
python manage_themes.py --add "健康"        # 添加theme
python manage_themes.py --remove "娱乐"     # 删除theme
```

## 主题修正判断标准

### 添加Theme建议

条件：
- 维度在提取结果中出现频率 ≥ 50%
- 最近30天内出现次数 ≥ 3次
- 该维度不在现有themes中

### 删除Theme建议

条件：
- Theme在提取维度中的匹配率 < 10%
- 持续时间 ≥ 60天
- 过去90天内的匹配次数很少

## 典型工作流程

### 日常使用

```bash
# 1. 每天写日报
python write_report.py
# 选择 1，输入今天的内容

# 2. 每周提取一次维度
python extract_dimensions.py

# 3. 分析并查看建议
python analyze_dimensions.py --extract --interactive
```

### 初次设置

```bash
# 1. 设置初始themes（手动编辑themes.yaml或使用工具）
python manage_themes.py

# 2. 写几篇报告
python write_report.py

# 3. 提取维度
python extract_dimensions.py

# 4. 分析并应用建议
python analyze_dimensions.py --extract --interactive
```

## 配置要求

### LLM配置

需要在 `.env` 文件中配置LLM（用于维度提取）：

```env
LLM_API_KEY=your-api-key
LLM_MODEL=qwen-plus
LLM_BASE_URL=https://api-inference.modelscope.cn/v1/
LLM_PROVIDER=modelscope
```

### Themes配置

`themes.yaml` 文件格式：

```yaml
themes:
  - mcp
  - agent
  - rag
  - money
  - AI
```

## 输出文件说明

### 维度提取结果

`archive/dimensions/YYYY-MM-DD_type_dimensions.json`:

```json
{
  "report_date": "2025-12-28",
  "report_type": "daily",
  "report_file": "archive/reports/daily/2025-12-28.md",
  "extracted_dimensions": ["健康", "情绪", "工作"],
  "confidence": 0.85,
  "extraction_date": "2025-12-28T10:00:00Z"
}
```

### 分析报告

`archive/dimension_analysis/YYYY-MM-DD_analysis.json`:

包含维度统计、themes匹配分析、修正建议等信息。

## 注意事项

1. **首次使用**：需要先写几篇报告，然后提取维度，才能生成有意义的建议
2. **LLM配置**：维度提取需要LLM，确保已配置API Key
3. **报告格式**：报告使用Markdown格式，可以包含标题、段落、列表等
4. **维度提取**：每次运行 `extract_dimensions.py` 会重新提取，提取结果会覆盖之前的文件
5. **Themes更新**：建议在交互模式下仔细审查每个建议，确认后再应用

## 故障排除

### LLM初始化失败

- 检查 `.env` 文件中的API Key配置
- 确认网络连接正常
- 检查API配额是否充足

### 没有提取到维度

- 确认报告文件存在且内容不为空
- 检查报告文件格式是否正确
- 尝试单独提取一个报告文件查看错误信息

### 没有生成建议

- 确认有足够的提取结果（建议至少3-5个报告）
- 检查themes是否已设置
- 查看分析报告中的统计信息

