轻量级 RAG 检索增强问答系统产品系统Vibe Coding

我要开发同款
宇神2026年09月30日
5阅读

技术信息

语言技术
Python
系统类型
Windows、小程序轻应用
行业分类
人工智能、企业服务

作品详情

行业场景

企业内部知识库问答 MVP:把制度文档、操作手册、合同、报告等本地资料接入 RAG,员工用自然语言提问快速定位答案,低成本验证「文档 → 检索 → 大模型生成」全链路。
私密文档本地问答:数据不出本机,适用于对数据安全敏感的场景(合同、笔记、研发文档),无需上传任何云端服务。
RAG 教学演示与参数调优:分片大小、重叠、Top-K、相似度阈值等参数均可调,直观验证检索质量,适合技术培训与方案选型。
无 Key / 弱网环境的大模型应用验证:全离线部署,降低原型成本与接入门槛。

功能介绍

多格式文档加载:支持 txt/md/csv/json 等纯文本与 PDF,自动识别 UTF-8/GBK/GB18030 编码;扫描版 PDF、损坏文件、空文档均有友好异常提示。
自研文本切分:按换行与句末标点切分为语义单元,贪心合并至目标长度并保留重叠,超长片段硬切兜底,避免关键信息被切断。
本地向量化入库:默认 bge-small-zh-v1.5 中文向量模型离线推理,向量持久化写入本地 Chroma,不依赖云向量库。
相似度检索:问题向量化后按余弦相似度召回 Top-K 片段,支持相似度阈值过滤,检索过程带日志追踪。
防幻觉生成:系统提示词硬性约束模型「仅依据检索片段作答」,无相关答案时固定回复【文档中没有找到相关信息】,配合低温度采样抑制编造。
生成后端可切换:默认本地 Ollama,可无缝切换云端 DeepSeek / OpenAI / Anthropic 兼容接口,仅需改配置。
控制台交互命令:load / ask / count / clear / help / exit,支持多次加载、索引统计与清空。

项目实现

模块化分层:config.py(配置)、document_loader.py(加载)、vector_store.py(切分+向量化+检索+存储)、rag_pipeline.py(检索→提示词→生成)、main.py(交互入口),职责单一、接口隔离,便于替换向量库或生成后端。
配置管理:全部参数支持环境变量与 .env 覆盖,启动时校验云端 Key 缺失等非法配置并给出明确提示。
文档加载:统一入口按扩展名分发;txt 类实现多编码回退读取;PDF 基于 pypdf 提取文字层。
文本切分:实现「句末标点切分 → 贪心合并 → 重叠拼接 → 超长硬切」四步算法,分片大小与重叠长度可配置。
向量化与存储:本地走 sentence-transformers(归一化向量),云端走 OpenAI Embedding 接口,统一分发;向量库用 Chroma PersistentClient + 余弦距离,文档以 uuid 标识并附带来源元数据。
检索:query_embeddings 取 Top-K,距离转相似度后按阈值过滤,空结果直接返回固定话术、不调用模型。
生成:通过 OpenAI 兼容端点调用本地 Ollama,或 Anthropic Messages API 调用云端模型,SDK 延迟导入降低启动开销。
健壮性:覆盖文件不存在/空文档/不支持格式/PDF 解析失败/网络与 Key 异常/Ollama 未启动/检索为空等边界,均有友好日志与提示,程序不崩溃。

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论