Sfoglia il codice sorgente

配置信息修改

lingmin_package@163.com 2 settimane fa
parent
commit
e612101d15

+ 4 - 4
src/app/config/config.ini

@@ -112,10 +112,10 @@ download_base_url=http://192.168.92.61:9003
 
 # SSO客户端配置(样本中心接入外部统一认证平台)
 [sso]
-SSO_BASE_URL=http://192.168.92.61:8200
+SSO_BASE_URL=http://localhost:8200
 CLIENT_ID=WviiGL8KQE20tQhmhQPQhhJ5QpFK51F6
 CLIENT_SECRET=9WXP88hEHJiHRSiUdmx7ip5oQPzY0bnJNsEswQoO4sk6juCplyJTcnAiZsv7e3lJ
-REDIRECT_URI=http://localhost:3000/auth/callback
-FRONTEND_URL=http://localhost:3000
+REDIRECT_URI=http://localhost:3001/auth/callback
+FRONTEND_URL=http://localhost:3001
 SCOPE=email
-SSO_LOGOUT_REDIRECT_URL=http://192.168.92.61:9200/login
+SSO_LOGOUT_REDIRECT_URL=http://localhost:3000/login

+ 6 - 2
项目/其它/README.md

@@ -112,6 +112,11 @@ gunicorn app.server.app:app -w 4 -k uvicorn.workers.UvicornWorker --bind 0.0.0.0
 
 ```
 LQAdminPlatform/
+├── 项目/                       # 设计文档、API 接口定义、需求文档
+├── README.md                   # 项目说明
+├── Dockerfile                  # Docker 镜像构建(python:3.12-slim,暴露 8000 端口)
+├── README_deploy.md            # Docker 部署说明
+├── run.sh                      # 服务管理脚本(start/stop/restart/status)
 ├── src/
 │   ├── app/
 │   │   ├── server/          # 服务器启动模块
@@ -129,8 +134,7 @@ LQAdminPlatform/
 ├── scripts/                 # 脚本文件
 ├── test/                    # 测试文件
 ├── requirements/            # 依赖文件
-├── run_server.py           # 启动脚本(新)
-└── full_server.py          # 启动脚本(旧,保留兼容)
+└── run_server.py           # 启动脚本
 ```
 
 详细的项目结构说明请查看 [REFACTOR_README.md](./REFACTOR_README.md)

+ 0 - 1
项目/其它/项目追加开发说明.md

@@ -33,7 +33,6 @@
     - 样本中心 samp
 
     
-    
 - 项目结构
   - src/app/core 
     - execeptions.py 通用异常类定义

+ 90 - 0
项目/样本中心对外API接口需求文档.md

