架构说明
本文档介绍 AGNX Excalidraw 的整体架构设计。
项目结构
agnx-excalidraw/
├── src/
│ ├── web/ # Web 应用层
│ │ ├── App.tsx # 主应用组件
│ │ ├── main.tsx # 入口文件
│ │ ├── components/ # UI 组件
│ │ ├── hooks/ # 自定义 Hooks
│ │ └── lib/ # 工具函数
│ │
│ ├── sdk/ # 核心 SDK 层
│ │ ├── ai/ # AI 功能模块
│ │ ├── dsl/ # DSL 解析模块
│ │ ├── utils/ # 工具函数
│ │ └── types.ts # 类型定义
│ │
│ └── storage.ts # 本地存储模块
│
├── docs-site/ # Docusaurus 文档站点
├── public/ # 静态资源
└── 配置文件
分层架构
┌─────────────────────────────────────────┐
│ Web 应用层 │
│ (React 组件、路由、状态管理) │
├─────────────────────────────────────────┤
│ SDK 层 │
│ (AI 客户端、DSL 转换、配置管理) │
├─────────────────────────────────────────┤
│ 存储层 │
│ (本地存储、配置持久化) │
├─────────────────────────────────────────┤
│ 外部服务 │
│ (AI API、Mermaid 解析) │
└─────────────────────────────────────────┘
核心模块
1. Web 应用层
负责用户界面和交互:
- ExcalidrawCanvas - Excalidraw 画布封装
- AiChatPanel - AI 对话面板
- MermaidPanel - Mermaid 代码编辑面板
- DslPanel - DSL 编辑面板
2. SDK 层
核心业务逻辑,可独立使用:
AI 模块 (ai/)
client.ts- AI 客户端,提供流式/非流式 APIconfig.ts- 配置管理,多 Provider 支持prompts.ts- Prompt 模板text_generation.ts- 文本生成抽象层