Deep Thought 代码库地图
最后更新:2026-05-27(Phase 1-5 完成,127 测试通过)
项目结构
deep-thought/
├── src/deep_thought/ # 源代码
│ ├── core/ # 基础设施层
│ ├── models/ # ORM + Pydantic 模型
│ ├── stores/ # 数据访问层
│ ├── engines/ # 六大引擎
│ │ ├── narrative/ # 引擎1: 叙事发现
│ │ ├── data/ # 引擎2: 数据采集
│ │ ├── sentiment/ # 引擎3: 市场情绪
│ │ └── think_tank/ # 引擎4: 智库
│ ├── engines/mismatch/ # 引擎5: 错配检测 (Phase 6)
│ ├── engines/memory/ # 引擎6: 记忆系统 (Phase 7)
│ └── main.py # 入口
├── tests/ # 测试
├── defaults/ # 默认配置模板
└── scripts/ # 工具脚本文件 ↔ 功能映射
基础设施层 (core/)
| 文件 | 功能 | Phase |
|---|---|---|
config.py | Settings 类,YAML 配置加载,~/.deep-thought/ 数据目录管理 | 1 |
core/db.py | pgembed 嵌入式 PostgreSQL 连接管理,init_db/shutdown_db/get_session | 1 |
core/event_bus.py | 异步 EventBus(pub/sub)+ DBEventStore 持久化,Event 模型 | 1 |
core/llm.py | LLMClient 封装 LiteLLM,generate/generate_json,多 provider 路由,重试 | 1 |
模型层 (models/)
| 文件 | 功能 | Phase |
|---|---|---|
models/enums.py | 16 个业务枚举:NarrativeStatus, MacroRegime, TrendDirection, DataSource 等 | 1 |
models/orm.py | 13 个 SQLAlchemy ORM 表:EventRow, NarrativeRow, JudgmentRow 等 | 1 |
models/narrative.py | 叙事 Pydantic 模型:NewsArticle, NarrativeProposition, MatchResult, ExtractionResult | 2 |
数据访问层 (stores/)
| 文件 | 功能 | Phase |
|---|---|---|
stores/narrative_store.py | 叙事 CRUD + pgvector 语义搜索 + 边关系 + 按状态查询 | 1+2 |
stores/indicator_store.py | 指标快照 CRUD:save/get_latest/get_history | 1 |
stores/sentiment_store.py | 情绪快照 CRUD:save/get_latest | 1 |
stores/judgment_store.py | 判断 CRUD + mismatch 保存 + 验证附加 | 1 |
引擎1: 叙事发现 (engines/narrative/)
| 文件 | 功能 | Phase |
|---|---|---|
__init__.py | NarrativeDiscoveryEngine 编排器:提取→匹配→创建/更新→状态评估 | 2 |
extractor.py | NarrativeExtractor — LLM 从新闻提取结构化叙事命题 | 2 |
matcher.py | NarrativeMatcher(pgvector 三档匹配)+ EmbeddingProvider | 2 |
state_machine.py | NarrativeStateMachine — candidate→active→fading→archived + rejected | 2 |
merge_split.py | MergeSplitDetector — 语义聚类合并 + 情绪分化分裂检测 | 2 |
feed_reader.py | FeedReader — RSS feed 解析 + HTML 清理 + URL 去重 | 2 |
引擎2: 数据采集 (engines/data/)
| 文件 | 功能 | Phase |
|---|---|---|
__init__.py | DataCollectionEngine 编排器:并行采集 + 降级 + 快照存储 + 异常检测 | 3 |
providers/__init__.py | DataProvider Protocol + IndicatorValue/DataRequest/DataResponse 模型 | 3 |
providers/binance.py | BinanceProvider(ccxt async):资金费率、持仓量、成交量、大单比例 | 3 |
calculator.py | IndicatorCalculator — Z-score、百分位、趋势、异常标记 | 3 |
scheduler.py | DataScheduler — APScheduler 分频率采集调度 | 3 |
引擎3: 市场情绪 (engines/sentiment/)
| 文件 | 功能 | Phase |
|---|---|---|
__init__.py | 情绪模型(Retail/Media/Institutional/Snapshot)+ 极端检测(check_extreme) | 4 |
retail.py | RetailSentimentCollector — alternative.me Fear & Greed API | 4 |
media.py | MediaSentimentCollector — LLM 新闻标题批量打分 | 4 |
engine.py | SentimentEngine 编排器:并行采集 + 极端检测 + 快照存储 | 4 |
引擎4: 智库 (engines/think_tank/)
| 文件 | 功能 | Phase |
|---|---|---|
__init__.py | 数据模型:PersonaConfig, PersonaJudgment, AnalysisContext, DebateChallenge, JudgmentSynthesis | 5 |
persona_manager.py | PersonaManager — 加载配置/同步 DB/版本管理/权重查询 | 5 |
analyzer.py | PersonaAnalyzer — 单个 Persona LLM 独立分析,结构化输出 | 5 |
debate.py | DebateEngine — 分歧检测 + 单轮质疑-回应辩论 | 5 |
ensemble.py | EnsembleSynthesizer — 加权投票 + 共识度 + 场景合并 | 5 |
engine.py | ThinkTankEngine 编排器:加载→并行分析→辩论→合成→存储 | 5 |
入口与脚本
| 文件 | 功能 | Phase |
|---|---|---|
main.py | 应用入口:加载配置、初始化 DB/EventBus/LLM、等待关闭信号 | 1 |
scripts/init_deep_thought.py | 初始化脚本:创建数据目录、复制默认配置、创建表 | 1 |
配置模板 (defaults/)
| 文件 | 功能 | Phase |
|---|---|---|
settings.yaml | 多 provider LLM 配置、task_models 路由 | 1 |
personas.yaml | Persona 启用/禁用、per-persona 模型分配 | 1 |
data_sources.yaml | API key 模板(Binance/OpenBB/IBKR/Longbridge) | 1 |
测试 (tests/)
| 文件 | 测试数 | 覆盖范围 | Phase |
|---|---|---|---|
tests/unit/test_config.py | 6 | Settings 加载、目录创建、模型路由 | 1 |
tests/unit/test_enums.py | 5 | 枚举值、str 继承 | 1 |
tests/unit/test_event_bus.py | 4 | pub/sub、错误隔离 | 1 |
tests/unit/test_llm.py | 3 | 模型解析、task/persona 路由 | 1 |
tests/integration/test_db.py | 2 | pgembed + ORM CRUD | 1 |
tests/unit/test_narrative_models.py | 7 | Pydantic 校验、边界值 | 2 |
tests/unit/test_state_machine.py | 10 | 全部状态转换 + 边界 | 2 |
tests/unit/test_merge_split.py | 6 | cosine similarity、聚类、std | 2 |
tests/unit/test_feed_reader.py | 3 | FeedSource、HTML 清理 | 2 |
tests/integration/test_narrative_engine.py | 8 | 完整 pipeline(mock LLM + real DB) | 2 |
tests/unit/test_data_calculator.py | 18 | Z-score、百分位、趋势、异常、enrich | 3 |
tests/unit/test_data_providers.py | 8 | IndicatorValue/DataRequest/DataResponse | 3 |
tests/integration/test_data_engine.py | 7 | 引擎集成(存储/事件/降级/超时/异常) | 3 |
tests/unit/test_sentiment_models.py | 14 | 模型构造/校验/嵌套访问/极端检测 | 4 |
tests/integration/test_sentiment_engine.py | 7 | 引擎集成(存储/事件/极端/降级) | 4 |
tests/unit/test_think_tank.py | 19 | 模型/ensemble 合成/辩论逻辑 | 5 |
tests/integration/test_think_tank_engine.py | 4 | 引擎集成(完整 pipeline) | 5 |
| 总计 | 127 |
引擎间数据流
新闻 RSS ──→ 叙事发现 ──→ narrative_events
│
Binance API ──→ 数据采集 ──→ indicator_snapshots
│
Fear&Greed + LLM ──→ 情绪引擎 ──→ sentiment_snapshots
│
▼
智库(Persona 分析 + 辩论)
│
▼
judgments
│
▼
错配检测 (Phase 6)
│
▼
mismatch_scores待实现
| 引擎 | Phase | 状态 |
|---|---|---|
| 错配检测 + 合成层 | 6 | 待开发 |
| 自动化运行 + 记忆系统 | 7 | 待开发 |
| OpenBB 数据源 | 3+ | 计划内跳过 |
| 社交媒体情绪 | 4 | 计划内跳过 |
| IBKR/Longbridge | 3+ | 计划内跳过 |