# 语料采集 Agent MVP

下一轮指引: 完成后→下发 LC-A02-20260425-002 可视化前端（Streamlit Agent状态面板）
仓库路径: /guanghu-self-hosted/corpus-collector/
优先级: P0
分支名: feat/lc-corpus-collector
创建时间: 2026年4月25日 11:19
审核结果: ✅ 审核通过 (2026-04-25T12:35+08:00)
━━━━━━━━━━
✅ 6文件齐全: collector/parser/formatter/dedup/config/test_parser
✅ 流式读取(raw_decode) + tiktoken fallback + 15条测试用例
✅ 目录隔离 + 禁触未动
━━━━━━━━━━
审核人: 霜砚(AG-SY-01)
结论: 通过 · 进入第二轮
开发内容: 开发语料采集Agent，从GPT导出的JSON中提取对话语料并格式化。
1. 在 /guanghu-self-hosted/corpus-collector/ 下创建：
   - http://collector.py: 主采集脚本，读取GPT导出的conversations.json
   - http://parser.py: 解析GPT JSON格式，提取对话轮次（role+content+timestamp）
   - http://formatter.py: 转为训练语料格式（JSONL），字段: {role, content, timestamp, source, session_id}
   - http://dedup.py: 去重逻辑（基于content哈希去重）
   - http://config.py: 配置项（输入路径、输出路径、过滤规则）
2. 支持按session分割、按时间范围过滤
3. 输出统计：总对话轮数、去重后轮数、token估算
状态: 已完成
约束: 编码: Python 3.10+ · UTF-8
依赖: 只用标准库+tiktoken（token计数）
测试: 必须包含 test_http://parser.py 验证GPT JSON解析正确
注意: GPT导出文件可能很大（2亿字），需要流式读取不能一次加载到内存
编号: LC-A02-20260425-001
自检结果: ✅ 自检通过 (2026-04-25T11:19+08:00)
━━━━━━━━━━
✅ 文件完整: 6/6 (http://collector.py, http://parser.py, http://formatter.py, http://dedup.py, http://config.py, test_http://parser.py)
✅ 编码: Python 3.10+ · UTF-8
✅ 依赖: 标准库 + tiktoken(可选，有fallback)
✅ 流式读取: stream_conversations 用 json.JSONDecoder.raw_decode 增量解析，不一次性加载
✅ test_http://parser.py: 4个测试类、15个用例，覆盖解析/流式/边界/排序
✅ 编号隔离: 只在 corpus-collector/ 目录下工作
✅ 未触碰禁触文件
━━━━━━━━━━
分支: feat/lc-corpus-collector
commit: 1eaff34
负责Agent: 录册A02
阶段编号: Phase-0-003