Skip to content

LLM Chat 工具 UI 结构图

本文档详细展示 LLM Chat 工具的完整UI结构,包括内部组件和外部依赖关系。

注意: LLM Chat 是整个应用中最复杂的工具模块,包含 90+ 个组件文件,大量使用了独立的 rich-text-renderer 模块和通用组件库。


0. 完整组件关系总览

图例说明

符号含义
──>组件包含/父子关系
-.->外部依赖引用
📋 📁 💬布局区域标识
🔲对话框/弹出层
📦外部模块依赖

核心数据流


1. 整体布局结构


2. ChatArea 核心组件树

ChatArea 是对话的核心区域,包含消息展示、输入和多个对话框:


3. 消息组件层次 (message/)

消息组件负责渲染每条对话消息:


4. 智能体管理组件 (agent/)

智能体管理已重构为高度模块化的分段式编辑器:


5. 对话树图组件 (conversation-tree-graph/)

力导向布局的对话树可视化:


6. 上下文分析器 (context-analyzer/)

分析和调试对话上下文:


7. 导入导出组件 (export/)

会话和智能体的导入导出:


8. 设置组件 (settings/)


9. 外部依赖:富文本渲染器 (rich-text-renderer/)

LLM Chat 大量依赖独立的富文本渲染模块:


10. 外部依赖:通用组件库 (components/common/)

LLM Chat 使用的通用组件:


11. Composables 层 (composables/)

LLM Chat 使用的组合式函数:


12. 完整组件文件清单

llm-chat/components/ 目录结构

components/
├── ChatArea.vue # 核心对话区域
├── AttachmentCard.vue # 附件卡片

├── agent/ # 智能体管理
│ ├── AgentAssetsDialog.vue
│ ├── AgentAssetsManager.vue # 资产管理器 (新增)
│ ├── AgentPresetBatchDialog.vue
│ ├── AgentPresetEditor.vue
│ ├── AgentUpgradeDialog.vue # 升级对话框 (新增)
│ ├── CreateAgentDialog.vue
│ ├── EditAgentDialog.vue
│ ├── MacroSelector.vue
│ ├── MiniAgentList.vue
│ ├── ModelParametersEditor.vue
│ ├── ParameterItem.vue
│ ├── PresetMessageEditor.vue
│ ├── STPresetImportDialog.vue
│ ├── agent-editor/ # 分段式编辑器 (重构)
│ │ ├── AgentEditor.vue
│ │ ├── agentEditConfig.ts
│ │ └── sections/
│ │ ├── BasicInfoSection.vue
│ │ ├── CapabilitiesSection.vue
│ │ ├── OutputDisplaySection.vue
│ │ └── PersonalitySection.vue
│ └── parameters/ # 参数子面板
│ ├── ContextCompressionConfigPanel.vue
│ ├── ContextStatsCard.vue
│ ├── CustomParamsPanel.vue
│ ├── PostProcessingPanel.vue
│ └── SafetySettingsPanel.vue

├── common/ # 模块内通用
│ ├── ChatRegexEditor.vue
│ ├── ChatRegexHelpDialog.vue
│ ├── ChatRegexRuleForm.vue
│ └── ConfigSection.vue

├── context-analyzer/ # 上下文分析
│ ├── AnalysisChartView.vue
│ ├── ContextAnalyzerDialog.vue
│ ├── MacroDebugView.vue
│ ├── RawRequestView.vue
│ └── StructuredView.vue

├── conversation-tree-graph/ # 对话树图
│ ├── ContextMenu.vue
│ └── flow/
│ ├── FlowTreeGraph.vue
│ └── components/
│ ├── CustomConnectionLine.vue
│ ├── GraphNode.vue
│ ├── GraphNodeContent.vue
│ ├── GraphNodeDetailPopup.vue
│ ├── GraphNodeMenubar.vue
│ ├── GraphUsageGuideDialog.vue
│ └── HistoryPanel.vue

