第一层:知识检索层 — 具体架构方案

总体设计原则
职事语料不是普通文本——它有神学层级、概念互联、跨书引用三大特征。架构必须为此专门设计,而非套用通用 RAG 模板。

架构全景图

┌─────────────────────────────────────────────────────┐
│ 语料输入层 │
│ PDF / EPUB / TXT(信息、书卷、纲要、恢复版注解) │
└───────────────────┬─────────────────────────────────┘

┌─────────────────────────────────────────────────────┐
│ 预处理与分块层 │
│ 清洗 → 结构识别 → 神学逻辑单元切割 → 元数据标注 │
└───────────────────┬─────────────────────────────────┘

┌───────────┴───────────┐
↓ ↓
┌───────────────┐ ┌──────────────────┐
│ 向量存储层 │ │ 知识图谱层 │
│ (稠密检索) │ │ (GraphRAG) │
│ ChromaDB / │ │ 概念节点 + 关系边 │
│ Qdrant │ │ Neo4j / NetworkX │
└──────┬────────┘ └────────┬─────────┘
└───────────┬───────────┘

┌─────────────────────────────────────────────────────┐
│ 混合检索层 │
│ 语义检索 + 图谱游走 + 关键词检索 融合 │
└───────────────────┬─────────────────────────────────┘

┌─────────────────────────────────────────────────────┐
│ 上下文组装 + Claude API │
│ 检索结果重排 → Prompt 注入 → 生成回答 │
└─────────────────────────────────────────────────────┘

第一步:语料预处理与分块
分块策略(最关键决策)
职事语料有三种典型结构,需分别处理:
① 信息/书卷类(连续叙述型)

策略:段落级分块 + 15% 重叠窗口
块大小:400~600 tokens
锚点:每块保留所在章节标题作为前缀

② 纲要类(层级结构型)

策略:保留层级路径,不跨级切割
格式:「主题 > 大点 > 小点」作为完整单元
例:「新约职事 > 二、保罗的职事 > A. 启示的来源」

③ 恢复版注解类(短密集型)

策略:按经节聚合,一节+其注解为一块
附加:标注经文坐标(书卷-章-节)

元数据标注方案
每个文本块必须携带:

{
“source”: “神的经纶(李常受,1990)”,
“type”: “book | outline | footnote | message”,
“chapter”: “第三章”,
“topic_tags”: [“神圣分赐”, “三一神”, “灵”],
“scripture_refs”: [“弗3:17”, “约14:20”],
“era”: “Lee-post1970”,
“language”: “zh”
}

第二步:双轨存储层
轨道一:向量数据库(语义检索)

# 推荐技术栈
Embedding 模型: text-embedding-3-large(中英混合语料最佳)
向量数据库: Qdrant(支持元数据过滤,性能优于 Chroma)

# 检索配置
相似度算法: Cosine Similarity
Top-K: 8~12 个候选块
过滤条件: 可按 source / type / era 过滤

同义词映射表(解决职事专有术语问题):

“调和” ↔ “mingling” ↔ “互渗”
“神圣分赐” ↔ “divine dispensing” ↔ “分赐”
“召会生活” ↔ “church life” ↔ “教会生活”
“经纶” ↔ “economy” ↔ “oikonomia”
“主观经历” ↔ “subjective experience”

查询时自动展开同义词,覆盖中英文混搜场景。

轨道二:知识图谱(GraphRAG)
这是职事系统区别于普通 RAG 的核心竞争力。
节点类型设计:

[概念节点] 神圣分赐、有机救恩、召会、灵、生命
[人物节点] 倪柝声、李常受、保罗、约翰
[经文节点] 弗1:10、约14:20、林前15:45
[书卷节点] 《神的经纶》《生命的供应》《约翰福音生命读经》
[主题节点] 复活、变化形状、得胜、国度

边(关系)类型设计:

概念 ──[发展自]──▶ 概念 (神圣分赐 → 有机救恩)
概念 ──[根基于]──▶ 经文 (神圣分赐 → 弗1:10)
书卷 ──[阐明]──▶ 概念 (《神的经纶》→ 神圣分赐)
人物 ──[发展]──▶ 概念 (李常受 → 有机救恩)
概念 ──[对应]──▶ 概念 (灵 ↔ 生命)
主题 ──[包含]──▶ 概念 (三一神 → 父子灵)

图谱游走逻辑(查询时):

用户问:”神圣分赐与召会有什么关系?”

图谱入口节点:[神圣分赐] + [召会]

游走深度 2:找到共同邻居节点

发现路径:神圣分赐 → 有机救恩 → 召会生命 → 召会

将路径上所有节点的文本块加入检索上下文

第三步:混合检索融合
三路检索结果通过 RRF(倒数排名融合) 合并:

最终得分 =
0.5 × 语义相似度得分
+ 0.3 × 图谱关联度得分
+ 0.2 × BM25 关键词得分

重排后取 Top 5~7 块注入 Prompt。

第四步:Prompt 工程框架

[System Prompt — 核心]

你是一位熟悉倪柝声—李常受职事传统的神学助手。
你的回答:
1. 必须以检索到的职事语料为依据
2. 引用格式:【书名,章节】或【信息题目,段落】
3. 区分”职事明确教导”与”你的推论”
4. 遇到职事未直接论及的问题,说明并提供相关参考

以下是检索到的相关语料:
──────────────────────
{retrieved_context}
──────────────────────

用户问题:{user_query}

技术栈总览

|层级 |推荐技术 |备注 |
|———|——————-—-|———–|
|语料解析 |PyMuPDF + python-docx |处理 PDF/Word|
|分块 |LlamaIndex NodeParser |支持层级结构 |
|Embedding|text-embedding-3-large |中英混合最优 |
|向量库 |Qdrant |支持元数据过滤 |
|知识图谱 |NetworkX(轻量)/ Neo4j(生产)|按规模选择 |
|检索融合 |LlamaIndex QueryFusion |RRF 内置支持 |
|生成 |Claude Sonnet 4(API) |神学推理能力强 |
|后端框架 |FastAPI |轻量、易部署 |
|前端 |React(你已有基础) |复用现有组件 |

建议开发阶段

Phase 1(2周):基础 RAG 跑通
→ 单一书卷语料 + Qdrant + Claude API

Phase 2(3周):元数据过滤 + 同义词扩展
→ 多书卷 + 术语映射表 + 中英混搜

Phase 3(4周):GraphRAG 叠加
→ 概念图谱构建 + 混合检索融合

Phase 4(持续):语料扩充 + 质量评估
→ 用你的 Scripture Alignment Layer 评估检索质量

需要我为 Phase 1 写出可直接运行的代码框架吗?