dev·portfolio
← 所有项目

通用 RAG 知识库底座

2026-03 启动 · 状态:进行中

前后端分离、行业无关的通用 RAG 知识库底座,覆盖文档接入→切分→检索→问答→留痕→评测全链路,换行业只换数据不换代码。

RAGFastAPISpring BootVue3MySQL知识库检索增强

🎮 交互原型

在新标签页打开全屏 →

项目简介

面向所有知识库类项目的通用研发底座,覆盖「文档接入 → 切分 → 检索 → RAG 问答 → 对话留痕 → 效果评测 → 模型配置」全链路,开箱即用。

  • 三端一体:Vue3 前端 + Python(FastAPI)主后端 + Java(Spring Boot)扩展后端,同仓交付
  • 三端同库 + JWT 互认:Python 与 Java 共享同一 MySQL 库(12 张表)、同一 JWT 规范,token 双向可用
  • 行业无关:从芯禾项目抽离,剔除行业业务代码;换行业只换业务文档与标签,不改前后端代码
  • 零手工初始化:首次启动自动建库、建 12 表、建管理员,全部幂等,两分钟得到可用环境

当前检索内置轻量关键词检索用于演示,向量 / Rerank / LLM 可按扩展指南接入;Redis、WebSocket 为方案预留。

我做了什么

  1. 设计并落地三端一体架构,Python 主后端承担全量业务(9 子域 38 接口),Java 扩展后端对接既有体系,验证跨语言共享同库与 JWT 互认
  2. 实现知识库全链路闭环:文档上传 → 异步解析切分 → 检索测试 → 问答应用 → 对话留痕 → 满意度反馈 → LLM-as-judge 评测 → 模型配置管理
  3. 设计插件化文档解析管线,支持普通文档、电路图 OCR、超长技术文档(2000–3000 页)章节结构化、地质报告、财务票据、百万级大表格等差异化解析
  4. 落地 12 张表的数据模型,预埋多租户 tenant_id 与 kb_permission 权限表,支持按用户/角色授予 browse/edit/manage 三级权限
  5. 实现前端 12 个功能页面(Vue3 + Element Plus + ECharts),全部行业无关,更换业务场景无需修改前端代码

核心模块

前端 12 个功能页面

模块说明
工作台统计卡、知识库分布环形图、近 7 日问答趋势、最近文档
知识库管理卡片网格,新建/编辑/删除,配置颜色、切分策略、检索策略、权限
文档管理上传文档(分类、业务范围标签),查看解析/向量化状态,删除与重解析
片段管理按知识库/文档/类型浏览切片,片段在线编辑、删除
检索测试选定知识库或跨库检索,业务范围、Top K 过滤,相关性评分徽章
应用管理问答应用 CRUD:绑定多知识库、对话模式、系统提示词、历史轮数
问答测试多轮对话气泡式,右侧面板展示执行链与引用来源
对话日志会话列表、消息回放、满意度反馈
评测集管理评测集与 QA 样本管理,手工录入、参与评测开关
批量评测选评测集/检索策略/Judge 模型,LLM-as-judge 批量打分,四维指标
策略对比四指标雷达图 + 总分柱状图,CSV 导出
AI 模型配置对话/向量/重排模型配置,API Key 脱敏,一键连通性测试

Python 后端(FastAPI,端口 8060)

  • 9 个业务子域:工作台与统计、知识库管理、文档管理、片段管理、检索测试、问答应用、对话日志、效果评测、AI 模型配置,共 38 个接口
  • 分层架构:应用工厂(CORS/中间件/异常/路由)→ 基础设施层(config/security/response/logging)→ 数据访问层(异步引擎 + 12 表模型)→ 接口层(auth + kb)
  • 鉴权:sha256(salt+password) 登录,HS256 JWT(72h),受保护接口经 get_current_user 解析,写操作需 require_admin

Java 扩展后端(Spring Boot,端口 8024)

  • 管理员登录,密码哈希与 JWT 规则与 Python 完全一致,token 双向互认
  • 知识库 / 文档 / 片段三个只读查询接口,验证 Java 跨语言访问同一库
  • 写接口预留扩展点,后续按需补齐

标准 RAG 检索管线(目标实现)

用户问题 → Query 改写(HyDE / 多查询扩展)→ 混合检索(向量 TopK + BM25 TopK → RRF 融合)
→ 多模态片段召回(正文/表格/公式/图片)→ Rerank 重排 → 上下文组装 → 带引用来源的答案

上层应用只消费标准检索结果,底层向量库、模型实现可插拔替换。

技术栈

层技术说明
前端框架Vue 3.4 + TypeScript 5.4script setup 组合式 API,严格模式零错误
UI 组件库Element Plus 2.6中文语言包,全量注册
状态 / 路由Pinia 2.1 + Vue Router 4.3auth 登录态 store,history 模式 + 登录守卫
构建 / HTTPVite 5.2 + axios 1.6产物直出后端 web/,统一信封拦截、401 跳登录
图表ECharts环形图、趋势图、雷达图、柱状图
Python WebFastAPI 0.115异步,自带 OpenAPI(/docs)
Python ORMSQLAlchemy 2.0 + aiomysql异步引擎 + 12 张表模型
Java 框架Spring Boot 3.3 + MyBatis-Plus 3.5JDK 21,下划线转驼峰
数据库MySQL 8.x独立库 kb_foundation,utf8mb4
配置pydantic-settings 2.7.env 环境变量注入
规划组件Redis、WebSocket任务队列、会话、幂等、解析进度与流式问答推送

迭代时间线

阶段内容验收标准
M1 底座可用三端 + 12 表 + 38 接口 + 12 页面全链路演示首次启动自动初始化,admin 登录后全页面可操作
M2 检索升级接入向量库 + Embedding + 混合检索 + Rerank检索测试页对比策略,评测四维指标可量化提升
M3 生成升级接入真实 LLM,替换演示执行链问答返回真实生成答案 + 引用来源
M4 多租户启用 RBAC + tenant_id 行级隔离多角色权限分支生效,数据隔离验证
M5 SaaS 化租户自助开通 + 配额计费单底座多客户隔离部署上线

产物