157 lines
5.9 KiB
Markdown
157 lines
5.9 KiB
Markdown
|
|
# Phase R.0:RAG 现状与目标
|
|||
|
|
|
|||
|
|
日期:2026-04-03
|
|||
|
|
状态:已完成
|
|||
|
|
借鉴来源:VCPToolBox TagMemo V6 架构
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 1. 本阶段目的
|
|||
|
|
|
|||
|
|
本文件用于统一背景认知,明确:
|
|||
|
|
|
|||
|
|
- Jarvis 当前 RAG 架构处于什么水平
|
|||
|
|
- 主要短板是什么
|
|||
|
|
- 为什么要升级
|
|||
|
|
- 升级后的目标形态是什么
|
|||
|
|
- VCPToolBox 给我们什么启发
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 2. 当前 Jarvis RAG 架构
|
|||
|
|
|
|||
|
|
### 2.1 核心流程
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
用户上传文档 → DocumentService (解析/分块) → ChromaDB (向量存储) → KnowledgeService (检索)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2.2 核心文件
|
|||
|
|
|
|||
|
|
| 文件 | 职责 |
|
|||
|
|
|------|------|
|
|||
|
|
| `backend/app/services/document_service.py` | 文档上传/解析/分块 |
|
|||
|
|
| `backend/app/services/knowledge_service.py` | ChromaDB 向量检索/混合检索 |
|
|||
|
|
| `backend/app/models/document.py` | Document/DocumentChunk 数据模型 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 3. 当前能力矩阵
|
|||
|
|
|
|||
|
|
| 能力 | 状态 | 说明 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| 多格式文档解析 | ✅ | PDF/MD/TXT/DOCX/CSV/XLSX |
|
|||
|
|
| 结构化分块 | ✅ | 基于标题层级、表格、段落 |
|
|||
|
|
| 向量检索 | ✅ | ChromaDB 语义相似度 |
|
|||
|
|
| 关键词检索 | ✅ | SQL LIKE |
|
|||
|
|
| 混合检索 | ✅ | 向量 + 关键词加权 |
|
|||
|
|
| Rerank | ✅ | 语义分×0.7 + 关键词×0.2 + 标题×0.1 |
|
|||
|
|
| 上下文丰富 | ✅ | 自动获取前/后 chunk |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 4. 当前短板
|
|||
|
|
|
|||
|
|
| 短板 | 严重程度 | 影响 |
|
|||
|
|
|------|----------|------|
|
|||
|
|
| 无重叠分块 | 🟡 中 | 跨块边界信息丢失 |
|
|||
|
|
| 单索引架构 | 🟡 中 | 无法按知识类型/重要性分层 |
|
|||
|
|
| 无动态权重 | 🟡 中 | 检索策略静态,不适配查询类型 |
|
|||
|
|
| 无 Tag/标签系统 | 🟡 中 | 无法利用语义标签增强检索 |
|
|||
|
|
| 无懒加载机制 | 🟢 低 | 大量文档时内存占用高 |
|
|||
|
|
| 无遗忘机制 | 🟢 低 | 存储无限增长 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 5. VCPToolBox TagMemo V6 核心借鉴
|
|||
|
|
|
|||
|
|
### 5.1 核心架构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
日记文件变化 → TextChunker(Token感知分块85%+10%重叠)
|
|||
|
|
→ EmbeddingUtils(并发批量向量化)
|
|||
|
|
→ SQLite(元数据) + VexusIndex(Rust HNSW向量索引)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 5.2 TagMemo V6 检索流程
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
Query → EPA分析(逻辑深度L/共振R) → 残差金字塔 → TagBoost(β动态权重)
|
|||
|
|
→ LIF脉冲扩散(2跳) → 向量融合 → VexusIndex搜索
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 5.3 核心模块
|
|||
|
|
|
|||
|
|
| 模块 | 功能 |
|
|||
|
|
|------|------|
|
|||
|
|
| TextChunker | Token 感知分块,85% 安全边界 + 10% 重叠 |
|
|||
|
|
| EPA | 语义空间投影分析,识别逻辑深度和跨域共振 |
|
|||
|
|
| Residual Pyramid | 残差金字塔,多级剥离捕获微弱信号 |
|
|||
|
|
| TagBoost | 动态权重增强,根据查询特性调整 |
|
|||
|
|
| LIF Spike | 脉冲扩散,2跳拓扑联想 |
|
|||
|
|
| VexusIndex | Rust HNSW 向量索引,高性能检索 |
|
|||
|
|
|
|||
|
|
### 5.4 关键设计理念
|
|||
|
|
|
|||
|
|
1. **TagMemo 不是搜索引擎,是记忆联想引擎** - 模拟人类大脑的感知→编码→巩固→检索→重构
|
|||
|
|
2. **动态适配** - 根据查询意图动态调整检索策略
|
|||
|
|
3. **拓扑涌现** - 基于共现矩阵的脉冲扩散,产生非直观联想
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 6. 目标架构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
┌─────────────────────────────────────────────────────────────┐
|
|||
|
|
│ User Query │
|
|||
|
|
└─────────────────────────┬───────────────────────────────────┘
|
|||
|
|
│
|
|||
|
|
┌───────────┴───────────┐
|
|||
|
|
│ Query Analyzer │ ← R.3 新增
|
|||
|
|
│ (查询特性分析) │
|
|||
|
|
└───────────┬───────────┘
|
|||
|
|
│
|
|||
|
|
┌────────────────┼────────────────┐
|
|||
|
|
▼ ▼ ▼
|
|||
|
|
┌─────────┐ ┌───────────┐ ┌──────────────┐
|
|||
|
|
│ Default │ │ Important │ │ Code/Meeting │
|
|||
|
|
│ Collection│ │ Collection │ │ Collections │
|
|||
|
|
└────┬─────┘ └─────┬─────┘ └──────┬───────┘
|
|||
|
|
│ │ │
|
|||
|
|
└──────────────────┼─────────────────┘
|
|||
|
|
▼
|
|||
|
|
┌───────────────────────────┐
|
|||
|
|
│ Dynamic Reranker │ ← R.3 新增
|
|||
|
|
│ (Core Tag Boost + 动态权重)│
|
|||
|
|
└───────────────────────────┘
|
|||
|
|
│
|
|||
|
|
▼
|
|||
|
|
┌───────────────┐
|
|||
|
|
│ Search Result │
|
|||
|
|
└───────────────┘
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 7. 借鉴点映射
|
|||
|
|
|
|||
|
|
| VCPToolBox 借鉴点 | Jarvis 实现位置 | 优先级 |
|
|||
|
|
|-------------------|---------------|--------|
|
|||
|
|
| Token 感知分块(85%+10% 重叠) | `services/chunker.py` | 🟢 高 |
|
|||
|
|
| 多索引架构 | `services/multi_index.py` | 🟡 中 |
|
|||
|
|
| 懒加载 + LRU TTL | `services/multi_index.py` | 🟡 中 |
|
|||
|
|
| TagBoost 动态权重 | `services/dynamic_reranker.py` | 🟡 中 |
|
|||
|
|
| 核心标签系统(1.33x 加权) | `services/core_tag_search.py` | 🟡 中 |
|
|||
|
|
| 语义去重 | `services/deduplicator.py` | 🔴 低 |
|
|||
|
|
| 语义分桶 | `services/semantic_bucket.py` | 🔴 低 |
|
|||
|
|
| EPA 分析 | - | 🔴 探索 |
|
|||
|
|
| LIF 脉冲扩散 | - | 🔴 探索 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 8. 本阶段产出要求
|
|||
|
|
|
|||
|
|
- [x] 团队对 Jarvis 当前 RAG 问题和目标方向达成一致
|
|||
|
|
- [x] VCPToolBox 借鉴点已映射到具体 Phase
|
|||
|
|
- [x] 后续 phase 文档能够在这个认知基础上展开
|