恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

从零搭建私人 RAG 实战:用 Markdown 沉淀技术决策与业务决策

  • 首页
  • 资讯中心
  • /
  • 从零搭建私人 RAG 实战:用 Markdown 沉淀技术决策与业务决策

相关资讯

Outfit字体终极指南:免费开源字体如何解决你的设计一致性难题? 2026/8/2 17:54:45
SpringBoot+Vue实现机动车号牌管理系统全解析 2026/8/2 17:54:45
ChanlunX缠论插件:3分钟让通达信变成你的智能缠论分析助手 2026/8/2 17:54:46

最新资讯

天气丹包装盒尺寸压根没标准答案,问这个问题的老板十有八九要被供应商坑
资源受限MCU调试实战:从GPIO打点到崩溃转储
AGENTS.md:为AI代码助手编写项目说明书,提升开发效率与代码质量
外科共管患者筛选还得靠医生翻病历?斯坦福SCM Navigator用大模型嵌入EHR人机协同分诊:6193例真实部署敏感性94%、特异性74%,19例假阴性仅2例是模型误判
物联网蓝牙模块选型与实战:从低功耗到安全设计要点
MT4指标MT5指标同花顺期货通指标

今日推荐

Python random 模块常用函数详解:从入门到实战
Hermes接入团队协作后,我推翻了三个效率假设
免费AI大模型调教指南:打造专属网文写作助手

本周热门

Nextcloud 桌面客户端:把同步交给它,你只管改文件
如何将 HTML 转成 Word 文档且格式不丢失?html-to-docx 使用教程
Anki 批量操作卡片完整指南:一次搞定上千张,不再逐张修改

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

从零搭建私人 RAG 实战:用 Markdown 沉淀技术决策与业务决策

发布时间:2026/8/26 1:52:10
从零搭建私人 RAG 实战:用 Markdown 沉淀技术决策与业务决策 1. 为什么需要私人 RAG在日常工作和学习中我们每天都会产生大量决策——技术选型、架构设计、业务方案、问题排查记录。这些决策散落在 Markdown 笔记、飞书文档、Notion 页面甚至聊天记录中当需要回顾某个历史决策时往往要翻遍多个文档才能找到。私人 RAGRetrieval-Augmented Generation系统可以解决这个问题将你的 Markdown 笔记作为知识库通过向量检索 大语言模型生成让你用自然语言就能快速定位到曾经做过的决策和思考过程。2. 系统架构概览本实战搭建的私人 RAG 系统包含以下核心组件文档解析层读取 Markdown 文件提取标题、正文、代码块等结构化内容文本切分层将长文档按语义边界切分为合适大小的 Chunk向量化层使用 Embedding 模型将 Chunk 转换为向量向量存储层存储向量并支持相似度检索如 Chroma、FAISS检索增强生成层结合检索结果与 LLM 生成回答3. 环境准备与依赖安装推荐使用 Python 3.10创建虚拟环境后安装以下依赖pip install langchain langchain-community chromadb sentence-transformers pip install markdown beautifulsoup4 pip install openai # 或其他 LLM 接口4. Markdown 文档解析与切分首先实现一个 Markdown 解析器将文档按标题层级拆分为语义块import os import markdown from bs4 import BeautifulSoup from langchain.text_splitter import MarkdownHeaderTextSplitter def load_markdown_files(directory): 加载指定目录下所有 Markdown 文件 docs [] for root, _, files in os.walk(directory): for file in files: if file.endswith(.md): filepath os.path.join(root, file) with open(filepath, r, encodingutf-8) as f: content f.read() docs.append({source: filepath, content: content}) return docs def split_markdown_docs(docs): 按标题层级切分 Markdown 文档 headers_to_split_on [ (#, H1), (##, H2), (###, H3), ] splitter MarkdownHeaderTextSplitter( headers_to_split_onheaders_to_split_on ) chunks [] for doc in docs: doc_chunks splitter.split_text(doc[content]) for chunk in doc_chunks: chunk.metadata[source] doc[source] chunks.append(chunk) return chunks5. 构建向量存储将切分后的 Chunk 向量化并存入 Chroma 向量数据库from langchain.embeddings import HuggingFaceEmbeddings from langchain.vectorstores import Chroma def build_vector_store(chunks, persist_directory./chroma_db): 构建并持久化向量存储 embeddings HuggingFaceEmbeddings( model_nameshibing624/text2vec-base-chinese ) vector_store Chroma.from_documents( documentschunks, embeddingembeddings, persist_directorypersist_directory ) vector_store.persist() return vector_store6. 检索增强生成结合检索结果与 LLM 生成回答from langchain.chains import RetrievalQA from langchain.llms import OpenAI def create_rag_chain(vector_store): 创建 RAG 问答链 retriever vector_store.as_retriever( search_typesimilarity, search_kwargs{k: 4} ) llm OpenAI(temperature0, model_namegpt-3.5-turbo) qa_chain RetrievalQA.from_chain_type( llmllm, chain_typestuff, retrieverretriever, return_source_documentsTrue ) return qa_chain def ask_question(qa_chain, question): 向 RAG 系统提问 result qa_chain({query: question}) print(f问题{question}) print(f回答{result[result]}) print(\n参考来源) for doc in result[source_documents]: print(f- {doc.metadata[source]})7. 实战用 Markdown 沉淀决策为了让 RAG 系统发挥最大价值建议在写 Markdown 笔记时遵循以下规范统一标题层级每个决策文档使用 H1 作为标题H2 作为决策背景、方案对比、最终结论等章节标注关键信息在决策结论前加上**决策**或**结论**标签便于检索时精准命中记录时间与上下文在文档开头记录决策日期、参与人、业务背景方便后续回溯关联相关文档使用 Markdown 链接将相关决策文档互相引用形成知识网络示例决策笔记结构# 2024-03-15 数据库选型决策 背景 项目需要支持高并发写入和实时查询数据量预计 500 万条/月。 方案对比 MySQL成熟稳定但分库分表运维成本高 PostgreSQL支持 JSON 和全文检索扩展性好 MongoDB写入性能优秀但事务支持较弱 决策 结论 选择 PostgreSQL利用其 JSONB 字段存储非结构化数据配合 GIN 索引实现高效查询。 后续行动 搭建 PgBouncer 连接池 配置流复制实现读写分离8. 运行与测试将上述代码整合后运行以下命令启动 RAG 系统if __name__ __main__: # 1. 加载 Markdown 文档 docs load_markdown_files(./notes) print(f加载了 {len(docs)} 个文档) # 2. 切分文档 chunks split_markdown_docs(docs) print(f切分为 {len(chunks)} 个 Chunk) 3. 构建向量存储 vector_store build_vector_store(chunks) 4. 创建 RAG 链 qa_chain create_rag_chain(vector_store) 5. 提问 ask_question(qa_chain, 我们之前为什么选择了 PostgreSQL)/code/pre 9. 总结与扩展 通过本实战你从零搭建了一个基于 Markdown 笔记的私人 RAG 系统。核心收获包括 掌握了 Markdown 文档的解析与语义切分方法 理解了向量数据库的构建与检索流程 学会了将检索结果与 LLM 结合生成上下文相关的回答 后续可以进一步优化 使用更强大的 Embedding 模型如 bge-large-zh提升检索精度 引入重排序Re-ranking机制过滤低相关结果 支持 PDF、飞书文档等多格式输入 添加 Web 界面或接入 Slack/飞书机器人

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号