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

- 添加了使用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
```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) │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
FastAPI Backend │
│ ┌─────────────┐ ┌──────────────┐ ┌─────────────────────────┐ │
│ Upload API │ │ RAG Search │ │ Natural Language │ │
│ /documents │ │ /rag/search │ │ /instruction/execute │ │
└─────────────┘ └──────────────┘ └─────────────────────────┘ │
┌─────────────┐ ┌──────────────┐ ┌─────────────────────────┐ │
│ │ AI Analyze │ │ Template Fill│ │ Visualization │ │
│ /ai/analyze │ │ /templates │ │ /visualization │ │
└─────────────┘ └──────────────┘ └─────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────┼─────────────────────┐
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ MongoDB │ │ MySQL │ │ Redis │
(Documents) │ │ (Structured) │ │ (Cache/Queue) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
┌─────────────────┐
FAISS │
│ (Vector Index) │
└─────────────────┘
---
## 程序流程 / Program Flow
```mermaid
flowchart TD
Start([用户上传文档<br/>User Uploads Document]) --> Parse{解析文档格式<br/>Parse Document Format}
Parse -->|Excel| ParseXlsx["解析 Excel<br/>Parse XLSX"]
Parse -->|Word| ParseDocx["解析 Word<br/>Parse DOCX"]
Parse -->|Markdown| ParseMd["解析 Markdown<br/>Parse Markdown"]
Parse -->|Text| ParseTxt["解析文本<br/>Parse Text"]
ParseXlsx --> Store1[(存储到<br/>MongoDB)]
ParseDocx --> Store1
ParseMd --> Store1
ParseTxt --> Store1
Store1 --> Embed["Embedding 向量化<br/>Create Embeddings"]
Embed --> Index[(索引到<br/>FAISS)]
Index --> TaskCreated{创建任务<br/>Create Task}
TaskCreated -->|同步| ProcessSync["同步处理<br/>Sync Process"]
TaskCreated -->|异步| QueueTask["加入任务队列<br/>Queue to Celery"]
ProcessSync --> ReturnResult["返回结果<br/>Return Result"]
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
```
---