添加项目架构图和程序流程图

- 添加了使用Mermaid语法的项目架构图,展示前端、后端和数据层的组件关系
- 添加了程序流程图,详细描述文档上传、解析、存储、向量化和异步处理的完整流程
- 使用中文和英文对照的方式呈现图表内容,便于理解系统整体设计
This commit is contained in:
2026-04-21 20:47:28 +08:00
parent d2e3c2db3e
commit 74d40f91c5

102
README.md
View File

@@ -26,37 +26,79 @@ A document understanding and multi-source data fusion system based on Large Lang
## 项目架构 / Project Architecture ## 项目架构 / Project Architecture
```mermaid
flowchart TB
subgraph UI["用户界面 / User Interface"]
Frontend["React + TypeScript + shadcn/ui"]
end
subgraph Backend["FastAPI 后端 / Backend"]
Upload["上传 API<br/>/upload"]
Documents["文档管理<br/>/documents"]
RAG["RAG 检索<br/>/rag/search"]
AI["AI 分析<br/>/ai/analyze"]
Template["模板填充<br/>/templates/fill"]
Instruction["自然语言指令<br/>/instruction/execute"]
Visual["可视化<br/>/visualization"]
end
subgraph Data["数据层 / Data Layer"]
MongoDB["MongoDB<br/>文档存储"]
MySQL["MySQL<br/>结构化数据"]
Redis["Redis<br/>缓存/队列"]
FAISS["FAISS<br/>向量索引"]
end
UI --> Backend
Backend --> MongoDB
Backend --> MySQL
Backend --> Redis
MongoDB --> FAISS
``` ```
┌─────────────────────────────────────────────────────────────────┐
│ User Interface │ ---
│ (React + TypeScript + shadcn/ui) │
└─────────────────────────────────────────────────────────────────┘ ## 程序流程 / Program Flow
```mermaid
┌─────────────────────────────────────────────────────────────────┐ flowchart TD
FastAPI Backend │ Start([用户上传文档<br/>User Uploads Document]) --> Parse{解析文档格式<br/>Parse Document Format}
│ ┌─────────────┐ ┌──────────────┐ ┌─────────────────────────┐ │
│ Upload API │ │ RAG Search │ │ Natural Language │ │ Parse -->|Excel| ParseXlsx["解析 Excel<br/>Parse XLSX"]
│ /documents │ │ /rag/search │ │ /instruction/execute │ │ Parse -->|Word| ParseDocx["解析 Word<br/>Parse DOCX"]
└─────────────┘ └──────────────┘ └─────────────────────────┘ │ Parse -->|Markdown| ParseMd["解析 Markdown<br/>Parse Markdown"]
┌─────────────┐ ┌──────────────┐ ┌─────────────────────────┐ │ Parse -->|Text| ParseTxt["解析文本<br/>Parse Text"]
│ │ AI Analyze │ │ Template Fill│ │ Visualization │ │
│ /ai/analyze │ │ /templates │ │ /visualization │ │ ParseXlsx --> Store1[(存储到<br/>MongoDB)]
└─────────────┘ └──────────────┘ └─────────────────────────┘ │ ParseDocx --> Store1
└─────────────────────────────────────────────────────────────────┘ ParseMd --> Store1
ParseTxt --> Store1
┌─────────────────────┼─────────────────────┐
▼ ▼ ▼ Store1 --> Embed["Embedding 向量化<br/>Create Embeddings"]
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ Embed --> Index[(索引到<br/>FAISS)]
│ MongoDB │ │ MySQL │ │ Redis │
(Documents) │ │ (Structured) │ │ (Cache/Queue) │ Index --> TaskCreated{创建任务<br/>Create Task}
└─────────────────┘ └─────────────────┘ └─────────────────┘
TaskCreated -->|同步| ProcessSync["同步处理<br/>Sync Process"]
TaskCreated -->|异步| QueueTask["加入任务队列<br/>Queue to Celery"]
┌─────────────────┐
FAISS │ ProcessSync --> ReturnResult["返回结果<br/>Return Result"]
│ (Vector Index) │
└─────────────────┘ QueueTask --> CeleryWorker["Celery Worker<br/>异步处理"]
CeleryWorker --> LLM["调用 LLM<br/>Call LLM API"]
LLM --> StoreResult["存储结果<br/>Store Result"]
StoreResult --> ReturnAsync["返回任务ID<br/>Return Task ID"]
ReturnResult --> End([完成<br/>Complete])
ReturnAsync --> Poll{轮询任务状态<br/>Poll Task Status}
Poll -->|进行中| Poll
Poll -->|完成| GetResult["获取结果<br/>Get Result"]
GetResult --> End
style Start fill:#e1f5fe
style End fill:#c8e6c9
style LLM fill:#fff3e0
style CeleryWorker fill:#fff3e0
``` ```
--- ---