尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

用RAG技术做佛学戒律问答系统(进阶篇):分层架构与知识库升级

用RAG技术做佛学戒律问答系统(进阶篇):分层架构与知识库升级 用RAG技术做佛学戒律问答系统进阶篇分层架构与知识库升级本文是《用RAG技术做佛学戒律问答系统》的进阶篇建议先阅读入门篇了解基础概念。项目背景佛学戒律按身份分为比丘戒、沙弥戒、居士戒三大体系条文数百条术语密集且互有交叉。如果简单地把所有戒律丢进一个向量库用户问不杀生时可能同时召回比丘戒和居士戒的条文造成跨域混淆。因此本项目的核心设计是按身份分层检索——用户选择自己的身份居士/沙弥/比丘系统只在对应向量库中检索避免不同身份的戒律相互干扰。同时戒律典籍多为 PDF 格式手动逐条录入效率太低需要一套自动解析流水线。项目地址https://github.com/moonlit-breeze/donglin_jielv_rag技术架构PDF典籍 → pdf_loader解析 → knowledge_base.json结构化知识库 ↓ RecursiveCharacterTextSplitter 分块 ↓ bge-small-zh 向量化512维 ↓ ┌──────────────┼──────────────┐ ↓ ↓ ↓ 比丘戒向量库 沙弥戒向量库 居士戒向量库 (Chroma/jie_lv) (Chroma/sha_mi) (Chroma/upasaka) ↓ ↓ ↓ 用户提问 → 身份选择 → 分层检索 → Top-K 条戒律 → DeepSeek 生成回答技术栈组件选型理由Embedding 模型BAAI/bge-small-zh开源中文轻量模型512维本地离线运行向量数据库Chromalangchain-chroma轻量零配置支持三层独立持久化文本分割RecursiveCharacterTextSplitterchunk_size800按段落/句子优先级切割文本加载pypdf 正则解析支持 PDF 典籍导入自动提取身份标签和出处LLMDeepSeek Chat API中文能力强、性价比高temperature0.1CLIrich彩色终端交互支持身份选择Web 演示Gradio可视化界面局域网可访问核心实现1. PDF 典籍自动解析新增戒律典籍多为 PDF 格式手写逐条录入效率太低。pdf_loader.py实现了完整转换流水线逐页读取 PDF 文本pypdf.PdfReader正则自动提取身份标签【比丘戒】【沙弥戒】【居士戒】【比丘尼戒】和出处《四分律》等按身份分组归并连续页面为章节输出统一 JSON 格式{role, domain, source, content, category}# pdf_loader.py 核心逻辑textpage.extract_text()matchre.search(r【(比丘戒|沙弥戒|居士戒|比丘尼戒)】,text)ifmatch:current_rolematch.group(1)2. 分层向量库架构核心升级不再把所有戒律混在一起而是按身份独立建库身份Chroma 集合持久化目录比丘戒jie_lv./chroma_db/jie_lv沙弥戒sha_mi./chroma_db/sha_mi居士戒upasaka./chroma_db/upasaka分层的好处用户选居士戒时只查居士库不会误召回比丘戒条文减少跨域噪声提升检索精度三层共享单例 BGE 模型避免重复加载 95MB 模型# vector_store.py 单例模式强制离线self._embeddingHuggingFaceEmbeddings(model_namemodel_name,model_kwargs{device:cpu},encode_kwargs{normalize_embeddings:True},)os.environ[HF_HUB_OFFLINE]13. 安全增强的检索与生成检索侧相关度阈值过滤MIN_RELEVANCE 0.50低于 0.5 的结果直接丢弃实测戒律问题 0.55-0.67无关问题 0.45-0.53懒加载缓存首次查询时才加载向量库启动不卡顿MMR 算法去重保证返回戒律多样化生成侧System Prompt 大幅增强参考资料能覆盖时严格依据知识库不足时允许补充权威经典需标注来源区分戒条适用条件——已受戒 vs 未受戒、性戒 vs 遮戒强制双重来源标注知识库引用 vs 外部补充越界问题如怎么破戒不被发现直接拒答# generator.py 检索结果注入 Promptcontext\n\n---\n.join([f[来源{doc.metadata[source]}{doc.metadata[role]}]\n{doc.page_content}fordocindocs])4. 一站式导入流水线ingest.py把 PDF 导入和向量库重建整合为一条命令python ingest.py data/your_sutra.pdf自动完成PDF 解析 → JSON 覆盖输出 → 清空旧库 → 按身份分组 → 重建三层向量库。5. 双入口交互入口文件适用场景命令行cli.py开发调试、本地快速查询Web 界面web_app.py可视化演示、局域网分享CLI 支持身份选择居士/沙弥/比丘/不限超长问题提示成本警告异常处理精细认证/连接/超时/限流/API错误。Gradio Web 版提供身份下拉框、可调检索条数1-5并透明展示检索到的戒律原文片段。知识库覆盖当前knowledge_base.json153 行结构化数据覆盖身份内容比丘戒《四分律》比丘戒本不杀、不盗等沙弥戒《沙弥十戒》不杀生、不偷盗等居士戒五戒、八关斋戒、十善业道、菩萨戒梵网经十重四十八轻补充资料净土持戒路线、印光大师/大安法师开示、东林寺戒律传承效果展示问「比丘盗戒有哪些开缘条件」系统按比丘身份检索 → 从jie_lv向量库召回相关戒条 → DeepSeek 生成回答标注每条引用出处身份标签 原文来源确保回答可溯源可验证。总结这个项目验证了 RAG 在垂直领域知识问答中的可行性。相比纯 LLM 的三大优势回答有据可查每条引用指向具体戒律原文不易幻觉分层安全隔离按身份分库检索杜绝跨域混淆离线可部署BGE 模型本地运行知识库完全可控适合法律、医学、佛学等对准确性和安全性要求高的领域。下一步计划支持更多律藏典籍 PDF 导入、优化 chunk 策略、加入重排序Reranker提升 Top-K 精度。
返回列表