@@ -0,0 +1,90 @@
+
+
+
+### 样本中心对外API接口文档
+  - 知识库列表查询接口:GET /api/v1/knowledge-bases
+    - 接口逻辑:
+      - 只返回启用状态的知识库
+      - 默认排序:创建时间倒序
+    - 参数:
+      - 无
+    - 返回:
+      - 知识库ID
+      - 知识库名称
+      - 父集合表名
+      - 子集合表名
+      - 文档数量
+      - 状态
+      - 创建时间
+      - 创建人
+        - 元数据字典定义列表
+          - 字段中文名称
+          - 字段英文名
+          - 字段类型
+          - 字段描述
+  - 知识库详情查询接口(包括元数据详细信息):GET /api/v1/knowledge-bases/{id}
+    - 接口逻辑:
+      - 返回知识库详情
+    - 参数
+      - id:知识库ID ,必录参数
+    - 返回:
+      - 知识库ID
+      - 知识库名称
+      - 父集合表名
+      - 子集合表名
+      - 文档数量
+      - 状态
+      - 创建时间
+      - 创建人
+        - 元数据字典定义列表
+          - 字段中文名称
+          - 字段英文名
+          - 字段类型
+          - 字段描述
+  
+  - 知识库批量入库接口:POST /api/v1/knowledge-bases/batch-import
+    - 接口逻辑:
+      - 提交批量入库任务
+      - 批量入库任务完成后,会返回入库结果
+      - 将片段信息调用向量化模型,并保存到向量数据库中
+      - 如果是父子集合,需要构造父子关系
+    - 参数:
+      - 知识库ID,必录参数
+      - 批量入库数据
+        - 父段信息列表
+          - 分偏索引号,"index": 0,   
+          - 父段ID,"parent_id": 5138215886300893584,  
+          - 章节信息,"hierarchy": "建设工程质量管理条例", 非必录参数
+          - 父段文本信息,"text": "", 必录参数
+          - 父段元数据信息,metadata: {}, 非必录参数
+          - 文档ID,"doc_id": "5138215886300893584",非必录参数
+          - 标签列表,"tag_list": [],非必录参数
+          - 权限,"permission": {},非必录参数
+        - 子段信息列表
+          - 分偏索引号,"index": 0,
+          - 父段ID,"parent_id": 5138215886300893584,
+          - 章节信息,"hierarchy": "建设工程质量管理条例",
+          - 父段文本信息,"text": "" , 必录参数
+          - 父段元数据信息,metadata: {} , 非必录参数
+          - 文档ID,"doc_id": "5138215886300893584",非必录参数
+          - 标签列表,"tag_list": [],非必录参数
+          - 权限,"permission": {},非必录参数
+    - 返回:
+      - 任务ID
+      - 任务状态
+  
+  - 知识库批量入库任务查询接口:GET /api/v1/knowledge-bases/batch-import/{id}
+    - 接口逻辑:
+      - 根据入库任务ID查询入库任务状态
+    - 参数:
+      - id:入库任务ID,必录参数
+    - 返回:
+      - 任务ID
+      - 任务状态
+
+
+### API接口文档设计问题
+  - 外部系统(如:采集系统)接入样本中心API的token该怎么设计 
+  - 外部系统(如:采集系统)是批量异步任务
+    - 提交数据的任务ID,返回任务接收状态的接口,任务ID
+    - 处理完成后的任务ID,返回任务处理结果(轮询或回调)

+ 308 - 0
项目结构说明.md

