Skip to content

About

基于 FastAPI、Vue 3、LangChain、MySQL 和 Qdrant 的单用户 RAG 知识库问答系统

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

RAG 知识库问答系统

基于 Vue 3、FastAPI、LangChain、MySQL 与 Qdrant 的单用户知识库问答项目。

项目简介

当前项目已经从早期的通用 ChatGPT 中转模式,重构为“知识库优先”的问答系统,主要能力包括:

  • JWT 登录与单用户后台种子账号
  • 支持 pdf / docx / md / txt 文档上传
  • 文档切片、向量化、Qdrant 检索
  • 会话与消息历史持久化到 MySQL
  • 回答展示引用来源
  • 检索不足时自动切换到模型直答兜底

技术栈

层级 技术
前端 Vue 3 + Vite + Naive UI
后端 FastAPI + SQLAlchemy + Alembic
检索 LangChain + Qdrant
持久化 MySQL
部署 Docker Compose

快速开始

1. 配置环境变量

先复制模板文件:

cp .env.example .env
cp backend/.env.example backend/.env

前端通常保持默认即可;后端需要重点确认这些字段:

  • SECRET_KEY
  • OPENAI_CHAT_API_KEY
  • OPENAI_CHAT_API_BASE
  • OPENAI_CHAT_MODEL
  • OPENAI_EMBEDDING_API_KEY
  • OPENAI_EMBEDDING_API_BASE
  • OPENAI_EMBEDDING_MODEL
  • ADMIN_USERNAME
  • ADMIN_PASSWORD

2. 启动整套服务

统一使用项目根目录的 Compose 入口:

docker compose up -d --build

3. 访问系统

  • 前端:http://127.0.0.1:8080
  • 后端 API:http://127.0.0.1:8000
  • MySQL:127.0.0.1:3307
  • Qdrant:http://127.0.0.1:6333

默认初始化账号:

  • 用户名:hehe
  • 密码:123456

常用命令

docker compose ps
docker compose logs -f backend
docker compose down

知识库使用流程

  1. 打开网页并登录。
  2. 进入 知识库 页面。
  3. 上传 pdf / docx / md / txt 文档。
  4. 等待文档状态变为 ready。
  5. 回到聊天页面,针对知识库内容提问。

仓库中自带了一套演示资料,位于 sample-kb。

开发说明

仅启动前端开发

pnpm install
pnpm dev

后端开发

后端推荐直接通过 Docker Compose 运行。如果需要本地 Python 调试,可在 backend/ 目录下准备虚拟环境,并结合 backend/.env 启动 FastAPI。

目录说明

  • src/:Vue 前端
  • backend/:FastAPI 后端
  • docker/:前端容器使用的 nginx 配置
  • sample-kb/:示例知识库文档
  • kubernetes/:Kubernetes 部署模板

备注

  • 本项目已不再使用旧的 Node 后端。
  • 根目录 docker-compose.yml 是当前唯一维护的 Compose 入口。
  • 当知识库未命中足够相关片段时,系统会切换到模型直答模式,并只展示来源标题。
  • 当前仓库未提交真实密钥;发布时请仅提交 .env.example,不要提交本地 .env。
  • kubernetes/ 目录现已提供与当前架构匹配的部署模板,但部署前仍需替换镜像地址和密钥配置。

License

当前仓库未附带开源许可证;如果你准备公开开源,建议补充一个明确的 LICENSE 文件。

About

基于 FastAPI、Vue 3、LangChain、MySQL 和 Qdrant 的单用户 RAG 知识库问答系统

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages