Skip to content

chering14/rag-pdf-markdown-txt-streamlit-python

Repository files navigation

RAG 智能知识库问答系统

支持 PDF、Markdown 和 TXT 的企业知识库助手。系统使用本地 BGE Embedding、 ChromaDB 持久化检索,以及 OpenAI 兼容 API 生成带页码引用的答案。

功能

  • 多文件上传,PDF 保留页码
  • 500 字切片、100 字重叠(环境变量可调)
  • 文件哈希去重、Top-K 语义检索和相似度展示
  • 回答标注资料编号,可展开查看命中原文
  • 支持 OpenAI、DeepSeek 等 OpenAI 兼容接口

本地运行

建议使用 Python 3.11:

python -m venv .venv
.venv\Scripts\Activate.ps1
pip install -r requirements.txt
Copy-Item .env.example .env

编辑 .env,然后启动:

streamlit run app.py

首次启动会下载中文 BGE 模型。DeepSeek 配置示例:

LLM_API_KEY=your-deepseek-key
LLM_BASE_URL=https://api.deepseek.com
LLM_MODEL=deepseek-chat

Docker

准备 .env 后运行 docker compose up --build,访问 http://localhost:8501。向量数据保存在 data/chroma

项目结构

app.py                 Streamlit 页面入口
config.py              环境变量配置
document/loader.py     PDF / Markdown / TXT 读取
document/splitter.py   LangChain 文本切片
vector/embedding.py    本地 BGE 向量化
vector/database.py     Chroma 持久化与检索
rag/retriever.py       Top-K 检索
rag/qa.py              提示词与大模型问答

扫描版 PDF 不包含文本层,当前版本会提示先进行 OCR。

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors