微信扫码
添加专属顾问
我要投稿
从产品到技术,一文掌握RAG知识库的核心模块设计与实现要点。 核心内容: 1. 文档切分策略:详解固定窗口、分隔符、智能语义三种切分方式的优劣与实践 2. 向量生成方案:对比主流embedding模型特点及中文场景下的最佳选择 3. 向量库技术选型:分析不同存储方案的性能表现与召回机制设计
“关于知识库这块,你有什么能讲的吗?”我一脸懵逼,数据咋清洗,数据格式咋定的不是刚说完吗??🤔复盘了一下,感觉应该是想问下面这些
把长文档切成合适的语义段,既能保证上下文连贯,又不超出 token 限制。
用 langchain.text_splitter
中的 RecursiveCharacterTextSplitter
(递归+分隔符):
from langchain.text_splitter import RecursiveCharacterTextSplitter
splitter = RecursiveCharacterTextSplitter(
chunk_size=500, chunk_overlap=100,
separators=["\n\n", "\n", ".", " ", ""]
)
chunks = splitter.split_text(your_text)
把文本片段转化为模型能理解的向量(embedding),进入语义空间。
text-embedding-ada-002 | |||
bge-base-zh bge-large-zh | |||
text2vec | |||
e5-mistral |
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("bge-base-zh")
emb = model.encode("鼠标断连怎么解决")
🔥 记得用 BGE 模型要加 prompt:“为这个句子生成表示以用于检索相关文档:xxxx”
将 embedding 存入可快速近似搜索的数据库中,用于后续查询。
import faiss
import numpy as np
index = faiss.IndexFlatIP(768) # 余弦相似度
index.add(np.array([vec1, vec2, vec3])) # vec 是 np.array 的向量
D, I = index.search(np.array([query_vec]), top_k)
提高召回的准度和覆盖率。
📌 混合召回核心是:关键词召回召不准 → 靠语义补;语义召回太泛 → 靠关键词兜底
关键词召回 top30 + 向量召回 top30 → 合并 → rerank top10
提高最终召回片段的相关性排序,降低误召回风险。
bge-reranker-base | ||
Cohere Rerank | ||
cross-encoder/ms-marco |
score = reranker(query, [chunk1, chunk2, chunk3])
ranked = sorted(zip(score, chunks), reverse=True)
将检索到的内容+用户问题组织成 Prompt 喂给 LLM。
你是某品牌客服助手,以下是产品说明文档内容:
【知识片段】
1. 鼠标若断连,请检查电量或更换接收器
2. 鼠标灯不亮通常为电池电量低
用户提问:
鼠标今天怎么又断连了?
请基于上方知识内容回答。
CONTEXT_WINDOW = 3500
控制拼接字数---
,降低混淆保证系统在没有命中知识时,不答错,不胡说。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-09-18
关于相似度计算和rerank重排序的区别和作用
2025-09-18
给RAG打分:小白也能懂的AI系统评测全攻略
2025-09-18
向量化与嵌入模型:RAG系统背后的隐形英雄
2025-09-17
当“相似度 ≠ 相关性”:PageIndex 带来的 RAG 新范式
2025-09-17
解锁RAG高阶密码:自适应、多模态、个性化技术深度剖析
2025-09-16
你的 RAG 还在“垃圾进,垃圾出”?我用这套流程,把“废料”文档变成了黄金知识库
2025-09-15
应对知识管理挑战:RAG技术如何驱动企业智能化升级
2025-09-15
RAG彻底爆了!一文掌握其效果优化的架构设计及核心要点
2025-07-15
2025-06-24
2025-06-24
2025-07-16
2025-06-23
2025-07-09
2025-07-08
2025-08-05
2025-08-18
2025-09-02
2025-09-10
2025-09-10
2025-09-03
2025-08-28
2025-08-25
2025-08-20
2025-08-11
2025-08-05