nex_docus/docs/sdd/architecture/overview.md

43 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 架构概览Overview
## 系统定位
NEX Docus 是**单机可部署**的团队文档平台,后端 FastAPI 单体 + 前端 React SPA + MySQL + Redis + 本地文件系统 + 本地检索/向量引擎,全部由 docker-compose 编排为同网段容器。
## 逻辑架构
```mermaid
graph TD
Client[React SPA] -->|JSON/HTTP| API[FastAPI Backend :8000]
Agent[External Agent] -->|MCP streamableHttp| API
API --> DB[(MySQL)]
API --> RD[(Redis)]
API --> FS[文件系统 STORAGE_ROOT/projects/<uuid>]
API --> WH[Whoosh 全文索引 search_index]
API --> ZV[ZVec 向量库 vector_index/<project_id>]
API --> LLM[LLM Provider: chat/embedding]
FS -->|变更同步| SVC[FileVectorSyncService → ZVec / SearchService]
```
## 三层结构(物理/逻辑/应用映射)
| 层 | 载体 | 说明 |
| --- | --- | --- |
| 应用层 | FastAPI/api/v1 + /mcp+ React SPA | 业务 API 与前端 |
| 数据层 | MySQL元数据/权限/状态、RedisToken/会话、文件系统内容、Whoosh/ZVec索引 | 结构化 vs 非结构化分离 |
| 基础设施 | docker-composebackend/frontend/mysql/redis、nginxfrontend 内) | 容器化部署 |
## 关键子系统
1. **认证**JWT Bearer + Redis Token 缓存双校验(见 DV-0001
2. **权限**RBACroles/system_menus/role_menus+ 项目级角色admin/editor/viewer双维度DV-0002/0004
3. **文件系统**`StorageService` 统一封装含路径安全校验DV-0002
4. **检索**Whoosh 全文DV-0005+ ZVec 语义DV-0006双引擎写路径后台同步ADR-08
5. **知识库**RAG 检索 + LLM 生成 + 引用支撑句对齐DV-0007
6. **开放**MCP Streamable HTTP/mcpbot 凭据映射到用户DV-0011
## 系统边界
- 进程内单后端REST 与 MCP 同挂一个 service。
- 存储边界:内容永不进 DB BLOBDB 只存元数据。
- 网络边界:前端经 nginx 反代 /api可同域免跨域/mcp 不可 301/302 重定向MCP 客户端要求)。