一个基于 RAG(Retrieval-Augmented Generation)的智能论文搜索与问答系统,支持论文上传、向量化存储、智能检索和对话问答功能。
# Linux/macOS
chmod +x start.sh
./start.sh
# Windows
start.bat- 环境配置
# 复制配置文件
cp .env.example .env
# 根据实际情况修改 .env 文件
# 安装依赖
pip install -r requirements.txt
cd frontend && npm install && cd ..- 启动服务
# 启动向量数据库
chroma run --path ./papersearch_paragraph_db --host localhost --port 8002 &
chroma run --path ./papersearch_sentence_db --host localhost --port 8003 &
# 启动后端服务
cd backend && uvicorn main:app --host 0.0.0.0 --port 8000 &
# 启动算法服务
cd backend_algo && uvicorn main:app --host 0.0.0.0 --port 8001 &
# 启动前端
cd frontend && npm run dev- 前端: Vue.js 3 + TypeScript + Element Plus + Vite
- 后端业务层: FastAPI (端口: 8000)
- 后端算法层: FastAPI (端口: 8001)
- 向量数据库: ChromaDB (端口: 8002, 8003)
- 关系数据库: MySQL
- LLM服务: 千问/Qwen2.5
- Node.js: 18.0+
- Python: 3.8+
- MySQL: 8.0+
- 操作系统: Windows/Linux/macOS
git clone <repository-url>
cd mysql_fastapi_vue_sample_project-dev# 复制环境配置文件
cp .env.example .env
# 编辑 .env 文件,修改以下配置:
# - DATABASE_URL: 数据库连接地址
# - LLM_API_BASE: LLM服务地址
# - SECRET_KEY: 加密密钥MySQL 数据库设置:
# 创建数据库
CREATE DATABASE paper_search_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# 创建用户(可选)
CREATE USER 'paper_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON paper_search_db.* TO 'paper_user'@'localhost';
FLUSH PRIVILEGES;更新 .env 文件中的数据库连接:
DATABASE_URL=mysql+pymysql://paper_user:your_password@localhost:3306/paper_search_db详细安装步骤见下方,推荐使用一键启动脚本快速部署。
如果库与依赖已经准备完毕,以下是快速运行方法:
cd backend
uvicorn main:app --port 8000
cd backend_algo
uvicorn main:app --port 8001
chroma run --path ./papersearch_db --host localhost --port 8002
chroma run --path ./papersearch_paragraph_db --host localhost --port 8002
chroma run --path ./papersearch_sentence_db --host localhost --port 8003
cd frontend
npm run dev
- 修改数据库连接配置(
backend/database.py):
SQLALCHEMY_DATABASE_URL = "mysql+pymysql://用户名:密码@localhost:3306/test"
# 我的用户名与密码为 mysql+pymysql://root:20051123-Hy@localhost:3306/test进入后端目录:
cd backend创建虚拟环境
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/macOS
source venv/bin/activate安装依赖
pip install -r requirements.txt启动服务
uvicorn main:app --port 8000进入算法层目录:
cd backend_algo创建虚拟环境:
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/macOS
source venv/bin/activate安装依赖:
pip install -r requirements.txt启动服务:
uvicorn main:app --port 8001启动主向量数据库:
chroma run --path ./papersearch_db --host localhost --port 8002启动段落级向量数据库:
chroma run --path ./papersearch_paragraph_db --host localhost --port 8002启动句子级向量数据库:
chroma run --path ./papersearch_sentence_db --host localhost --port 8003进入前端目录:
cd frontend安装依赖:
npm install启动开发服务器:
npm run dev-
端口冲突:
- 检查端口是否被占用:
netstat -ano | findstr :8000 - 修改配置文件中的端口号
- 检查端口是否被占用:
-
数据库连接失败:
- 检查 MySQL 服务是否启动
- 验证数据库连接字符串
- 确认用户权限
-
向量数据库启动失败:
- 检查 ChromaDB 安装:
pip show chromadb - 确认数据目录权限
- 查看日志文件:
chroma.log
- 检查 ChromaDB 安装:
-
前端构建失败:
- 清除缓存:
npm cache clean --force - 删除 node_modules:
rm -rf node_modules && npm install
- 清除缓存:
-
浏览器CORS问题:
- 确保后端允许跨域请求
- 浏览器打开开发者工具,查看网络请求是否有 CORS 错误
- 后端日志:控制台输出
- ChromaDB 日志:
chroma.log文件 - 前端日志:浏览器开发者工具