根据目标需求构建知识库,基于RAG技术,构建面向知识问答的web系统,该系统能够回答水文化相关的问题(含水利工程、水利相关历史名人、水利习俗、河流湖泊介绍等),并具有记忆能力。
project-root/
├── backend/
│ ├── api/ # FastAPI Web 服务
│ │ ├── app.py # API 入口,路由定义
│ │ ├── models.py # Pydantic 请求/响应模型
│ │ └── rag_service.py # RAG 调用封装 + 对话记忆管理
│ ├── RAG/ # 核心 RAG 模块(勿改动)
│ │ ├── main.py # 检索-重排-生成核心逻辑
│ │ ├── datas/ # 水利文本数据集
│ │ ├── database/ # ChromaDB 向量库持久化目录
│ │ └── models/ # Cross-Encoder 重排模型
│ └── RAG_test.py # CLI 入口(开发调试用)
├── frontend/ # Vue 3 + Element Plus 前端
│ ├── src/
│ │ ├── App.vue # 聊天界面主组件
│ │ └── main.js # Vue 入口
│ ├── index.html
│ ├── package.json
│ ├── package-lock.json
│ └── vite.config.js
├──requirements.txt #python环境所需的包
└── README.md #项目说明文档
在根目录路径下的终端中运行下列指令
pip install -r requirements.txt
将DEEPSEEK API-key 放进系统环境变量中,命名为DEEPSEEK_API_KEY,内容放入正确的api-key。
在根目录路径下的终端中按顺序运行下列指令
cd frontend
npm install- 启动后端服务
在根目录下运行下列代码:
uvicorn backend.api.app:app --host 0.0.0.0 --port 8000 --reload- 启动前端服务
在根目录下运行下列代码:
cd frontend
npm run dev前端默认运行在 http://127.0.0.1:3000 ,自动代理 API 请求到后端 8000 端口。
- 首次部署完成提问之前要先进行重建向量数据库,否则将会出现错误,无法回答
- 启动后端服务,需要一些特殊手段,因为相关模型链接在国外的网站上面,否则将无法加载相关模型,进而无法启动后端服务
- 接口文档在http://127.0.0.1:8000/docs