@mxmweb/aichat 1.9.7 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/README.md +207 -199
  2. package/assets/style.css +1 -1
  3. package/components/AiChat.d.ts +5 -1
  4. package/index.js +7951 -7846
  5. package/package.json +1 -1
  6. package/stats.html +1 -1
  7. package/utils/fileIcon.d.ts +9 -0
  8. package/LoginPage/components/Login/LoginBox/index.d.ts +0 -18
  9. package/LoginPage/components/Login/RegisterBox/index.d.ts +0 -15
  10. package/LoginPage/components/Login/index.d.ts +0 -17
  11. package/LoginPage/index.d.ts +0 -4
  12. package/LoginPage/useServices.d.ts +0 -9
  13. package/LoginPage/utils.d.ts +0 -2
  14. package/adopters/GientechChat/Conversations/Item.d.ts +0 -10
  15. package/adopters/GientechChat/Conversations/List.d.ts +0 -18
  16. package/adopters/GientechChat/Conversations/groupByTime.d.ts +0 -17
  17. package/adopters/GientechChat/Conversations/index.d.ts +0 -18
  18. package/adopters/GientechChat/constants.d.ts +0 -17
  19. package/adopters/GientechChat/index.d.ts +0 -42
  20. package/adopters/GientechChat/types.d.ts +0 -14
  21. package/adopters/HeadLessChat/constants.d.ts +0 -16
  22. package/adopters/HeadLessChat/index.d.ts +0 -14
  23. package/adopters/HeadLessChat/types.d.ts +0 -21
  24. package/adopters/gientechCommon/components/AppError.d.ts +0 -4
  25. package/adopters/gientechCommon/components/AppLoading.d.ts +0 -1
  26. package/adopters/gientechCommon/components/DeleteModal.d.ts +0 -1
  27. package/adopters/gientechCommon/components/DisplayError.d.ts +0 -1
  28. package/adopters/gientechCommon/components/DisplayLoading.d.ts +0 -1
  29. package/adopters/gientechCommon/components/FeedBackModal.d.ts +0 -2
  30. package/adopters/gientechCommon/components/FileManager/FileCardCommon.d.ts +0 -19
  31. package/adopters/gientechCommon/components/FileManager/index.d.ts +0 -21
  32. package/adopters/gientechCommon/components/Messages/GientechNewChatWelcome.d.ts +0 -11
  33. package/adopters/gientechCommon/components/Messages/ReferenceCard.d.ts +0 -17
  34. package/adopters/gientechCommon/components/Messages/RetriveItem.d.ts +0 -28
  35. package/adopters/gientechCommon/components/Messages/WebRetriveItem.d.ts +0 -3
  36. package/adopters/gientechCommon/components/RenameModal.d.ts +0 -1
  37. package/adopters/gientechCommon/configs/commonConfig.d.ts +0 -2
  38. package/adopters/gientechCommon/configs/senderConfig.d.ts +0 -1
  39. package/adopters/gientechCommon/configs/stylesConfig.d.ts +0 -88
  40. package/adopters/gientechCommon/hooks/AichatUseController.d.ts +0 -45
  41. package/adopters/gientechCommon/utils/request.d.ts +0 -2
  42. package/adopters/gientechCommon/utils/serverFn.d.ts +0 -52
  43. package/core/AiChat.d.ts +0 -73
  44. package/core/AiChat.types.d.ts +0 -106
  45. package/core/DefaultAppError.d.ts +0 -1
  46. package/core/DefaultAppLoading.d.ts +0 -1
  47. package/core/DefaultDisplayError.d.ts +0 -1
  48. package/core/DefaultDisplayLoading.d.ts +0 -1
  49. package/core/DefaultNewChatWelcome.d.ts +0 -1
  50. package/core/Displayer/DefaultAiChatBox.d.ts +0 -1
  51. package/core/Displayer/DefaultUserChatBox.d.ts +0 -1
  52. package/core/Displayer/index.d.ts +0 -14
  53. package/core/DynamicForm.d.ts +0 -8
  54. package/core/Loading.d.ts +0 -1
  55. package/core/Sender/FileUpload.d.ts +0 -12
  56. package/core/Sender/FilesDisplay.d.ts +0 -16
  57. package/core/Sender/VoiceInput.d.ts +0 -6
  58. package/core/Sender/contexts/BadgeContext.d.ts +0 -10
  59. package/core/Sender/index.d.ts +0 -33
  60. package/core/Sidebar/Loading.d.ts +0 -1
  61. package/core/Sidebar/RetriveConfigPanel.d.ts +0 -10
  62. package/core/Sidebar/useDynamicFormItems.d.ts +0 -2
  63. package/core/SidebarProp.d.ts +0 -16
  64. package/core/common/FileCardCommon.d.ts +0 -19
  65. package/core/defaultStyleSet.d.ts +0 -94
  66. package/core/styles.config.d.ts +0 -4
  67. package/servers/chatApi.d.ts +0 -7
  68. package/servers/fileApi.d.ts +0 -5
  69. package/servers/modelApi.d.ts +0 -8
