Files
AIclinicalresearch/docs/03-业务模块/PKB-个人知识库/00-系统设计/从搜索引擎到RAG:技术演进与借鉴指南.md
HaHafeng 40c2f8e148 feat(rag): Complete RAG engine implementation with pgvector
Major Features:
- Created ekb_schema (13th schema) with 3 tables: KB/Document/Chunk
- Implemented EmbeddingService (text-embedding-v4, 1024-dim vectors)
- Implemented ChunkService (smart Markdown chunking)
- Implemented VectorSearchService (multi-query + hybrid search)
- Implemented RerankService (qwen3-rerank)
- Integrated DeepSeek V3 QueryRewriter for cross-language search
- Python service: Added pymupdf4llm for PDF-to-Markdown conversion
- PKB: Dual-mode adapter (pgvector/dify/hybrid)

Architecture:
- Brain-Hand Model: Business layer (DeepSeek) + Engine layer (pgvector)
- Cross-language support: Chinese query matches English documents
- Small Embedding (1024) + Strong Reranker strategy

Performance:
- End-to-end latency: 2.5s
- Cost per query: 0.0025 RMB
- Accuracy improvement: +20.5% (cross-language)

Tests:
- test-embedding-service.ts: Vector embedding verified
- test-rag-e2e.ts: Full pipeline tested
- test-rerank.ts: Rerank quality validated
- test-query-rewrite.ts: Cross-language search verified
- test-pdf-ingest.ts: Real PDF document tested (Dongen 2003.pdf)

Documentation:
- Added 05-RAG-Engine-User-Guide.md
- Added 02-Document-Processing-User-Guide.md
- Updated system status documentation

Status: Production ready
2026-01-21 20:24:29 +08:00

92 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# **从搜索引擎到 RAG技术演进与借鉴指南**
文档版本: v1.0
核心议题: RAG 的历史溯源与搜索引擎技术的跨时代应用
适用场景: 企业级知识库 (EKB) 检索策略优化
## **一、 历史溯源RAG 是新瓶装旧酒吗?**
### **1.1 RAG 的前世今生**
| 时代 | 技术形态 | 核心逻辑 | 代表产物 |
| :---- | :---- | :---- | :---- |
| **前 LLM 时代** (2000-2018) | **QA 系统 (Question Answering)** | 检索 \-\> 抽取 从文档中直接把答案那句话“抠”出来。 | IBM Watson, Google Featured Snippets |
| **推荐系统时代** (2010-2020) | **向量召回 (Vector Retrieval)** | User Embedding \-\> Item Embedding 用向量找相似物品。 | 淘宝/抖音推荐算法, FAISS (Facebook) |
| **LLM 时代** (2020-至今) | **RAG (Retrieval-Augmented Generation)** | 检索 \-\> 生成 检索相关片段,让 LLM 读懂并“写”出新答案。 | ChatGPT with Browsing, Perplexity |
**结论:**
* **向量技术**:早就有了(推荐系统、搜图)。
* **检索流程**早就有了搜索引擎、QA
* **LLM 带来的质变****“生成能力”**。以前的系统只能“搬运”答案,现在的系统能“理解并重写”答案。这让知识库从“图书馆管理员”变成了“研究员”。
## **二、 RAG 本质论:搜索引擎的进化体**
您可以把 RAG 理解为 **"搜索引擎 2.0"**。
* **搜索引擎 1.0 (Google/Baidu)**
* **输入**:关键词。
* **输出**一堆链接Documents
* **用户行为**:用户自己点开链接,自己阅读,自己总结。
* **瓶颈**:用户的阅读速度。
* **搜索引擎 2.0 (RAG/Perplexity)**
* **输入**:自然语言问题。
* **中间层**:系统代替用户完成了“点开链接、阅读全文、提取关键点”的工作。
* **输出**一个直接的答案Answer
* **本质****RAG \= 检索 (Search) \+ 阅读理解 (Reading Comprehension)**。
## **三、 借古鉴今:搜索引擎有哪些“神技”可以救 RAG**
目前的 RAG 系统(特别是纯向量检索)经常遇到“搜不准”的问题。其实,**传统搜索引擎早在 10 年前就解决了这些问题**。我们完全可以把这些老技术搬过来。
### **策略 1倒排索引与关键词匹配 (Inverted Index & BM25)**
* **痛点**向量检索不仅懂语义也容易“懂过头”。搜“维生素A”它可能给你召回“维生素C”因为向量离得很近
* **搜索引擎解法****倒排索引**。强制要求文档里必须包含“A”这个字符。
* **EKB 落地**:这就是我们架构中的 **pg\_bigm / tsvector**。**混合检索**就是这一思想的产物。
### **策略 2查询扩展与改写 (Query Expansion / Rewriting)**
* **痛点**用户搜“PD-1”文档里写的是“帕博利珠单抗”。字面不匹配向量也可能不够近。
* **搜索引擎解法**:当用户搜 A 时,后台自动帮他搜 (A OR B OR C)。Google 内部有巨大的同义词库。
* **EKB 落地**
* **方法**:在 Node.js Router 层,调用 DeepSeek 把用户问题改写成 3 个变体。
* *Prompt*: "用户问'PD-1效果'请生成3个更专业的搜索词如'免疫检查点抑制剂疗效'、'Keytruda 临床数据'。"
### **3\. 策略 3相关性反馈 (Relevance Feedback / Pseudo-Relevance Feedback)**
* **痛点**:第一次搜出来的东西不准。
* **搜索引擎解法**:假设第一次搜出来的前 3 个文档是相关的,从这 3 个文档里提取新的关键词,再搜一次。
* **EKB 落地****HyDE (Hypothetical Document Embeddings)**。
* 先让 LLM 生成一个“假设的完美答案”。
* 用这个假设答案去搜真实文档。
* *这本质上就是一种高级的“相关性反馈”。*
### **4\. 策略 4多路召回与精排 (Multi-stage Retrieval & Rerank)**
* **痛点**:海量数据中,怎么保证 Top 1 是对的?
* **搜索引擎解法****漏斗架构**。
* **L1 (粗排)**:用便宜的方法(倒排索引)快速捞出 1000 条。
* **L2 (精排)**:用昂贵的方法(学习排序模型 LambdaMART对这 1000 条精细打分,选出 Top 10。
* **EKB 落地**:这就是我们的 **R-C-R-G 范式**
* **L1**Postgres (Vector \+ Keyword) 捞 Top 50。
* **L2**Qwen-Rerank (Cross-Encoder 模型) 精排 Top 10。
### **5\. 策略 5元数据过滤 (Faceted Search)**
* **痛点**:搜“最新指南”,结果出来全是 2010 年的。
* **搜索引擎解法**:分面搜索(电商左侧的筛选栏:品牌、价格、年份)。
* **EKB 落地****SQL 结构化过滤**。
* 我们提取 PICO、年份、期刊 IF 分,本质上就是为了支持 Faceted Search。
* 先 WHERE year \> 2023再做向量搜索。
## **四、 总结:您的技术路线是“集大成者”**
您的 **EKB 方案** 之所以被打高分,就是因为它没有掉进“唯向量论”的陷阱,而是**融合了搜索引擎的经典智慧**
1. **pgvector** \= 现代向量检索 (推荐系统技术)
2. **pg\_bigm** \= 传统倒排索引 (Google/Lucene 技术)
3. **Rerank** \= 搜索精排模型 (广告推荐技术)
4. **DeepSeek** \= 阅读理解器 (LLM 技术)
**您正在用 2025 年的算力,复兴 2005 年的搜索智慧,这才是最扎实的路径。**