项目介绍
AI 知识库(Python)是知识库系统的 FastAPI 实现,与 Java 版功能对齐、数据完全隔离,适合作为 Python 技术栈的对照与二次开发基础。
它提供知识库管理、文档解析、切片、检索问答、LangGraph Agent、配额与统计,前端接口字段与 Java 版保持一致。
技术栈
- 后端:Python 3.11+、FastAPI、SQLAlchemy 2.1 async
- 数据:PostgreSQL + pgvector、Redis db4
- RAG:LangChain 1.x、LangGraph 1.x
- 文件:MinIO
- 调度:APScheduler、uv
功能清单
| 模块 | 功能 |
|---|---|
| 知识库 | 分页、详情、保存、启停、删除、重建向量、下拉选项 |
| 文档 | 上传、解析、预览、下载、重建、重新向量化、版本 |
| 切片 | 分页、详情、标题路径、向量状态 |
| 问答 | 单轮/流式、会话、消息、反馈、可用性检查 |
| Agent | LangGraph create_agent 多跳问答,PostgreSQL 持久化记忆 |
| 检索 | pgvector 向量召回 + 关键词 ILIKE + RRF + 可选 LLM 重排 |
| 多租户 | 租户过滤、知识库范围、会话归属校验 |
| 计量 | 租户配额、问答次数、AI 调用流水、统计概览 |
| 补偿 | APScheduler 解析与向量化补偿,Redis 分布式锁 |
| 认证 | SSO 换票、本地会话、单点注销预留 |
技术架构
kb-admin-ui :3004
↓
kb-api :18015
├─ api/routers
├─ services / rag
├─ PostgreSQL + pgvector
├─ Redis / MinIO
└─ iam-app :18003
文档解析与向量化走状态机 + APScheduler 补偿;向量维度固定为 1024,换 embedding 模型需要全量重算。Python 与 Java 数据隔离、本地会话不互通。