@@ -0,0 +1,308 @@
+# LQAdminPlatform 项目结构说明
+
+## 1. 项目概述
+
+LQAdminPlatform 是一个基于 **FastAPI** 的后端管理平台,主要服务于"四川路桥"业务场景,包含三大核心功能域:
+
+| 功能域 | 说明 |
+|---|---|
+| 系统管理 | 用户、角色、菜单、权限、日志、仪表盘、字典管理 |
+| 授权管理 (SSO) | OAuth2 认证流程、JWT Token 管理、子系统单点登录 |
+| 样本中心 | 知识库、文档管理、知识片段、标签管理、语义检索(Milvus 向量搜索)、图片管理 |
+
+## 2. 技术栈
+
+| 类别 | 技术 |
+|---|---|
+| 语言 | Python 3.12 |
+| Web 框架 | FastAPI 0.104 + Uvicorn 0.24 |
+| ORM | SQLAlchemy 2.0(异步) |
+| 数据库迁移 | Alembic 1.12 |
+| 主数据库 | MySQL(aiomysql) |
+| 缓存 | Redis(aioredis) |
+| 向量数据库 | Milvus(pymilvus) |
+| 对象存储 | MinIO |
+| 认证 | python-jose (JWT) + passlib + bcrypt |
+| 数据校验 | Pydantic 2.x |
+| 任务队列 | Celery 5.3 + Flower |
+| AI/ML | langchain-openai、langchain-milvus、sentence-transformers |
+| 文档解析 | MinerU |
+| 日志 | loguru |
+| 容器化 | Docker + Docker Compose(MySQL / Milvus / Nginx) |
+
+## 3. 顶层目录结构
+
+```
+LQAdminPlatform/
+├── Dockerfile                  # Docker 镜像构建(python:3.12-slim,暴露 8000 端口)
+├── README_deploy.md            # Docker 部署说明
+├── run.sh                      # 服务管理脚本(start/stop/restart/status)
+├── run_server.py               # Python 入口(uvicorn 启动器,自动查找可用端口)
+├── requirements/               # Python 依赖管理
+│   ├── base.txt                # 生产依赖
+│   ├── dev.txt                 # 开发工具(pytest, black, flake8, mypy, mkdocs)
+│   └── requirements.txt        # 完整依赖(base + dev 合并)
+├── docker/                     # Docker Compose 编排
+│   ├── docker-compose.yml      # 总入口编排文件
+│   ├── mysql/                  # MySQL 服务
+│   ├── milvus/                 # Milvus 向量数据库
+│   └── nginx/                  # Nginx 反向代理
+├── logs/                       # 应用日志输出目录
+├── scripts/                    # SQL 脚本及工具脚本
+├── src/                        # 全部应用源代码
+├── 项目/                        # 设计文档、API 接口定义、需求文档
+└── .gitignore
+```
+
+## 4. 源代码目录结构(src/)
+
+```
+src/
+├── path_config.py                      # 自动配置 Python 导入路径
+├── deploy/                             # 前端部署脚本
+│   ├── admin_front_deploy.py
+│   ├── admin_front_deploy.sh
+│   └── admin_front_dempoy_README.md
+│
+└── app/
+    ├── __init__.py
+    │
+    ├── server/                         # FastAPI 应用工厂 & 入口
+    │   └── app.py                      # 主 FastAPI 实例:中间件、CORS、异常处理、路由注册、lifespan
+    │
+    ├── base/                           # 基础设施 / 连接管理
+    │   ├── async_mysql_connection.py   # SQLAlchemy 异步 MySQL 连接(get_db, init_db, close_db)
+    │   ├── async_redis_connection.py   # Redis 连接(init_redis, close_redis)
+    │   ├── milvus_connection.py        # Milvus 向量数据库连接
+    │   ├── minio_connection.py         # MinIO 对象存储连接
+    │   ├── mineru_connection.py        # MinerU 文档解析连接
+    │   ├── embedding_connection.py     # Embedding 模型配置
+    │   └── pymilvus_store_database.py # Milvus 存储抽象
+    │
+    ├── core/                           # 核心框架代码
+    │   ├── config.py                   # ConfigHandler — INI 配置文件解析器(全局实例: config_handler)
+    │   ├── exceptions.py               # 自定义异常 BaseAPIException
+    │   └── sliding_token_config.py     # 滑动窗口 Token 配置
+    │
+    ├── logger/                         # 日志配置
+    │   ├── config.py
+    │   └── loggering.py
+    │
+    ├── middleware/                     # HTTP 中间件
+    │   └── token_refresh_middleware.py # JWT Token 自动刷新中间件
+    │
+    ├── models/                         # 通用 / 全局 SQLAlchemy 模型
+    │   ├── base.py                     # 基础模型类
+    │   ├── user.py
+    │   ├── token.py
+    │   ├── log.py
+    │   ├── app.py
+    │   └── knowledge_base.py
+    │
+    ├── schemas/                        # 基础 Pydantic 响应结构
+    │   ├── base.py                     # ResponseSchema
+    │   ├── auth.py
+    │   └── user.py
+    │
+    ├── utils/                          # 工具函数
+    │   ├── auth_decorator.py           # 认证装饰器
+    │   ├── auth_dependency.py          # 认证依赖注入
+    │   ├── security.py                 # 安全工具(密码哈希、Token 生成等)
+    │   └── vector_utils.py             # 向量工具
+    │
+    ├── services/                       # 业务逻辑层(Service 类)
+    │   ├── auth_service.py             # 用户登录认证
+    │   ├── system_service.py           # 系统管理
+    │   ├── system_service_ext.py       # 系统管理扩展
+    │   ├── user_service.py             # 用户服务
+    │   ├── oauth_service.py            # OAuth 服务
+    │   ├── jwt_token.py                # JWT Token 管理
+    │   ├── sample_service.py           # 样本中心管理
+    │   ├── knowledge_base_service.py   # 知识库服务
+    │   ├── snippet_service.py          # 知识片段服务
+    │   ├── tag_category_service.py     # 标签分类服务
+    │   ├── dict_category_service.py    # 字典分类服务
+    │   ├── dict_item_service.py        # 字典项服务
+    │   ├── milvus_service.py           # Milvus 向量搜索服务
+    │   ├── search_engine_service.py    # 搜索引擎服务
+    │   ├── image_service.py            # 图片服务
+    │   └── task_service.py             # 任务服务
+    │
+    │
+    │   ====== 以下三大模块按功能域划分 ======
+    │
+    ├── system/                         # 【系统管理模块】
+    │   ├── models/                     # 系统相关 SQLAlchemy 模型
+    │   └── schemas/                    # 系统相关 Pydantic 结构
+    │       ├── dict_category_schema.py
+    │       ├── dict_item_schema.py
+    │       └── system_schemas.py
+    │
+    ├── oauth/                          # 【授权管理 / SSO 模块】
+    │   ├── models/                     # OAuth SQLAlchemy 模型
+    │   └── schemas/                    # OAuth Pydantic 结构
+    │
+    └── sample/                         # 【样本中心模块】
+        ├── models/                     # 样本中心 SQLAlchemy 模型
+        │   ├── knowledge_base.py       # 知识库模型
+        │   ├── metadata.py             # 元数据模型
+        │   ├── tag_category.py         # 标签分类模型
+        │   ├── search_engine.py        # 搜索引擎模型
+        │   ├── base_info.py            # 基本信息模型
+        │   └── custom_schema.py        # 自定义结构模型
+        └── schemas/                    # 样本中心 Pydantic 结构
+            ├── knowledge_base.py
+            ├── sample_schemas.py
+            ├── search_engine.py
+            └── tag_category.py
+
+├── views/                              # HTTP 路由定义(API 端点)
+│   ├── system_view.py                  # 系统管理路由(用户、角色、菜单、权限等)
+│   ├── auth_view.py                    # 认证路由(登录、验证码、刷新 Token)
+│   ├── sso_view.py                     # SSO 授权路由
+│   ├── oauth_view.py                   # OAuth 路由
+│   ├── sample_view.py                  # 样本中心路由
+│   ├── knowledge_base_view.py          # 知识库 CRUD 路由
+│   ├── snippet_view.py                 # 知识片段 CRUD 路由
+│   ├── tag_view.py                     # 标签管理路由
+│   ├── search_engine_view.py           # 搜索/检索引擎路由
+│   ├── image_view.py                   # 图片管理路由
+│   ├── dict_category_view.py           # 字典分类管理路由
+│   └── dict_item_view.py               # 字典项管理路由
+│
+└── api/                                # 对外 API 定义(v1 版本)
+    └── v1/
+        ├── api_router.py               # 路由聚合(向后兼容)
+        ├── system_api_view.py          # 外部系统 API
+        └── document/
+            └── knowledge_base.py       # 知识库对外 API
+```
+
+## 5. 功能模块详细说明
+
+### 5.1 系统管理(system/)
+
+| 子功能 | 说明 |
+|---|---|
+| 用户管理 | 用户 CRUD、状态管理、密码重置 |
+| 角色管理 | 角色 CRUD、角色权限分配 |
+| 菜单管理 | 菜单树、权限关联 |
+| 权限管理 | 权限粒度控制 |
+| 系统日志 | 操作日志记录与查询 |
+| 仪表盘 | 数据统计与展示 |
+| 应用管理 | 子系统注册与管理 |
+| 字典管理 | 数据字典分类与字典项维护 |
+
+### 5.2 授权管理(oauth/)
+
+| 子功能 | 说明 |
+|---|---|
+| SSO 认证流程 | 验证凭证 → 生成授权码 → 重定向回子系统 → 授权码换 Token → 获取用户信息 |
+| JWT Token 管理 | Token 生成、验证、刷新(滑动窗口机制) |
+| 子系统登录认证 | 子系统通过 OAuth2 流程接入统一认证平台 |
+
+### 5.3 样本中心(sample/)
+
+| 子功能 | 说明 |
+|---|---|
+| 知识库管理 | 知识库 CRUD、权限控制 |
+| 文档管理 | 文档上传、解析(MinerU)、元数据管理 |
+| 知识片段管理 | 文档切片、片段 CRUD |
+| 标签管理 | 标签分类、标签关联 |
+| 检索引擎 | 全文检索 + Milvus 向量语义检索 |
+| 图片管理 | 图片上传、存储(MinIO)、检索 |
+
+## 6. 关键文件说明
+
+| 文件 | 作用 |
+|---|---|
+| `run_server.py` | 应用启动入口,通过 uvicorn 启动 FastAPI,自动查找可用端口 |
+| `run.sh` | Shell 服务管理脚本,支持 start/stop/restart/status |
+| `src/app/server/app.py` | FastAPI 应用实例,负责中间件、CORS、异常处理、路由注册 |
+| `src/app/core/config.py` | INI 配置文件解析器,全局配置读取 |
+| `src/app/base/async_mysql_connection.py` | 异步 MySQL 连接池管理 |
+| `src/app/base/async_redis_connection.py` | Redis 连接池管理 |
+| `src/app/base/milvus_connection.py` | Milvus 向量数据库连接 |
+| `src/app/middleware/token_refresh_middleware.py` | Token 自动刷新中间件 |
+| `src/app/config/config.ini` | 应用运行时配置(数据库连接、端口、日志级别等) |
+
+## 7. 数据流向
+
+```
+客户端请求
+    ↓
+Nginx 反向代理(可选)
+    ↓
+FastAPI (uvicorn :8000)
+    ↓
+middleware/token_refresh_middleware.py(Token 刷新)
+    ↓
+views/*.py(路由匹配)
+    ↓
+services/*.py(业务逻辑)
+    ↓
+models/*.py(数据模型)
+    ↓
+MySQL(主数据存储)
+Redis(缓存 / Session)
+Milvus(向量检索)
+MinIO(对象存储)
+```
+
+## 8. 前端项目(LQAdminFront,独立仓库)
+
+```
+LQAdminFront/
+├── src/
+│   ├── router/               # 路由配置
+│   ├── components/           # 可复用组件
+│   ├── layouts/              # 布局组件
+│   ├── utils/                # 工具函数
+│   ├── api/                  # API 请求(按模块划分)
+│   │   ├── system/           # 系统管理 API 请求
+│   │   │   ├── admin.ts
+│   │   │   ├── app.ts
+│   │   │   ├── user.ts
+│   │   │   ├── role.ts
+│   │   │   └── menu.ts
+│   │   ├── oauth/            # 授权管理 API 请求
+│   │   └── sample/           # 样本中心 API 请求
+│   │       └── document.ts
+│   └── views/                # 页面视图
+│       ├── auth/             # 登录认证
+│       │   ├── Login.vue
+│       │   ├── OAuthCallback.vue
+│       │   └── Register.vue
+│       ├── system/           # 系统管理页面
+│       │   ├── Apps.vue
+│       │   ├── Dashboard.vue
+│       │   ├── Menus.vue
+│       │   ├── Permissions.vue
+│       │   ├── Roles.vue
+│       │   ├── Settings.vue
+│       │   └── Users.vue
+│       └── sample/           # 样本中心页面
+│           ├── knowledge_base/
+│           ├── documents/
+│           ├── knowledge_chunk/
+│           ├── tag/
+│           ├── knowledge_chunk_search/
+│           ├── base_info/
+│           └── image/
+```
+
+## 9. 项目架构分层
+
+```
+┌─────────────────────────────────────────────┐
+│                  views/ (路由层)               │  ← HTTP 端点定义,按功能划分
+├─────────────────────────────────────────────┤
+│              services/ (业务逻辑层)            │  ← 业务规则、数据处理
+├─────────────────────────────────────────────┤
+│   models/ (数据模型)  │  schemas/ (数据校验)   │  ← SQLAlchemy 模型 + Pydantic 结构
+├─────────────────────────────────────────────┤
+│              base/ (基础设施层)               │  ← MySQL / Redis / Milvus / MinIO 连接
+├─────────────────────────────────────────────┤
+│   core/ (核心框架)  │  middleware/ (中间件)    │  ← 配置、异常、Token 刷新
+└─────────────────────────────────────────────┘
+```