├── export/ # 导入导出
│ ├── ExportAgentDialog.vue
│ ├── ExportBranchDialog.vue
│ ├── ExportOptionsPanel.vue
│ ├── ExportPreviewSection.vue
│ ├── ExportSessionDialog.vue
│ └── ImportAgentDialog.vue

├── message/ # 消息组件
│ ├── BranchSelector.vue
│ ├── ChatMessage.vue
│ ├── CompressionMessage.vue # 压缩节点
│ ├── MessageContent.vue
│ ├── MessageDataEditor.vue # 数据编辑器
│ ├── MessageHeader.vue
│ ├── MessageList.vue
│ ├── MessageMenubar.vue
│ ├── MessageNavigator.vue
│ └── ViewModeSwitcher.vue

├── message-input/ # 消息输入
│ ├── ChatCodeMirrorEditor.vue # CodeMirror 编辑器 (新增)
│ ├── MessageInput.vue
│ ├── MessageInputAttachments.vue # 附件管理 (新增)
│ ├── MessageInputToolbar.vue # 工具栏
│ └── MiniSessionList.vue # 迷你列表

├── quick-action/ # 快捷动作系统 (新增)
│ ├── QuickActionDetail.vue
│ ├── QuickActionFullManager.vue
│ ├── QuickActionManagerDialog.vue
│ └── QuickActionSelector.vue

├── search/ # 聊天搜索 (新增)
│ └── ChatSearchPanel.vue

├── settings/ # 设置
│ ├── ChatSettingsDialog.vue
│ ├── PipelineConfig.vue # 管道配置
│ ├── settings-types.ts
│ └── settingsConfig.ts

├── sidebar/ # 侧边栏
│ ├── AgentListItem.vue
│ ├── AgentsSidebar.vue
│ ├── LeftSidebar.vue
│ ├── ParametersSidebar.vue
│ └── SessionsSidebar.vue

├── user-profile/ # 用户档案
│ └── EditUserProfileDialog.vue

└── worldbook/ # 世界书系统 (新增)
├── WorldbookDetail.vue
├── WorldbookFullManager.vue
├── WorldbookManager.vue
├── WorldbookManagerDialog.vue
├── WorldbookOverview.vue
└── WorldbookSelector.vue

llm-chat/composables/ 目录结构


composables/
├── chat/
│ ├── useChatExecutor.ts
│ ├── useChatHandler.ts
│ ├── useChatResponseHandler.ts
│ ├── useLlmChatSync.ts
│ ├── useLlmSearch.ts # 聊天搜索逻辑
│ ├── useTopicNamer.ts
│ └── useTranslation.ts
├── features/
│ ├── useAttachmentManager.ts # 附件管理逻辑
│ ├── useChatContextStats.ts
│ ├── useContextCompressor.ts
│ ├── useExportManager.ts # 导入导出逻辑
│ └── useTranscriptionManager.ts
├── input/
│ ├── useChatInputManager.ts
│ ├── useChatInputTokenPreview.ts
│ ├── useMessageInputActions.ts
│ └── useMessageInputResize.ts
├── session/
│ ├── useBranchManager.ts
│ ├── useNodeManager.ts
│ ├── useSessionManager.ts
│ └── useSessionNodeHistory.ts
├── settings/
│ ├── useChatSettings.ts
│ └── usePluginSettings.ts
├── storage/
│ ├── useAgentStorageSeparated.ts
│ ├── useChatStorageSeparated.ts
│ ├── useQuickActionStorage.ts
│ ├── useUserProfileStorage.ts
│ └── useWorldbookStorageSeparated.ts
├── ui/
│ ├── useAnchorRegistry.ts
│ ├── useDetachedChatArea.ts
│ ├── useDetachedChatInput.ts
│ ├── useLlmChatStateConsumer.ts
│ ├── useLlmChatUiState.ts
│ └── useResolvedAvatar.ts
└── visualization/
├── useContextChart.ts
├── useFlowTreeGraph.ts
└── useGraphActions.ts

总计: 90+ 个组件文件, 30+ 个 Composables

Released under the Apache-2.0 License.