玄清工作流 RAG系统

Python
FastAPI
License
Version

企业级知识检索与智能问答平台

让找答案变得像聊天一样简单


🌟 项目亮点

🎯 解决核心痛点

  • 告别翻文档找答案的痛苦 – 一问一答,秒速获取精准信息
  • 支持多种文档格式 – PDF、图片、Office文档、文本,想上传什么传什么
  • 智能理解图片内容 – 连图片中的文字信息都能提取和问答

🏆 技术架构优势

  • FastAPI + LangChain – 现代化后端架构,性能卓越
  • Pinecone向量数据库 – 毫秒级检索,准确度惊人
  • OpenAI GPT模型 – 基于最新AI技术,回答专业可靠
  • 双前端设计 – 既有简洁的Python界面,也有炫酷的企业级HTML5界面

🎨 用户体验突出

  • Bento Grid设计语言 – 参考阿里巴巴官网,现代简约
  • 拖拽上传文件 – 就像把文件丢到桌子上一样自然
  • 实时状态反馈 – 系统状态一目了然,处理进度实时显示
  • 响应式设计 – 手机、平板、电脑都能完美使用

🚀 快速开始

🔧 环境准备

  1. 克隆项目
git clone <repository-url>
cd rag_system_fastapi
  1. 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Mac/Linux
# 或者 Windows 用户使用:
# venv\Scripts\activate
  1. 安装依赖
pip install -r requirements.txt
  1. 配置API密钥
# 复制环境变量模板
cp .env.example .env

# 编辑 .env 文件,填入你的API密钥:
# OPENAI_API_KEY=your-openai-api-key
# PINECONE_API_KEY=your-pinecone-api-key
# UNSTRUCTURED_API_KEY=your-unstructured-api-key  # 可选,用于Office文档

🎬 启动系统

方式一:标准启动

# 启动后端API服务
bash run.sh

# 新开一个终端,启动前端
bash start_frontend.sh

方式二:企业级前端

# 启动后端API服务
bash run.sh

# 新开一个终端,启动企业级HTML5前端
bash start_premium_frontend.sh

🌐 访问地址


💡 功能特色

📚 智能文档处理

文档类型 支持格式 最大大小 处理方式
PDF文档 .pdf 15MB 直接文本提取
图片文件 .jpg .png .webp .gif .bmp 5MB AI视觉识别
Office文档 .doc .docx .xls .xlsx .ppt .pptx 10MB 专业解析器
纯文本 .txt 2MB 直接处理

🧠 核心工作流程

graph TD
    A[📁 上传文档] --> B[🔍 智能解析]
    B --> C[✂️ 智能分块]
    C --> D[🧮 向量化]
    D --> E[💾 存储到Pinecone]
    
    F[❓ 用户提问] --> G[🔍 向量检索]
    G --> H[📋 找到相关文档]
    H --> I[🤖 AI生成回答]
    I --> J[✅ 返回答案 + 来源]

🎨 双前端体验

🏢 企业级前端 (HTML5)

  • 现代化界面 – Bento Grid布局,阿里巴巴配色
  • 🎭 流畅动画 – 仿苹果官网动效,丝滑体验
  • 📊 数据可视化 – Chart.js图表,数据一目了然
  • 📱 响应式设计 – 完美适配各种设备
  • 🎯 专业图标 – Font Awesome图标库

🔧 开发者前端 (Streamlit)

  • 🚀 快速原型 – 适合开发调试
  • 📈 数据分析 – Plotly图表支持
  • 🌙 深色模式 – 保护开发者眼睛
  • 实时更新 – 代码改动立即生效

📖 使用指南

🎯 基本使用

  1. 📤 上传文档

    • 点击上传区域或拖拽文件
    • 支持批量上传
    • 自动识别文件类型
  2. 💬 开始问答

    • 在聊天框输入问题
    • AI会基于上传的文档回答
    • 每个回答都会显示信息来源
  3. 📊 查看统计

    • 实时查看文档数量
    • 向量存储状态
    • 系统运行状态

🔥 高级功能

📋 快速问题模板

  • "这份文档的主要内容是什么?"
  • "请总结关键要点"
  • "有哪些重要的数据或结论?"