package/README.md CHANGED
@@ -1,35 +1,48 @@
1
- # AIChat 组件库使用说明
1
+ # @mxmweb/aichat
2
2
 
3
- > npm 包名:`@mxmweb/aichat`
3
+ > 基于 React 的轻量级 AI 聊天对话组件库,提供核心聊天功能和灵活的扩展能力
4
4
 
5
- ## 安装与依赖说明
5
+ [![npm version](https://img.shields.io/npm/v/@mxmweb/aichat.svg)](https://www.npmjs.com/package/@mxmweb/aichat)
6
+ [![npm downloads](https://img.shields.io/npm/dm/@mxmweb/aichat.svg)](https://www.npmjs.com/package/@mxmweb/aichat)
7
+ [![License](https://img.shields.io/npm/l/@mxmweb/aichat.svg)](https://github.com/your-org/aichat/blob/main/LICENSE)
6
8
 
7
- AIChat 是一个轻量级的聊天对话组件库,专注于核心聊天功能。为简化安装,本包仅将 `react`、`react-dom`、`@mxmweb/zui` 声明为 `peerDependencies`,其它运行时依赖已内联按需打包并支持 tree-shaking。
9
+ ## 核心特性
8
10
 
9
- ### 核心依赖安装
11
+ - ✅ **轻量级设计**:Gzip 压缩后仅 ~78KB,专注于核心聊天功能
12
+ - ✅ **灵活的组件系统**:支持自定义消息卡片、欢迎页、加载状态等
13
+ - ✅ **完整的文件上传**:支持拖拽上传、多文件管理、上传状态跟踪
14
+ - ✅ **动态主题系统**:支持运行时主题切换,所有样式可配置
15
+ - ✅ **事件驱动架构**:通过 eventsEmit 统一处理所有交互事件
16
+ - ✅ **TypeScript 支持**:完整的类型定义,提供良好的开发体验
17
+ - ✅ **侧边栏扩展**:支持自定义侧边栏组件和动态表单
18
+ - ✅ **纯 UI 组件库**:v2.0.0 版本专注于 UI 展示层,业务逻辑已分离
10
19
 
11
- #### 使用 pnpm(推荐)
12
- ```bash
13
- pnpm add @mxmweb/aichat \
14
- react react-dom @mxmweb/zui
15
- ```
20
+ ## 📦 安装
16
21
 
17
- #### 使用 yarn
18
22
  ```bash
19
- yarn add @mxmweb/aichat \
20
- react react-dom @mxmweb/zui
23
+ # 使用 pnpm(推荐)
24
+ pnpm add @mxmweb/aichat react react-dom @mxmweb/zui
25
+
26
+ # 使用 npm
27
+ npm install @mxmweb/aichat react react-dom @mxmweb/zui
28
+
29
+ # 使用 yarn
30
+ yarn add @mxmweb/aichat react react-dom @mxmweb/zui
21
31
  ```
22
32
 
23
- #### 使用 npm
33
+ ### 必需依赖
34
+
35
+ 本库需要以下 peerDependencies:
36
+
24
37
  ```bash
25
- npm install @mxmweb/aichat \
26
- react react-dom @mxmweb/zui
38
+ pnpm add @mxmweb/zui@^1.* react@>=18 react-dom@>=18
27
39
  ```
28
40
 
29
41
  ### 样式引入
30
42
 
31
43
  在项目入口文件中引入样式:
32
- ```ts
44
+
45
+ ```typescript
33
46
  import '@mxmweb/aichat/style.css';
34
47
  ```
35
48
 
@@ -41,215 +54,210 @@ import '@mxmweb/aichat/style.css';
41
54
 
42
55
  > 💡 **优化说明**:AIChat 已移除不必要的依赖,专注于核心聊天功能,确保快速加载和简洁的安装体验。
43
56
 
44
- 本说明分为两部分:
45
- 1. **业务层集成方案(推荐,开箱即用)**
46
- 2. **核心组件层用法(自定义交互/高级用法)**
47
-
48
- ---
49
-
50
- ## 1. 业务层集成方案(推荐)
57
+ ## 🚀 快速开始
51
58
 
52
- 业务层已封装好与后端接口、消息流、文件管理、主题动态适配等核心逻辑,适合直接集成到业务系统。
53
-
54
- ### 快速开始
59
+ ### 基础用法
55
60
 
56
61
  ```tsx
57
- import { GientechChat } from '@mxmweb/aichat';
62
+ import React, { useState } from 'react';
63
+ import { AiChat } from '@mxmweb/aichat';
64
+ import '@mxmweb/aichat/style.css';
58
65
 
59
- export default function App() {
66
+ function App() {
67
+ const [chatData, setChatData] = useState({
68
+ id: 'session-1',
69
+ messages: [],
70
+ isNew: true,
71
+ });
72
+
73
+ const [status, setStatus] = useState({
74
+ display: 'ready',
75
+ sender: 'ready',
76
+ app: 'ready',
77
+ });
78
+
79
+ const handleEventsEmit = (eventName: string, data?: any) => {
80
+ console.log('Event:', eventName, data);
81
+
82
+ if (eventName === 'sender:send') {
83
+ // 处理消息发送
84
+ const newMessage = {
85
+ id: `msg-${Date.now()}`,
86
+ type: 'user',
87
+ time: new Date().toISOString(),
88
+ content: data.content,
89
+ };
90
+
91
+ setChatData(prev => ({
92
+ ...prev,
93
+ messages: [...prev.messages, newMessage],
94
+ }));
95
+
96
+ // 模拟 AI 回复
97
+ setTimeout(() => {
98
+ const aiMessage = {
99
+ id: `msg-${Date.now()}`,
100
+ type: 'ai',
101
+ time: new Date().toISOString(),
102
+ content: '这是一条 AI 回复',
103
+ };
104
+ setChatData(prev => ({
105
+ ...prev,
106
+ messages: [...prev.messages, aiMessage],
107
+ }));
108
+ }, 1000);
109
+ }
110
+ };
60
111
 
61
- const ChatBox =GientechChat()
62
112
  return (
63
- <ChatBox
64
- token={yourToken}
65
- url={yourApiBaseUrl}
66
- styles={{
67
- theme: {
68
- colors: {
69
- primary: '#409EFF', // 主色,影响按钮、边框、图标等
70
- background: '#F7F8FA', // 卡片/内容区背景色
71
- border: '#E5E6EB', // 边框色
72
- text: '#222', // 主要文字色
73
- disabled: '#BFBFBF', // 禁用色
74
- info: '#409EFF', // 信息色
75
- warning: '#FFB020', // 警告色
76
- error: '#F53F3F', // 错误色
77
- shadow: '#000', // 阴影色
78
- appBackground: '#F7F8FA', // 整体背景色
79
- // ...可扩展更多
113
+ <div style={{ width: '100%', height: '100vh' }}>
114
+ <AiChat
115
+ activeSessionId="session-1"
116
+ chatData={chatData}
117
+ status={status}
118
+ eventsEmit={handleEventsEmit}
119
+ styles={{
120
+ theme: {
121
+ colors: {
122
+ primary: '#409EFF',
123
+ background: '#F7F8FA',
124
+ text: '#222',
125
+ },
80
126
  },
81
- icons: {
82
- aiAvatar: '/ai.png', // AI 头像
83
- userAvatar: '/user.png', // 用户头像
84
- // ...可自定义更多图标
85
- },
86
- space: {
87
- radius: 'md', // 圆角,可用 'sm' | 'md' | 'lg' 或具体像素
88
- size: 'md', // 字体大小
89
- shadow: 'md', // 阴影
90
- padding: 'md', // 内边距
91
- margin: 'md', // 外边距
92
- sidebar: '260px', // 侧边栏宽度
93
- lineHeight: 'normal', // 行高
94
- // ...
95
- },
96
- others: {
97
- baseFontWeight: 400, // 字重
98
- // ...
99
- }
100
- },
101
- mode: 'light', // 或 'dark'
102
- }}
103
- eventsEmit={(event, data) => {
104
- // 监听所有交互事件
105
- }}
106
- />
127
+ mode: 'light',
128
+ }}
129
+ />
130
+ </div>
107
131
  );
108
132
  }
133
+
134
+ export default App;
109
135
  ```
110
136
 
111
- #### styles 配置详细说明
112
- - `theme.colors`:所有颜色相关配置,**建议全部覆盖**,否则用默认色。
113
- - `theme.icons`:AI、用户等头像图标,支持自定义。
114
- - `theme.space`:圆角、阴影、字体、边距、侧边栏宽度等。
115
- - `theme.others`:其他扩展项,如字体粗细。
116
- - `mode`:'light' 或 'dark',影响部分默认色。
117
-
118
- #### eventsEmit 可监听事件及参数
119
- 业务层已封装常用事件,所有交互事件均通过 `eventsEmit(eventName, data)` 回调分发,常见事件如下:
120
-
121
- | 事件名 | 说明 | data 参数结构示例 |
122
- |------------------------------|----------------------|------------------------------------|
123
- | sender:send | 发送消息 | { content, files, status, ... } |
124
- | sender:send_recommandQuestion| 发送推荐问题 | { content, ... } |
125
- | sender:clear | 清空输入框 | { clearFn } |
126
- | sender:action_history | 打开文件管理器 | - |
127
- | action_copy:click | 复制消息内容 | { content, sessionContext } |
128
- | action_thumbsup | 点赞 | { restult, queryId } |
129
- | action_thumbsdown | 点踩 | { restult, queryId } |
130
- | action_retry | 重新发送 | { idx, content, ... } |
131
- | fileManager:change | 文件管理器文件变化 | { uploadedFiles, setUploadedFiles, removeFile } |
132
- | conversations:delete_icon_clicked | 删除会话 | { data, async_deleteConversation, ... } |
133
- | conversations:rename_icon_clicked | 重命名会话 | { data, async_renameConversation, ... } |
134
- | conversation:item_click | 切换会话 | { sessionId, ... } |
135
- | ... | 其他事件 | - |
136
-
137
- - **所有事件参数均为对象,具体结构可参考源码或控制台输出。**
138
- - 你可以在 `eventsEmit` 里拦截、扩展、上报等。
137
+ ## 🔗 链接
139
138
 
140
- ---
139
+ - **NPM**: <https://www.npmjs.com/package/@mxmweb/aichat>
140
+ - **GitHub**: <https://github.com/your-org/aichat>
141
141
 
142
- ## 2. 核心组件层用法(高级/自定义场景)
142
+ ## 📚 API 文档
143
143
 
144
- 如需自定义业务逻辑、消息流、文件上传等,可直接使用核心组件 `AiChat`,自行管理数据和交互。
144
+ > 📖 完整 API 文档请查看:[doc_assets/接口/](./doc_assets/接口/)
145
145
 
146
- ### 基本用法
146
+ - **接口文档**: [AiChat API](./doc_assets/接口/AiChat.md)
147
+ - **更新说明**: [CHANGELOG](./doc_assets/更新说明/CHANGELOG.md)
148
+ - **v2.0.0 升级指南**: [v2.0.0升级指南](./doc_assets/更新说明/v2.0.0升级指南.md) ⭐ **新版本必读**
149
+ - **演示说明**: [演示文档](./doc_assets/演示/index.md)
147
150
 
148
- ```tsx
149
- import { AiChat } from '@mxmweb/aichat';
151
+ ### 核心组件(Core Components)
150
152
 
151
- export default function MyChatApp() {
152
- // 你需要自行管理 chatData、status、eventsEmit 等
153
- return (
154
- <AiChat
155
- chatData={yourChatData}
156
- status={yourStatus}
157
- eventsEmit={yourEventsEmit}
158
- styles={{
159
- theme: {
160
- colors: {
161
- primary: '#409EFF',
162
- background: '#F7F8FA',
163
- // ...
164
- },
165
- },
166
- }}
167
- sidebar={yourSidebarConfig} // 侧边栏配置(可选)
168
- recommandQuestions={[]} // 推荐问题(可选)
169
- senderConfig={yourSenderConfig} // 发送器配置(可选)
170
- fileUploadStatus={[]} // 文件上传状态(可选)
171
- CustomComponents={{ // 自定义组件(可选)
172
- AiChatBox: (msg, idx) => <MyAiChatBox {...msg} />, // 自定义AI消息卡片
173
- UserChatBox: (msg, idx) => <MyUserChatBox {...msg} />, // 自定义用户消息卡片
174
- WelcomeComponent: () => <MyWelcome />,
175
- LogoBox: () => <MyLogo />,
176
- // ...
177
- }}
178
- onSenderConfigChange={fn} // 发送器配置变化回调(可选)
179
- />
180
- );
153
+ #### AiChat
154
+
155
+ 核心聊天组件,提供基础的聊天界面和交互能力。
156
+
157
+ ```typescript
158
+ interface AiChatProps {
159
+ activeSessionId: string | undefined;
160
+ chatData: ConversationData;
161
+ sidebar?: SidebarTabConfig[];
162
+ status: AppStatusManager;
163
+ recommandQuestions?: string[];
164
+ eventsEmit?: (eventName: string, data?: any, callback?: () => void) => void;
165
+ CustomComponents?: any;
166
+ fileUploadStatus?: any;
167
+ styles?: Styles;
168
+ senderConfig?: SenderConfig;
169
+ onSenderConfigChange?: (data: {
170
+ name: string;
171
+ checked: boolean;
172
+ all: Record<string, boolean>;
173
+ }) => void;
181
174
  }
182
175
  ```
183
176
 
184
- ### props 配置项说明
185
- | 属性名 | 类型/说明 |
186
- |---------------------|---------------------------------------------|
187
- | chatData | { messages: any[], ... } 聊天数据 |
188
- | status | { display, sender, app } 状态管理 |
189
- | eventsEmit | (eventName: string, data: any) => void |
190
- | styles | 主题与样式配置,详见上文 |
191
- | sidebar | 侧边栏配置数组(可选) |
192
- | recommandQuestions | 推荐问题数组(可选) |
193
- | senderConfig | 发送器配置(可选) |
194
- | fileUploadStatus | 文件上传状态数组(可选) |
195
- | CustomComponents | 自定义组件(可选) |
196
- | onSenderConfigChange| 发送器配置变化回调(可选) |
197
-
198
- ### eventsEmit 事件说明(核心层)
199
- 核心层所有交互事件均通过 `eventsEmit(eventName, data)` 分发,**你需要自行处理**。常见事件:
200
-
201
- | 事件名 | 说明 | data 参数结构示例 |
202
- |------------------------------|----------------------|------------------------------------|
203
- | sender:send | 发送消息 | { content, files, status, ... } |
204
- | sender:clear | 清空输入框 | { clearFn } |
205
- | sender:action_history | 打开文件管理器 | - |
206
- | action_copy:click | 复制消息内容 | { content, sessionContext } |
207
- | action_thumbsup | 点赞 | { restult, queryId } |
208
- | action_thumbsdown | 点踩 | { restult, queryId } |
209
- | action_retry | 重新发送 | { idx, content, ... } |
210
- | fileManager:change | 文件管理器文件变化 | { uploadedFiles, setUploadedFiles, removeFile } |
211
- | ... | 其他事件 | - |
212
-
213
- - 你可以根据业务需要自定义事件处理逻辑。
214
- - 事件参数结构与业务层一致,详见源码。
215
-
216
- ### 典型用法
217
- ```tsx
218
- <AiChat
219
- chatData={...}
220
- status={...}
221
- eventsEmit={(event, data) => {
222
- if (event === 'sender:send') {
223
- // 处理消息发送
224
- }
225
- if (event === 'action_copy:click') {
226
- // 处理复制
227
- }
228
- // ...
229
- }}
230
- styles={...}
231
- />
177
+ **Props 说明**:
178
+
179
+ | 参数 | 类型 | 默认值 | 说明 |
180
+ |------|------|--------|------|
181
+ | activeSessionId | string \| undefined | - | 当前激活的会话ID |
182
+ | chatData | ConversationData | 必填 | 聊天数据,包含消息列表 |
183
+ | sidebar | SidebarTabConfig[] | [] | 侧边栏配置数组 |
184
+ | status | AppStatusManager | 必填 | 应用状态管理对象 |
185
+ | recommandQuestions | string[] | [] | 推荐问题列表 |
186
+ | eventsEmit | (eventName, data, callback) => void | - | 事件回调函数 |
187
+ | CustomComponents | object | - | 自定义组件配置 |
188
+ | fileUploadStatus | any[] | [] | 文件上传状态数组 |
189
+ | styles | Styles | - | 主题样式配置 |
190
+ | senderConfig | SenderConfig | - | 发送器配置 |
191
+ | onSenderConfigChange | (data) => void | - | 发送器配置变化回调 |
192
+
193
+ ## 🛠️ 技术栈
194
+
195
+ - **React** `>=18 <20` - 前端框架
196
+ - **@mxmweb/zui** `^1.*` - UI 组件库
197
+ - **TypeScript** - 类型支持
198
+ - **anime.js** - 动画库
199
+ - **lucide-react** - 图标库
200
+
201
+ ## 📁 项目结构
202
+
203
+ ```text
204
+ src/
205
+ ├── lib_enter.ts # 库入口,导出所有公共 API
206
+ ├── style.css # 样式文件
207
+ ├── components/ # 核心组件(统一组件目录)
208
+ │ ├── AiChat.tsx # AiChat 核心组件
209
+ │ ├── AiChat.types.tsx # 类型定义
210
+ │ ├── Sender/ # 发送器组件
211
+ │ │ ├── index.tsx
212
+ │ │ ├── FilesDisplay.tsx
213
+ │ │ ├── FileUpload.tsx
214
+ │ │ └── VoiceInput.tsx
215
+ │ ├── Displayer/ # 消息展示组件
216
+ │ │ ├── index.tsx
217
+ │ │ ├── DefaultAiChatBox.tsx
218
+ │ │ ├── DefaultUserChatBox.tsx
219
+ │ │ └── slate/ # Slate 富文本编辑器
220
+ │ ├── DynamicForm.tsx # 动态表单组件
221
+ │ ├── defaultStyleSet.tsx # 默认主题配置
222
+ │ ├── styles.config.ts # 样式配置
223
+ │ └── ... # 其他组件
224
+ ├── utils/ # 工具函数
225
+ │ ├── fileIcon.tsx # 文件类型图标工具
226
+ │ └── commonFn.tsx # 通用工具函数
227
+ └── examples/ # 演示实例
228
+ ├── BaseChat/
229
+ └── ProChat/
232
230
  ```
233
231
 
234
- ---
232
+ > 💡 **架构说明**:v2.0.0 版本已移除业务层代码(`LoginPage`、`servers`、`adopters`、`core`),专注于核心 UI 组件库功能。
235
233
 
236
- ## 主题动态适配说明
237
- - 所有颜色、背景、边框、图标等均可通过 `styles.theme` 配置覆盖
238
- - 组件内部不再硬编码颜色,支持 run-time 主题切换
239
- - 参考 `defaultStyleSet.tsx` 的结构进行扩展
234
+ ## 🎯 使用场景
240
235
 
241
- ---
236
+ - AI 对话聊天界面
237
+ - 智能客服系统
238
+ - 知识库问答系统
239
+ - 文档对话系统
240
+ - 自定义聊天应用
242
241
 
243
- ## 事件说明
244
- - 所有交互事件(如发送、复制、点赞、文件上传等)均通过 `eventsEmit` 回调分发
245
- - 业务层已封装常用事件,核心层需自行处理
242
+ ## 📝 示例
246
243
 
247
- ---
244
+ 查看 `src/examples/` 目录获取更多完整示例:
245
+
246
+ - **BaseChat** - 核心组件基础用法
247
+ - **ProChat** - 高级配置完整示例
248
+
249
+ ## 🤝 贡献
250
+
251
+ 欢迎提交 Issue 和 Pull Request。
252
+
253
+ ## 📄 许可证
254
+
255
+ MIT License
256
+
257
+ ## 👥 作者
248
258
 
249
- ## 文件管理说明
250
- - 支持多文件上传、历史文件、会话文件、上传进度、去重
251
- - 业务层已自动处理,核心层需自行实现
259
+ - **hanfeng_Zhang**
252
260
 
253
261
  ---
254
262
 
255
- 如需更多高级用法或二次开发,请参考源码及注释。
263
+ ⭐ 如果这个项目对你有帮助,请给它一个 Star!