Skip to content

Latest commit

 

History

History
119 lines (87 loc) · 4.49 KB

File metadata and controls

119 lines (87 loc) · 4.49 KB

Rhyme — Technical Design

"History doesn't repeat itself, but it rhymes." — Mark Twain

Rhyme 是一个事件结构推演引擎。 它将历史事件编码为可计算的结构样本,对当前事件做结构匹配,输出分支概率和监控信号。

不是预测系统,不是报告生成器。是分析系统和 AI Agent 缺失的结构计算中间层。


文档导航

主题 位置 内容
设计哲学 design/philosophy.md 核心定位、设计原则、与 LLM 平台的差异
引擎边界 design/engine-boundary.md 三层架构(编码/引擎/消费)边界定义
领域插件架构 design/domain-as-plugin.md Domain-as-plugin 设计、目录结构
押韵度评分 rhymeness/README.md 三层评分总览
三层事件结构 rhymeness/event-structure-spec.md Tag Vector / Mechanism / Trajectory
评分算法 rhymeness/rhymeness-scoring-spec.md IDF-weighted Jaccard、槽位匹配
伪类比检测 rhymeness/break-rules-spec.md Hard break + soft break 规则
IDF 加权 rhymeness/idf-weighting.md 自动降权高频 tag
数据模型 rhymeness/data-models.md EventCard / EngineResult schema
领域规划 domains-spec.md 领域全景与扩展规划

三层架构

编码层(领域相关,事件无关)     引擎层(领域无关,事件无关)     消费层(应用相关)
domains/<domain>/               rhyme/core.py                   web/api.py
├── tags.yaml                   ├── match.py (三层评分)          ├── index.html
├── mechanism_enums.yaml        ├── filter.py (break rules)      ├── 对话
├── trajectory_enums.yaml       ├── reason.py (统计聚合)         └── 研判报告
├── break_rules.yaml            └── 0 LLM 依赖
└── events/*.yaml

铁律:引擎代码不包含领域特定的 tag 名、phase 名或解释性文本。所有领域知识在 domains/*/ YAML 配置中。


引擎 API

from rhyme import RhymeEngine

engine = RhymeEngine(domain="geopolitical")  # 加载领域配置 + 事件库
result = engine.match(event_card, top_k=10)  # 纯计算,~40ms

输出 EngineResult

  • ranking — 排序后的匹配列表(含 F/M/T 分解)
  • dangerous — 伪类比(被 break rules 标记)
  • blind_spots — 历史盲区(当前 >> 历史均值)
  • cluster — 主类比群(按机制侧面最佳匹配)
  • shared_mechanisms — 共性机制统计
  • break_frequency — break rule 触发频率

评分公式

rhymeness = 0.50 × feature_score + 0.30 × mechanism_score + 0.20 × trajectory_score − soft_penalty
  • feature_score: IDF-weighted Jaccard per layer
  • mechanism_score: 槽位匹配 + 语义距离组
  • trajectory_score: 有序距离(phase, escalation)
  • soft_penalty: 领域 break_rules.yaml 配置的扣分

当前数据

领域 事件 Tags Break Rules
geopolitical 81 61 3 hard + 9 soft
trade_sanctions 55 34 2 hard + 8 soft
asset_bubbles 44 44 2 hard + 8 soft
总计 180

新增领域只需添加 domains/<name>/ 目录,引擎代码 0 改动。


技术栈

组件 选型
语言 Python 3.9+
数据模型 Pydantic v2
事件库 YAML 文件 + 内存加载
引擎核心 纯 Python,0 外部依赖(除 pydantic/pyyaml)
LLM 编码 OpenAI-compatible API(adapter 层,可选)
Web UI FastAPI + 单页 HTML(消费层,可选)

延后(Phase 2+)

  • OutcomePattern + 二次匹配(差异条件 → 结果模式)
  • 概率预测 + Brier Score 校准
  • 多事件关联分析
  • GDELT/ACLED 自动事件发现
  • MCP tool / function call 接口

风险

风险 缓解
事件库 LLM 生成质量不稳定 专家校验 + 校准飞轮
编码稳定性(LLM 边界摇摆) seed + top_p 控制,0.3/0.7 边界已可接受
LLM 平台原生能力追赶 Rhyme 的价值在可复现+可审计,不在文本质量
市场极窄 定位为中间件/开源方法论,不做终端产品