🎛️ 系统管理

  • 文档管理 – 查看、删除已上传文档
  • 状态监控 – 实时查看系统健康状态
  • 数据统计 – 文档类型分布,使用趋势分析

🛠️ API 接口文档

📤 文档管理接口

POST /api/documents/upload
Content-Type: multipart/form-data

上传文档文件
GET /api/documents
获取文档列表
DELETE /api/documents/{doc_id}
删除指定文档
GET /api/documents/stats
获取文档统计信息

💬 问答接口

POST /api/qa/ask
Content-Type: application/x-www-form-urlencoded

question=你的问题内容

📋 完整API文档

启动服务后访问:


📁 项目结构

rag_system_fastapi/
├── 📁 app/                          # 后端应用
│   ├── 📄 main.py                   # FastAPI应用入口
│   ├── 📁 routers/                  # API路由
│   │   ├── 📄 documents.py          # 文档处理接口
│   │   └── 📄 qa.py                 # 问答接口
│   ├── 📁 services/                 # 业务逻辑
│   │   ├── 📄 document_processor.py # 文档处理服务
│   │   └── 📄 qa_service.py         # 问答服务
│   └── 📁 utils/                    # 工具类
│       └── 📄 config.py             # 配置管理
├── 📄 frontend_pro.py               # Streamlit前端
├── 📄 frontend_premium.html         # 企业级HTML5前端
├── 📄 requirements.txt              # Python依赖
├── 📄 .env.example                  # 环境变量模板
├── 🚀 run.sh                        # 后端启动脚本
├── 🚀 start_frontend.sh             # Streamlit前端启动脚本
└── 🚀 start_premium_frontend.sh     # 企业级前端启动脚本

🛠️ 技术栈

🔧 后端技术

🎨 前端技术


🎯 适用场景

🏢 企业应用

  • 📚 企业知识库 – 员工手册、规章制度、技术文档
  • 🎧 智能客服 – 基于产品文档的自动问答
  • 📈 商业智能 – 报告分析、数据挖掘

🎓 教育科研

  • 📖 学习助手 – 教材、论文、研究资料问答
  • 🔬 研究辅助 – 文献检索、知识发现
  • 👨‍🏫 教学工具 – 智能答疑、课程辅导

⚖️ 专业服务

  • 📋 法律文档 – 合同分析、法规查询
  • 🏥 医疗知识 – 医学文献、诊疗指南
  • 💰 金融分析 – 政策解读、市场研究

❗ 故障排除

🔧 常见问题

Q: 启动后端时报错 "ModuleNotFoundError"

# 确保在虚拟环境中
source venv/bin/activate
pip install -r requirements.txt

Q: 上传文档失败

  • 检查文件大小是否超出限制
  • 确保API密钥配置正确
  • 查看控制台错误信息

Q: 问答功能不工作

# 检查后端服务状态
curl http://localhost:8000/api/health

# 检查Pinecone连接
# 查看 .env 文件中的 PINECONE_API_KEY 配置

Q: 企业级前端访问不了

# 确保后端服务已启动
curl http://localhost:8000/

# 确保没有端口冲突
lsof -i :8080

🆘 获取帮助

遇到问题?

  1. 查看控制台输出日志
  2. 检查 .env 文件配置
  3. 确认网络连接正常
  4. 参考项目文档:项目分享 - 我是怎么做出这个RAG智能问答系统的.md

🎁 项目文档


🚧 未来规划

🎯 短期目标

  • 支持更多文档格式 (Markdown, HTML)
  • 添加用户认证系统
  • 优化移动端体验
  • 支持批量文档处理

🌟 长期愿景

  • 多语言支持
  • 知识图谱构建
  • 协作功能
  • 企业级部署方案

👥 贡献指南

欢迎贡献代码!请遵循以下步骤:

  1. Fork 这个仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

📞 联系方式

🌟 项目作者

博客
AI工作流
GitHub
Email


📄 开源协议

本项目基于 MIT License 开源协议。


⭐ 如果这个项目对你有帮助,请给个星标支持一下!

让知识检索变得更智能,让问答体验更自然 🚀

已有 0 条评论
滚动至顶部