Skip to content

16yunH/mysql_fastapi_vue_sample_project-dev

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

基于RAG的智能论文搜索与问答系统

一个基于 RAG(Retrieval-Augmented Generation)的智能论文搜索与问答系统,支持论文上传、向量化存储、智能检索和对话问答功能。

系统架构图 FastAPI Vue.js License

🚀 快速开始

方式一:一键启动(推荐)

# Linux/macOS
chmod +x start.sh
./start.sh

# Windows
start.bat

方式二:手动启动

  1. 环境配置
# 复制配置文件
cp .env.example .env
# 根据实际情况修改 .env 文件

# 安装依赖
pip install -r requirements.txt
cd frontend && npm install && cd ..
  1. 启动服务
# 启动向量数据库
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

🛠️ 详细安装步骤

1. 克隆项目

git clone <repository-url>
cd mysql_fastapi_vue_sample_project-dev

2. 配置环境变量

# 复制环境配置文件
cp .env.example .env

# 编辑 .env 文件,修改以下配置:
# - DATABASE_URL: 数据库连接地址
# - LLM_API_BASE: LLM服务地址  
# - SECRET_KEY: 加密密钥

3. 数据库配置

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

4. 服务启动

详细安装步骤见下方,推荐使用一键启动脚本快速部署。


📖 原版部署说明

0. 快速运行方法

如果库与依赖已经准备完毕,以下是快速运行方法:

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

1. 数据库配置

MySQL 数据库设置

  1. 修改数据库连接配置(backend/database.py):
SQLALCHEMY_DATABASE_URL = "mysql+pymysql://用户名:密码@localhost:3306/test"
# 我的用户名与密码为 mysql+pymysql://root:20051123-Hy@localhost:3306/test

2. 后端部署

2.1 后端业务层 (backend)

进入后端目录:

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

2.2 后端算法层 (backend_algo)

进入算法层目录:

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

3. 向量数据库部署

启动 ChromaDB 服务

启动主向量数据库:

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

4. 前端部署

4.1 开发环境

进入前端目录:

cd frontend

安装依赖:

npm install

启动开发服务器:

npm run dev

访问应用:http://localhost:5173

常见问题

  1. 端口冲突

    • 检查端口是否被占用:netstat -ano | findstr :8000
    • 修改配置文件中的端口号
  2. 数据库连接失败

    • 检查 MySQL 服务是否启动
    • 验证数据库连接字符串
    • 确认用户权限
  3. 向量数据库启动失败

    • 检查 ChromaDB 安装:pip show chromadb
    • 确认数据目录权限
    • 查看日志文件:chroma.log
  4. 前端构建失败

    • 清除缓存:npm cache clean --force
    • 删除 node_modules:rm -rf node_modules && npm install
  5. 浏览器CORS问题

    • 确保后端允许跨域请求
    • 浏览器打开开发者工具,查看网络请求是否有 CORS 错误

日志查看

  • 后端日志:控制台输出
  • ChromaDB 日志chroma.log 文件
  • 前端日志:浏览器开发者工具

About

No description, website, or topics provided.

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors