Some checks failed
Sync to Gitee / sync (push) Has been cancelled
Submit the formed RAG documentation set produced across Sprint-1/2/3 (WS-12 through WS-26) under docs/rag/. Includes: - README.md / INDEX.md: landing + total index (responsibility matrix, review verdicts, dual-link to source issues) - overview/: full-pipeline architecture (4 .mmd diagrams), 11-stage boundary contracts, doc map, source-code inventory - pipeline/: 5 deep-dives (Loader/Parser/Chunking, Embedding, VDB & retrieval, GraphRAG, Rerank/Prompt/LLM) - graphrag/, end-to-end/: v1.0 formal versions with full source retained as reference - evolution/: 11 architecture-refactor proposals, 6-direction roadmap, capability map - review/: S3-T1 / S3-T2 final reviews, S2-T7 final summary - _indexes/: glossary (81 terms), source->doc reverse index, chart index - _release/: v1.0-RC1 release manifest, versioning convention, ops & freshness plan - _meta/README.md: placeholder noting WS-12 governance assets gap Aggregate review score 92.6/100 (8/8 PASS, 31/31 source-code spot checks hit). The legacy docs/ ignore in .gitignore is narrowed to docs/* with an explicit allowlist for docs/rag/. Refs: WS-26 Co-authored-by: multica-agent <github@multica.ai>
14 KiB
14 KiB
MemoryBear RAG · 关键术语表
合并 Sprint-1 / Sprint-2 / Sprint-3 各文档术语,按字母顺序排列。 每个术语注明:含义 + 在 MemoryBear 代码中的对应位置 + 出现的文档。
A
| 术语 | 含义 | 代码位置 | 出现文档 |
|---|---|---|---|
| ASR | Automatic Speech Recognition,语音转文字。MemoryBear 中通过 seq2txt_model.transcription 调用(QWenSeq2txt 带时间戳,GPTSeq2txt 用 Whisper) |
rag/llm/sequence2txt_model.py:1-215 |
S2-T1, S2-T5 |
| Autopilot | 工作空间内的"按时触发 / 按事件触发"自动化代理;与 multica autopilot 命令族对应 |
— | 平台机制(项目 SOP) |
B
| 术语 | 含义 | 代码位置 | 出现文档 |
|---|---|---|---|
| BaseVector | VDB 抽象基类(仅定义抽象方法,目前唯一实现为 ElasticSearchVector) |
rag/vdb/vector_base.py:9 |
S1-T3, S2-T3, S3-T1 |
| BM25 | Best Match 25,全文检索经典 ranking 函数;MemoryBear 通过 ES query_string + IK 分词器实现 |
rag/nlp/query.py, rag/vdb/elasticsearch/elasticsearch_vector.py:468 search_by_full_text |
S2-T3, S3-T2 |
| Boundaries | 11 个 RAG 阶段的输入/输出/接口契约文档(S1-T2 交付物之一) | — | S1-T2 |
C
| 术语 | 含义 | 代码位置 | 出现文档 |
|---|---|---|---|
| Celery | 任务队列;MemoryBear 用它派发文档解析、GraphRAG 构建等异步流水线 | tasks.py:212 parse_document, tasks.py:472 build_graphrag_for_kb, tasks.py:557 build_graphrag_for_document |
S1-T3, S2-T1, S2-T3, S3-T2 |
| chat_limiter | Trio CapacityLimiter,控制 GraphRAG 中实体/关系 Embedding 的并发;默认 10 | rag/graphrag/utils.py:41 |
S2-T2, S3-T1 |
| Chunk | 最终交给 Embedding 的文本片段,一般 ≤ chunk_token_num(默认 128–512) |
rag/models/chunk.py:17 DocumentChunk |
S2-T1, S2-T2, S2-T3 |
| chunk_token_num | 单个 chunk 的最大 token 数 | rag/app/naive.py 调用层指定 |
S2-T1 |
| citation | 答案文本中插入的 [ID:N] 引用标记 |
rag/nlp/search.py:489-577 Dealer.insert_citations |
S2-T5 |
| CLIP / BGE-VL / Jina-Clip | 跨模态 Embedding 模型,把图像和文本映射到同一语义空间 | 当前未启用,规划见 S3-T2 D1 | S3-T2 |
| cl100k_base | OpenAI GPT-4 系列使用的 BPE tokenizer;MemoryBear 用它做 token 计数 | rag/common/token_utils.py |
S2-T1, S2-T2 |
| Cross-Encoder | 一种 Reranker 范式:把 (query, doc) 拼接后过同一个 Encoder,输出相关性分数 | 当前未自训,仅在外部 rerank 服务(DashScope/Jina)调用,规划见 S3-T2 D5 | S2-T5, S3-T2 |
D
| 术语 | 含义 | 代码位置 | 出现文档 |
|---|---|---|---|
| Dealer | rag/nlp/search.py:349 Dealer 类,BM25/hybrid 搜索调度器;GraphRAG 主要使用此通道 |
rag/nlp/search.py:349 |
S1-T3, S2-T3, S2-T5, S3-T1 |
| deepdoc | MemoryBear 的多格式解析模块,含 parser(11 种格式)+ vision(OCR / 版面识别 / TSR) | rag/deepdoc/{parser,vision} |
S1-T3, S2-T1 |
| DocumentChunk | Chunk 数据模型 | rag/models/chunk.py:17 |
S2-T1, S2-T2, S2-T3 |
| dense_vector | ES 向量字段类型;MemoryBear 用 HNSW 索引 + cosine 相似度 | elasticsearch_vector.py:653-658, rag/res/mapping.json |
S2-T2, S2-T3 |
E
| 术语 | 含义 | 代码位置 | 出现文档 |
|---|---|---|---|
| E2E(End-to-End) | 端到端调用链路,覆盖文档入库 + 在线检索 + 生成的完整时序 | rag/app/, workflow/nodes/knowledge/, rag/llm/ |
S2-T6(待交付) |
| Embedder | Embedding 模型抽象接口(S3-T1 提议的统一 Protocol) | 提议中:app/core/rag/protocols/embedder.py |
S3-T1, S3-T2 |
| Embedding 双轨 | MemoryBear 当前同时存在两条 Embedding 调用路径:RedBearEmbeddings(LangChain,新)与 OpenAIEmbed/QWenEmbed/...(遗留) |
rag/models/embedding.py + rag/llm/embedding_model.py |
S2-T2, S3-T1 |
| embed_cache | GraphRAG 中的实体/关系 Embedding Redis 缓存,TTL 24h | rag/graphrag/utils.py:115-134 |
S2-T2, S3-T1 |
| EMBEDDING_BATCH_SIZE | 批量 Embedding 大小的环境变量(README 提及但当前未生效) | — | S2-T2, S3-T1 |
| Entity Resolution | 实体消歧;GraphRAG 索引流程的一环 | rag/graphrag/entity_resolution.py:31 |
S1-T3 |
| ESConnection | ES 连接单例 | rag/utils/es_conn.py |
S1-T3, S2-T3 |
| ElasticSearchVector | VDB 主实现;同时承载 chunk + GraphRAG entity/relation + community_report | rag/vdb/elasticsearch/elasticsearch_vector.py:29 |
S1-T3, S2-T3, S3-T1 |
F
| 术语 | 含义 | 代码位置 | 出现文档 |
|---|---|---|---|
| FOLDER 类型知识库 | 包含子知识库的文件夹型 KB;检索时递归遍历 | workflow/nodes/knowledge/node.py |
S1-T3 |
| FusionExpr | ES 检索中的"加权融合"DSL;当前固定 0.05/0.95(BM25:Vector) |
rag/nlp/search.py:439 |
S2-T3, S3-T2 |
G
| 术语 | 含义 | 代码位置 | 出现文档 |
|---|---|---|---|
| GraphRAG(general) | Microsoft GraphRAG 风格:完整流水线(子图 → 合并 → PageRank → Leiden 社区 → 社区报告) | rag/graphrag/general/index.py:36 run_graphrag |
S1-T2, S1-T3 |
| GraphRAG(light) | LightRAG 风格:简化的实体/关系抽取,无社区报告;与 general 共享大部分代码 | rag/graphrag/light/graph_extractor.py:31 |
S1-T2, S1-T3 |
| GraphStore | 图存储抽象(S3-T2 提议) | 提议中 | S3-T2 |
| GraphAugmentedRetriever | 在 Hybrid 结果之上叠加 KGSearch 的 Retriever 实现 | 提议中 | S3-T1, S3-T2 |
H
| 术语 | 含义 | 代码位置 | 出现文档 |
|---|---|---|---|
| HNSW | Hierarchical Navigable Small World,向量索引算法;ES 8.x 内置 | ES 集群侧 | S2-T3 |
| HYBRID 检索 | BM25 + 向量并行 → 去重 → 可选 Rerank | workflow/nodes/knowledge/node.py:236-271 |
S2-T3, S2-T5 |
| HybridRetriever | Hybrid 检索 Protocol 实现(S3-T1 PoC) | 提议中 | S3-T1 |
I
| 术语 | 含义 | 代码位置 | 出现文档 |
|---|---|---|---|
| IK 分词器 | 中文分词器,ES IK plugin(ik_max_word) |
ES 集群侧 | S2-T3 |
| init_settings() | 模块级副作用,启动时自动建 ES 连接 + retriever 单例 | rag/common/settings.py:24 |
S1-T3, S3-T1 |
| insert_citations | 答案分句后按 embedding 相似度回填 [ID:N] 引用 |
rag/nlp/search.py:489-577 |
S2-T5 |
K
| 术语 | 含义 | 代码位置 | 出现文档 |
|---|---|---|---|
| KGSearch | GraphRAG 检索器 | rag/graphrag/search.py:19 |
S1-T3, S3-T2 |
| knowledge_graph_kwd | ES 中区分图类型(entity / relation / community_report)的字段 | rag/vdb/elasticsearch/elasticsearch_vector.py |
S1-T3 |
| KnowledgeRetrievalNode | Workflow 引擎中的知识检索节点 | workflow/nodes/knowledge/node.py:29 |
S1-T3, S2-T5, S3-T1 |
L
| 术语 | 含义 | 代码位置 | 出现文档 |
|---|---|---|---|
| LangChainAgent | 基于 create_agent 的 ReAct Agent,工具调用循环 |
agent/langchain_agent.py:26-641 |
S2-T5 |
| Late-Interaction | 一种检索范式(如 ColBERT),文档级向量改为 token 级,retrieval 用 MaxSim | 当前未启用,规划见 S3-T2 D2 | S3-T2 |
| Leiden 算法 | 社区检测算法;GraphRAG 用它划分社区 | rag/graphrag/general/index.py 调用 graspologic.partition.leiden |
S1-T2, S1-T3 |
| LightRAG | GraphRAG 轻量化变种,无社区报告 | rag/graphrag/light/ |
S1-T2, S1-T3 |
| LLM | Large Language Model;MemoryBear 通过 chat_model.py 与 langchain_agent.py 调用 |
rag/llm/chat_model.py:52 Base |
S2-T5 |
| LO(LibreOffice) | 用作 PPT/PPTX 转 PDF 的兜底工具 | rag/utils/libre_office.py |
S2-T1 |
M
| 术语 | 含义 | 代码位置 | 出现文档 |
|---|---|---|---|
| MatchSparseExpr / Field.SPARSE_VECTOR | 已声明未启用的稀疏向量表达式(SPLADE 接入预埋) | rag/utils/doc_store_conn.py:75, vdb/field.py:11 |
S3-T2 |
| Memory(记忆系统) | MemoryBear 的对话内存系统:Ebbinghaus 衰减 + ACT-R + Neo4j + langgraph 读写图 | core/memory/(与 core/rag/ 当前完全独立) |
S3-T2 D4 |
| MemoryAugmentedRetriever | D4 提议:在检索前用长期记忆改写 query 的 Retriever 包装层 | 提议中 | S3-T2 D4 |
| mind_map_extractor | 独立运行的思维导图抽取器,不在 GraphRAG 主链路 | rag/graphrag/mind_map_extractor.py |
S1-T2 |
| MinerU | 第三方 PDF 解析服务(外部 API) | rag/deepdoc/parser/mineru_parser.py:41, rag/app/textin_parser.py |
S1-T3, S2-T1 |
| Multimodal Embedding | 多模态 Embedding;MemoryBear 仅火山引擎支持原生多模态 | rag/models/embedding.py:65-78 中 _is_volcano 分支 |
S2-T2, S3-T2 D1 |
N
| 术语 | 含义 | 代码位置 | 出现文档 |
|---|---|---|---|
| naive_merge / hierarchical_merge / tree_merge | 三种 Chunking 合并策略 | rag/nlp/__init__.py |
S2-T1 |
| Neo4j | 图数据库;README 声明依赖,但 core/rag 当前零调用(规划见 S3-T2 D3) |
— | S3-T2 |
O
| 术语 | 含义 | 代码位置 | 出现文档 |
|---|---|---|---|
| OCR | 文字检测 + 识别两阶段 | rag/deepdoc/vision/ocr.py:522 OCR.__call__:694 |
S2-T1 |
| OpenAIEmbed / QWenEmbed / ... | 遗留的原始 Embedding 实现,被 GraphRAG 与 Dealer 使用 | rag/llm/embedding_model.py:14-65 |
S2-T2, S3-T1 |
| OpenTelemetry (OTel) | 全链路追踪 + 指标 SDK;MemoryBear 当前未引入(规划见 S3-T1 #6) | 提议中 | S3-T1 |
P
| 术语 | 含义 | 代码位置 | 出现文档 |
|---|---|---|---|
| PageRank | 图节点重要性算法;GraphRAG 用它给实体打分 | rag/graphrag/general/index.py |
S1-T2, S1-T3 |
| PARTICIPLE 检索 | 关键词分词检索(BM25) | workflow/nodes/knowledge/node.py:195 |
S2-T3 |
| Plugin Registry | S3-T1 #5 提议的 Parser/LLM Provider 注册机制,替换 naive.py 11 路 if/elif |
提议中 | S3-T1 |
| Pydantic Settings | S3-T1 #7 提议的中心化配置管理框架 | 提议中 | S3-T1 |
R
| 术语 | 含义 | 代码位置 | 出现文档 |
|---|---|---|---|
rag_utils(注意:与 rag/utils 不同) |
Chunk 内容 LLM 分析模块(摘要/标签/洞察/人物画像);与 Memory 系统耦合 | api/app/core/rag_utils/ |
S1-T3 |
| RAGAS | 开源 RAG 评估框架;MemoryBear 当前未集成 | 提议中 | S3-T2 D5 |
| rank_feature | ES 中的 tag TF-IDF + PageRank 辅助排序分 | rag/nlp/search.py:579-604 |
S2-T5 |
| RedBearEmbeddings | LangChain 统一封装的 Embedding 类(新路径) | rag/models/embedding.py:9-23 |
S2-T2 |
| RedBearRerank | LangChain BaseDocumentCompressor 封装的 Reranker |
rag/models/rerank.py:11-84 |
S2-T5, S3-T2 |
| Rerank 三轨 | (a) node.py:284 rerank() 模块级;(b) KnowledgeRetrievalNode.rerank() 节点方法;(c) Dealer.rerank() 融合排序 |
node.py:108-155, 284、nlp/search.py:606-643 |
S2-T5, S3-T1 |
| Reranker | Reranking Protocol(S3-T1 提议) | 提议中 | S3-T1, S3-T2 |
| retrieve_type | 检索模式 enum:PARTICIPLE / SEMANTIC / HYBRID / Graph | schemas/chunk_schema.py |
S2-T3, S3-T2 |
| Retriever | 检索器 Protocol(S3-T1 提议) | 提议中 | S3-T1, S3-T2 |
| RouterRetriever | 自适应路由 Retriever(S3-T2 D6 提议) | 提议中 | S3-T2 |
| RRF(Reciprocal Rank Fusion) | 多路检索结果排序融合算法;S3-T2 PoC-A 提议接入 | 提议中 | S3-T2 |
S
| 术语 | 含义 | 代码位置 | 出现文档 |
|---|---|---|---|
| SEMANTIC 检索 | 纯向量检索 | workflow/nodes/knowledge/node.py:195 |
S2-T3 |
| Section | 解析器吐出的 (text, position_or_layout) 中间结构,是 Chunking 的"原料" |
rag/app/naive.py:257 |
S2-T1 |
| SPLADE | 学习型稀疏向量;S3-T2 D2 提议接入 | 提议中(脚手架已存:MatchSparseExpr) |
S3-T2 |
| structlog | 结构化日志库;S3-T1 #10 提议替换现有非结构化 logger.* |
提议中 | S3-T1 |
| System Prompt 组装 | "用户自定义 system_prompt + 技能 Prompt + 文档图片识别指令"三段拼接 | app_chat_service.py:77-96 |
S2-T5 |
T
| 术语 | 含义 | 代码位置 | 出现文档 |
|---|---|---|---|
| TextIn | 第三方 PDF 解析 API | rag/app/textin_parser.py |
S1-T3 |
| Token | 用 cl100k_base 编码后的 BPE token | rag/common/token_utils.py |
S2-T1, S2-T2 |
| tokenize_chunks_with_images | 带图片的 Chunk 化处理 | rag/nlp/__init__.py |
S2-T1 |
| TSR | Table Structure Recognition,复杂表格行/列/合并单元格还原 | rag/deepdoc/vision/table_structure_recognizer.py:15 |
S2-T1 |
V
| 术语 | 含义 | 代码位置 | 出现文档 |
|---|---|---|---|
| VDB(Vector Database) | 向量数据库;MemoryBear 当前唯一实现是 Elasticsearch 8.x | rag/vdb/elasticsearch/ |
S2-T3 |
| VectorBase | 见 BaseVector | rag/vdb/vector_base.py:9 |
— |
| VLM | Vision-Language Model;图像理解(CV 模型) | rag/llm/cv_model.py |
S2-T1 |
W
| 术语 | 含义 | 代码位置 | 出现文档 |
|---|---|---|---|
| weighted_sum (0.05, 0.95) | ES 层 Hybrid 检索的固定权重(BM25:Vector) | rag/nlp/search.py:439 |
S2-T3, S3-T2 |
| Workflow Knowledge Node | 见 KnowledgeRetrievalNode | workflow/nodes/knowledge/node.py:29 |
S1-T3, S2-T5 |
X
| 术语 | 含义 | 代码位置 | 出现文档 |
|---|---|---|---|
| xxhash | 快速哈希函数;用于 GraphRAG embed_cache 的 key 生成 | rag/graphrag/utils.py:115-134 |
S2-T2 |
— Glossary · v1.0-RC1 · 共 81 个术语 · 2026-05-08 —