60 lines
1.5 KiB
Markdown
60 lines
1.5 KiB
Markdown
# 2026-05-11
|
||
|
||
## 纪要
|
||
|
||
- AI 规则引擎项目启动
|
||
- MVP 实现完成并提交
|
||
|
||
## 决策
|
||
|
||
### AI 规则引擎技术选型
|
||
- **技术栈**: Python 3.10+ / SQLite / REST API / 本地运行
|
||
- **AI 编译器**: GPT-4o / Claude Sonnet
|
||
- **安全隔离**: RestrictedPython
|
||
- **规则形式**: Python 函数 + 安全隔离执行
|
||
|
||
**为什么方案 A(轻量级自研)而非方案 B(规则引擎库)?**
|
||
- AI 生成 Python 函数链路最短,灵活度最高
|
||
- MVP 阶段快速验证核心价值
|
||
- 后续可按需替换执行层
|
||
|
||
### 核心功能优先级
|
||
1. SQLite 存储层
|
||
2. 基础 REST API
|
||
3. LLM 编译器
|
||
4. RestrictedPython 执行器
|
||
5. 基础规则校验
|
||
6. 冲突检测(简化版)
|
||
|
||
### 冗余处理范围
|
||
- 规则去重(embedding 相似度)
|
||
- 规则冲突检测(真值表分析)
|
||
- LLM Callback 兜底(无匹配时自动补充规则)
|
||
|
||
## 问题与修复
|
||
|
||
### 冲突检测字段提取修复
|
||
- **问题**: 正则表达式 `facts\.get` 无法匹配 `f.get`
|
||
- **修复**: 改为 `\.\s*get\s*\(` 同时匹配 `f.get` 和 `facts.get`
|
||
- **提交**: 0e37c30
|
||
|
||
## MVP 完成
|
||
|
||
| 批次 | 状态 | 提交 |
|
||
|------|------|------|
|
||
| 1. 基础设施 | ✅ | e39829f |
|
||
| 2. REST API | ✅ | e39829f |
|
||
| 3. LLM 编译器 | ✅ | e39829f |
|
||
| 4. 规则执行器 | ✅ | e39829f |
|
||
| 5. 规则校验与兜底 | ✅ | e39829f |
|
||
| 6. 冲突检测 | ✅ | 0e37c30 |
|
||
| 文档 | ✅ | 0e37c30 |
|
||
| 集成测试 | ✅ | 0e37c30 |
|
||
|
||
## 待办
|
||
|
||
- [x] Phase 2: 编写实现计划
|
||
- [x] Phase 3: TDD 实现
|
||
- [ ] 规则去重(embedding 相似度)
|
||
- [ ] Web 管理界面
|