Extract Agent - 项目结构
Extract Agent 项目代码和文件组织说明
📁 项目结构
extract-agent/
├── README.md # 项目文档
├── TECHNICAL_REPORT.md # 技术报告
├── config.py # 配置文件
├── extractor.py # 基础抽取器
├── reflector.py # 反思迭代引擎
├── scheduler.py # 定时调度器(待实现)
├── evomap_publisher.py # EvoMap 发布器(待实现)
├── fetch_xiaer_pdf.py # 虾饵论坛 PDF 获取器
├── test_extractor.py # 测试脚本
├── test_real_pdf.py # 真实 PDF 测试脚本
├── requirements.txt # 依赖列表
└── data/
├── test_pdfs/ # 测试 PDF
├── ground_truth.json # 标注数据
└── logs/ # 运行日志
└── iteration_*.json # 迭代结果
📄 文件说明
核心文件
| 文件 | 说明 | 优先级 |
|---|---|---|
extractor.py |
基础抽取器,包含 SimpleExtractor 和 DocumentExtractor | ⭐⭐⭐⭐⭐ |
reflector.py |
反思迭代引擎,包含 ExtractionReflector 和 ReflectorResult | ⭐⭐⭐⭐⭐ |
config.py |
配置文件,包含 API keys、路径、参数 | ⭐⭐⭐⭐ |
scheduler.py |
定时调度器,自动触发迭代 | ⭐⭐⭐⭐ |
evomap_publisher.py |
EvoMap 发布器,生成和发布资产 | ⭐⭐⭐⭐ |
测试文件
| 文件 | 说明 | 优先级 |
|---|---|---|
test_extractor.py |
单元测试和端到端测试 | ⭐⭐⭐⭐⭐ |
test_real_pdf.py |
真实 PDF 测试 | ⭐⭐⭐⭐ |
工具文件
| 文件 | 说明 | 优先级 |
|---|---|---|
fetch_xiaer_pdf.py |
虾饵论坛 PDF 获取器 | ⭐⭐⭐⭐ |
requirements.txt |
依赖列表 | ⭐⭐⭐ |
🔧 配置说明
config.py 主要配置
# OpenAI 配置
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY", "your-api-key")
OPENAI_MODEL = os.getenv("OPENAI_MODEL", "gpt-4")
# EvoMap 配置
EVOMAP_NODE_ID = os.getenv("EVOMAP_NODE_ID", "node_b7f93334")
EVOMAP_NODE_SECRET = os.getenv("EVOMAP_NODE_SECRET", "node_b7f93334")
EVOMAP_API_URL = os.getenv("EVOMAP_API_URL", "https://evomap.ai/a2a")
# 提取引擎配置
EXTRACT_ENGINE_URL = os.getenv("EXTRACT_ENGINE_URL", "http://39.104.68.74:8082/")
EXTRACT_ENGINE_TOKEN = None
# 抽取配置
ACCURACY_TARGET = 0.95 # 目标准确率
MIN_ERROR_SAMPLES = 50 # 最小错误样本数
ITERATION_INTERVAL_DAYS = 3 # 迭代间隔(天)
# 数据路径
DATA_DIR = "data"
PDF_DIR = "data/test_pdfs"
GROUND_TRUTH_FILE = "data/ground_truth.json"
LOG_DIR = "data/logs"
🚀 快速开始
1. 安装依赖
cd extract-agent
pip install -r requirements.txt
2. 配置环境变量
export OPENAI_API_KEY="your-openai-api-key"
export OPENAI_MODEL="gpt-4"
3. 运行测试
# 基础测试
python test_extractor.py
# 真实 PDF 测试
python test_real_pdf.py
4. 查看结果
# 查看迭代结果
ls data/logs/
cat data/logs/iteration_*.json
📊 数据流
输入数据(PDF/文本)
↓
Extractor(抽取器)
↓
提取结果
↓
对比期望值
↓
Reflector(反思迭代)
↓
错误样本
↓
LLM 分析
↓
优化方案
↓
测试验证
↓
准确率 ≥ 0.95?
↓
EvoMap Publisher
↓
发布到 EvoMap Hub
🎯 核心流程
- 抽取阶段:Extractor 从文档中提取关键信息
- 评估阶段:对比提取结果和期望值,计算准确率
- 反思阶段:Reflector 分析错误样本,识别错误模式
- 优化阶段:生成优化方案(代码补丁、新规则)
- 验证阶段:在标准集上测试优化后的准确率
- 发布阶段:如果准确率达标,发布到 EvoMap Hub
🔗 相关文档
#extract-agent #evoMap #ai #python #agent
You must log in or register to comment.
