@gientech/modual 2.1.38 → 2.2.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.
- package/assets/{GientechStreamReader-C8rYtUxB.js → GientechStreamReader-C5jijqVw.js} +57 -57
- package/assets/LeftOutlined-9XTSYGbi.js +1 -0
- package/assets/{index-Bg1CcQn9.js → index-B64Nj5uU.js} +1 -1
- package/assets/{index-B-AFa3n1.js → index-B872BsjL.js} +1 -1
- package/assets/{index-w1SriKuR.js → index-BIrUv1JE.js} +1 -1
- package/assets/index-Bk-pRt65.js +27 -0
- package/assets/{index-8h59dJlj.js → index-BvpN2hYX.js} +1 -1
- package/assets/{index-BdNcL3V6.js → index-BxR_BLxA.js} +1 -1
- package/assets/index-CkVpaVb6.js +1 -0
- package/assets/{index-DoUk2Ei_.js → index-D3Z0MZbL.js} +4 -4
- package/assets/{index-C6WKbL3A.js → index-DaM9Fbys.js} +3 -3
- package/assets/{index-CVis9Agw.js → index-SbYeytsI.js} +1 -1
- package/assets/index-hDlFWjNU.js +1969 -0
- package/assets/{index-CtPe9ln8.js → index-sWqCalkt.js} +152 -181
- package/assets/{plus-CnVxGdOo.js → plus-DDbDO7lA.js} +1 -1
- package/assets/search-BoBdGjgo.js +6 -0
- package/assets/style-DwfpZJI9.js +196 -0
- package/assets/style4.css +1 -1
- package/assets/{triangle-alert-BycMPaz2.js → triangle-alert-DF53kXdm.js} +1 -1
- package/assets/{x-CmbLQ9dc.js → x-DfdS1_QC.js} +1 -1
- package/assistantConfig.js +152 -1
- package/chat.d.ts +11 -1
- package/chat.js +1 -196
- package/chatCompare.js +1 -1
- package/database.js +1 -1
- package/databaseId.d.ts +1 -0
- package/databaseId.js +1 -1
- package/databaseTable.js +2 -2
- package/index.d.ts +301 -0
- package/index.js +1 -1
- package/modelManage.d.ts +124 -0
- package/modelManage.js +1 -1
- package/package.json +1 -1
- package/sensitive.d.ts +134 -2
- package/sensitive.js +205 -1
- package/streamFilesReader.js +1 -1
- package/assets/index-BN3yu4iN.js +0 -1
- package/assets/index-C9ax6WsW.js +0 -1995
- package/assets/index-pbEQPM5Z.js +0 -157
package/index.d.ts
CHANGED
|
@@ -7,6 +7,12 @@ import { registerPDFWorker } from '@mxmweb/fviewer';
|
|
|
7
7
|
import { Styles } from '@mxmweb/zui';
|
|
8
8
|
import { ToolsConfig } from '@mxmweb/fviewer';
|
|
9
9
|
|
|
10
|
+
/** 与 @mxmweb/aichat 的 locale 一致,支持中/英/日 */
|
|
11
|
+
export declare type AIChatLocale = 'zh' | 'en' | 'ja';
|
|
12
|
+
|
|
13
|
+
/** 与 @mxmweb/aichat 的 messages 结构一致,用于部分覆盖内置文案 */
|
|
14
|
+
export declare type AIChatMessagesPartial = Partial<Record<string, unknown>>;
|
|
15
|
+
|
|
10
16
|
export { Annotation }
|
|
11
17
|
|
|
12
18
|
export { AppTheme }
|
|
@@ -27,6 +33,12 @@ export declare enum DrawerType {
|
|
|
27
33
|
ALLFILELIST = "allFileList"
|
|
28
34
|
}
|
|
29
35
|
|
|
36
|
+
export declare function getLoginMessages(locale: LoginLocale, override?: Partial<LoginMessages>): LoginMessages;
|
|
37
|
+
|
|
38
|
+
export declare function getModelManageMessages(locale: ModelManageLocale, override?: Partial<ModelManageMessages>): ModelManageMessages;
|
|
39
|
+
|
|
40
|
+
export declare function getSensitiveMessages(locale: SensitiveLocale): SensitiveMessages;
|
|
41
|
+
|
|
30
42
|
/**
|
|
31
43
|
* GientechStreamReader组件
|
|
32
44
|
* 基于stream接口的文件读取器,支持分页获取PDF数据并渲染
|
|
@@ -69,8 +81,291 @@ export declare interface GientechStreamReaderProps {
|
|
|
69
81
|
contentClass?: string;
|
|
70
82
|
}
|
|
71
83
|
|
|
84
|
+
/** 简单插值:将 messages.xxx 中的 {{key}} 替换为 values[key] */
|
|
85
|
+
export declare function interpolate(template: string, values: Record<string, string | number>): string;
|
|
86
|
+
|
|
87
|
+
export declare function interpolateModelManage(template: string, values: Record<string, string>): string;
|
|
88
|
+
|
|
89
|
+
export declare const LoginI18nContext: default_2.Context<LoginI18nValue>;
|
|
90
|
+
|
|
91
|
+
export declare function LoginI18nProvider({ locale, messages: messagesOverride, children, }: {
|
|
92
|
+
locale: LoginLocale;
|
|
93
|
+
messages?: Partial<LoginMessages>;
|
|
94
|
+
children: default_2.ReactNode;
|
|
95
|
+
}): default_2.FunctionComponentElement<default_2.ProviderProps<LoginI18nValue>>;
|
|
96
|
+
|
|
97
|
+
declare interface LoginI18nValue {
|
|
98
|
+
locale: LoginLocale;
|
|
99
|
+
messages: LoginMessages;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* 登录模块 i18n 文案(登录表单、注册表单、通用错误等)
|
|
104
|
+
* 与 chat/sensitive 一致:zh / en / ja,通过 props 传入 locale + 可选 messages 覆盖
|
|
105
|
+
*/
|
|
106
|
+
export declare type LoginLocale = 'zh' | 'en' | 'ja';
|
|
107
|
+
|
|
108
|
+
export declare interface LoginMessages {
|
|
109
|
+
login: {
|
|
110
|
+
usernamePlaceholder: string;
|
|
111
|
+
passwordPlaceholder: string;
|
|
112
|
+
verifyCodePlaceholder: string;
|
|
113
|
+
usernameRequired: string;
|
|
114
|
+
passwordRequired: string;
|
|
115
|
+
verifyCodeRequired: string;
|
|
116
|
+
submit: string;
|
|
117
|
+
errorFallback: string;
|
|
118
|
+
};
|
|
119
|
+
register: {
|
|
120
|
+
labels: {
|
|
121
|
+
username: string;
|
|
122
|
+
phone: string;
|
|
123
|
+
email: string;
|
|
124
|
+
password: string;
|
|
125
|
+
confirmPassword: string;
|
|
126
|
+
verifyCode: string;
|
|
127
|
+
};
|
|
128
|
+
placeholders: {
|
|
129
|
+
username: string;
|
|
130
|
+
phone: string;
|
|
131
|
+
email: string;
|
|
132
|
+
password: string;
|
|
133
|
+
confirmPassword: string;
|
|
134
|
+
verifyCode: string;
|
|
135
|
+
};
|
|
136
|
+
required: {
|
|
137
|
+
username: string;
|
|
138
|
+
phone: string;
|
|
139
|
+
email: string;
|
|
140
|
+
password: string;
|
|
141
|
+
confirmPassword: string;
|
|
142
|
+
verifyCode: string;
|
|
143
|
+
};
|
|
144
|
+
cancel: string;
|
|
145
|
+
submit: string;
|
|
146
|
+
passwordConfirmMismatch: string;
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
export declare const ModelManageI18nContext: default_2.Context<ModelManageI18nValue>;
|
|
151
|
+
|
|
152
|
+
export declare function ModelManageI18nProvider({ locale, messages: messagesOverride, children, }: {
|
|
153
|
+
locale: ModelManageLocale;
|
|
154
|
+
messages?: Partial<ModelManageMessages>;
|
|
155
|
+
children: default_2.ReactNode;
|
|
156
|
+
}): default_2.FunctionComponentElement<default_2.ProviderProps<ModelManageI18nValue>>;
|
|
157
|
+
|
|
158
|
+
declare interface ModelManageI18nValue {
|
|
159
|
+
locale: ModelManageLocale;
|
|
160
|
+
messages: ModelManageMessages;
|
|
161
|
+
getMessage: (key: string) => string;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* 模型管理模块 i18n 文案(表格、抽屉、替换弹窗、confirm、message 等)
|
|
166
|
+
* 与 sensitive/login 一致:zh / en / ja
|
|
167
|
+
*/
|
|
168
|
+
export declare type ModelManageLocale = 'zh' | 'en' | 'ja';
|
|
169
|
+
|
|
170
|
+
export declare interface ModelManageMessages {
|
|
171
|
+
common: {
|
|
172
|
+
loading: string;
|
|
173
|
+
};
|
|
174
|
+
dashboard: {
|
|
175
|
+
title: string;
|
|
176
|
+
};
|
|
177
|
+
table: {
|
|
178
|
+
viewLabel: string;
|
|
179
|
+
columns: {
|
|
180
|
+
modelName: string;
|
|
181
|
+
modelProtocol: string;
|
|
182
|
+
type: string;
|
|
183
|
+
dec: string;
|
|
184
|
+
status: string;
|
|
185
|
+
actions: string;
|
|
186
|
+
};
|
|
187
|
+
statusHelpText: string;
|
|
188
|
+
toolbar: {
|
|
189
|
+
add: string;
|
|
190
|
+
test: string;
|
|
191
|
+
replace: string;
|
|
192
|
+
};
|
|
193
|
+
actionEdit: string;
|
|
194
|
+
actionAuth: string;
|
|
195
|
+
actionDelete: string;
|
|
196
|
+
tooltipChecking: string;
|
|
197
|
+
tooltipNoPermission: string;
|
|
198
|
+
};
|
|
199
|
+
status: {
|
|
200
|
+
available: string;
|
|
201
|
+
unavailable: string;
|
|
202
|
+
checking: string;
|
|
203
|
+
};
|
|
204
|
+
empty: {
|
|
205
|
+
noDataHint: string;
|
|
206
|
+
createModelBtn: string;
|
|
207
|
+
};
|
|
208
|
+
drawer: {
|
|
209
|
+
titleNew: string;
|
|
210
|
+
titleEdit: string;
|
|
211
|
+
cancel: string;
|
|
212
|
+
confirm: string;
|
|
213
|
+
};
|
|
214
|
+
form: {
|
|
215
|
+
labels: {
|
|
216
|
+
modelName: string;
|
|
217
|
+
modelIde: string;
|
|
218
|
+
apiKey: string;
|
|
219
|
+
url: string;
|
|
220
|
+
modelProtocol: string;
|
|
221
|
+
type: string;
|
|
222
|
+
maxTokens: string;
|
|
223
|
+
dec: string;
|
|
224
|
+
};
|
|
225
|
+
placeholders: {
|
|
226
|
+
modelName: string;
|
|
227
|
+
modelIde: string;
|
|
228
|
+
apiKey: string;
|
|
229
|
+
url: string;
|
|
230
|
+
};
|
|
231
|
+
maxTokensHelpText: string;
|
|
232
|
+
};
|
|
233
|
+
replaceModal: {
|
|
234
|
+
title: string;
|
|
235
|
+
warningParagraph: string;
|
|
236
|
+
sourceLabel: string;
|
|
237
|
+
targetLabel: string;
|
|
238
|
+
placeholderSelect: string;
|
|
239
|
+
cancel: string;
|
|
240
|
+
confirm: string;
|
|
241
|
+
messageSuccess: string;
|
|
242
|
+
};
|
|
243
|
+
message: {
|
|
244
|
+
testSuccess: string;
|
|
245
|
+
deleteSuccess: string;
|
|
246
|
+
createSuccess: string;
|
|
247
|
+
editSuccess: string;
|
|
248
|
+
};
|
|
249
|
+
deleteConfirm: {
|
|
250
|
+
title: string;
|
|
251
|
+
content: string;
|
|
252
|
+
titleWhenInUse: string;
|
|
253
|
+
contentWhenInUse: string;
|
|
254
|
+
okText: string;
|
|
255
|
+
cancelText: string;
|
|
256
|
+
deleteOkText: string;
|
|
257
|
+
};
|
|
258
|
+
server: {
|
|
259
|
+
requestError: string;
|
|
260
|
+
noPermission: string;
|
|
261
|
+
notLoggedIn: string;
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
|
|
72
265
|
export { registerPDFWorker }
|
|
73
266
|
|
|
267
|
+
export declare const SensitiveI18nContext: default_2.Context<SensitiveI18nValue>;
|
|
268
|
+
|
|
269
|
+
export declare function SensitiveI18nProvider({ locale, messages: messagesOverride, children, }: {
|
|
270
|
+
locale: SensitiveLocale;
|
|
271
|
+
messages?: Partial<SensitiveMessages>;
|
|
272
|
+
children: default_2.ReactNode;
|
|
273
|
+
}): default_2.FunctionComponentElement<default_2.ProviderProps<SensitiveI18nValue>>;
|
|
274
|
+
|
|
275
|
+
declare interface SensitiveI18nValue {
|
|
276
|
+
locale: SensitiveLocale;
|
|
277
|
+
messages: SensitiveMessages;
|
|
278
|
+
/** 供 server 等非组件处使用:getMessage('server.requestError') 或 getMessage('requestError') 返回对应文案 */
|
|
279
|
+
getMessage: (key: string) => string;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* 敏感词模块 i18n 文案(列表、编辑、弹窗、server 兜底等)
|
|
284
|
+
* 与 chat 一致:zh / en / ja
|
|
285
|
+
*/
|
|
286
|
+
export declare type SensitiveLocale = 'zh' | 'en' | 'ja';
|
|
287
|
+
|
|
288
|
+
export declare interface SensitiveMessages {
|
|
289
|
+
toolbar: {
|
|
290
|
+
searchPlaceholder: string;
|
|
291
|
+
};
|
|
292
|
+
tagCell: {
|
|
293
|
+
viewAllTitle: string;
|
|
294
|
+
viewAllLink: string;
|
|
295
|
+
};
|
|
296
|
+
table: {
|
|
297
|
+
label: string;
|
|
298
|
+
viewLabel: string;
|
|
299
|
+
columns: {
|
|
300
|
+
name: string;
|
|
301
|
+
sensitiveWords: string;
|
|
302
|
+
createDate: string;
|
|
303
|
+
count: string;
|
|
304
|
+
actions: string;
|
|
305
|
+
};
|
|
306
|
+
toolbar: {
|
|
307
|
+
create: string;
|
|
308
|
+
searchPlaceholder: string;
|
|
309
|
+
};
|
|
310
|
+
actionEdit: string;
|
|
311
|
+
actionDelete: string;
|
|
312
|
+
};
|
|
313
|
+
dashboard: {
|
|
314
|
+
title: string;
|
|
315
|
+
};
|
|
316
|
+
deleteConfirm: {
|
|
317
|
+
title: string;
|
|
318
|
+
content: string;
|
|
319
|
+
okText: string;
|
|
320
|
+
cancelText: string;
|
|
321
|
+
};
|
|
322
|
+
createModal: {
|
|
323
|
+
title: string;
|
|
324
|
+
cancel: string;
|
|
325
|
+
confirm: string;
|
|
326
|
+
nameRequired: string;
|
|
327
|
+
namePlaceholder: string;
|
|
328
|
+
};
|
|
329
|
+
message: {
|
|
330
|
+
saveSuccess: string;
|
|
331
|
+
createSuccess: string;
|
|
332
|
+
deleteSuccess: string;
|
|
333
|
+
downloadTemplateFail: string;
|
|
334
|
+
importSuccess: string;
|
|
335
|
+
importFail: string;
|
|
336
|
+
};
|
|
337
|
+
downloadTemplateFilename: string;
|
|
338
|
+
editor: {
|
|
339
|
+
maxLengthHint: string;
|
|
340
|
+
maxLengthWarning: string;
|
|
341
|
+
duplicateWarning: string;
|
|
342
|
+
configTemplateHint: string;
|
|
343
|
+
selectFileWarning: string;
|
|
344
|
+
importFailRetry: string;
|
|
345
|
+
importCountSuccess: string;
|
|
346
|
+
parseFail: string;
|
|
347
|
+
readFileFail: string;
|
|
348
|
+
searchPlaceholder: string;
|
|
349
|
+
inputPlaceholder: string;
|
|
350
|
+
add: string;
|
|
351
|
+
import: string;
|
|
352
|
+
cancel: string;
|
|
353
|
+
save: string;
|
|
354
|
+
confirm: string;
|
|
355
|
+
downloadTemplate: string;
|
|
356
|
+
uploadModalTitle: string;
|
|
357
|
+
uploadModalHint: string;
|
|
358
|
+
uploadDragText: string;
|
|
359
|
+
uploadDragHint: string;
|
|
360
|
+
formatCsv: string;
|
|
361
|
+
formatTxt: string;
|
|
362
|
+
};
|
|
363
|
+
server: {
|
|
364
|
+
requestError: string;
|
|
365
|
+
noPermission: string;
|
|
366
|
+
};
|
|
367
|
+
}
|
|
368
|
+
|
|
74
369
|
export declare interface SidebarTabConfig {
|
|
75
370
|
key: string;
|
|
76
371
|
type: 'custom' | 'form';
|
|
@@ -84,6 +379,12 @@ export declare interface SidebarTabConfig {
|
|
|
84
379
|
[key: string]: any;
|
|
85
380
|
}
|
|
86
381
|
|
|
382
|
+
export declare function useLoginI18n(): LoginI18nValue;
|
|
383
|
+
|
|
384
|
+
export declare function useModelManageI18n(): ModelManageI18nValue;
|
|
385
|
+
|
|
386
|
+
export declare function useSensitiveI18n(): SensitiveI18nValue;
|
|
387
|
+
|
|
87
388
|
export { }
|
|
88
389
|
|
|
89
390
|
|
package/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{D as c,a as k,L as w,g as y,u as B}from"./assets/style-DwfpZJI9.js";import{C as R}from"./assets/index-B64Nj5uU.js";import"./database.js";import"./databaseId.js";import"./databaseTable.js";import"react/jsx-runtime";import"react";import{ModelManageI18nContext as b,ModelManageI18nProvider as j,getModelManageMessages as q,interpolateModelManage as z,useModelManageI18n as A}from"./modelManage.js";import{SensitiveI18nContext as H,SensitiveI18nProvider as J,getSensitiveMessages as K,interpolate as N,useSensitiveI18n as O}from"./sensitive.js";import{G as U,B as V}from"./assets/GientechStreamReader-C5jijqVw.js";import"./assistantConfig.js";import{i as Y}from"./assets/index-BvpN2hYX.js";import"./assets/index-hDlFWjNU.js";import"react-dom";import"./assets/index-sWqCalkt.js";import"./assets/index-DaM9Fbys.js";import"./assets/LeftOutlined-9XTSYGbi.js";import"./assets/index-Bk-pRt65.js";import"./assets/index-SbYeytsI.js";import"./assets/index-CpW6Dhpp.js";import"./assets/plus-DDbDO7lA.js";import"./assets/search-BoBdGjgo.js";import"./assets/x-DfdS1_QC.js";import"./assets/index-D3Z0MZbL.js";import"./assets/index-B872BsjL.js";/* empty css *//* empty css */import"./assets/index-CkVpaVb6.js";import"./assets/index-BxR_BLxA.js";import"./assets/index-BIrUv1JE.js";import"./assets/triangle-alert-DF53kXdm.js";export{R as ChatCompareComponent,c as DrawerType,U as GientechStreamReader,k as LoginI18nContext,w as LoginI18nProvider,b as ModelManageI18nContext,j as ModelManageI18nProvider,H as SensitiveI18nContext,J as SensitiveI18nProvider,Y as defaultTheme,y as getLoginMessages,q as getModelManageMessages,K as getSensitiveMessages,N as interpolate,z as interpolateModelManage,V as registerPDFWorker,B as useLoginI18n,A as useModelManageI18n,O as useSensitiveI18n};
|
package/modelManage.d.ts
CHANGED
|
@@ -1,7 +1,127 @@
|
|
|
1
1
|
import { CustomComponents } from '@mxmweb/xviewer';
|
|
2
|
+
import { default as default_2 } from 'react';
|
|
2
3
|
import { JSX as JSX_2 } from 'react/jsx-runtime';
|
|
3
4
|
import { Styles } from '@mxmweb/zui';
|
|
4
5
|
|
|
6
|
+
export declare function getModelManageMessages(locale: ModelManageLocale, override?: Partial<ModelManageMessages>): ModelManageMessages;
|
|
7
|
+
|
|
8
|
+
export declare function interpolateModelManage(template: string, values: Record<string, string>): string;
|
|
9
|
+
|
|
10
|
+
export declare const ModelManageI18nContext: default_2.Context<ModelManageI18nValue>;
|
|
11
|
+
|
|
12
|
+
export declare function ModelManageI18nProvider({ locale, messages: messagesOverride, children, }: {
|
|
13
|
+
locale: ModelManageLocale;
|
|
14
|
+
messages?: Partial<ModelManageMessages>;
|
|
15
|
+
children: default_2.ReactNode;
|
|
16
|
+
}): default_2.FunctionComponentElement<default_2.ProviderProps<ModelManageI18nValue>>;
|
|
17
|
+
|
|
18
|
+
declare interface ModelManageI18nValue {
|
|
19
|
+
locale: ModelManageLocale;
|
|
20
|
+
messages: ModelManageMessages;
|
|
21
|
+
getMessage: (key: string) => string;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* 模型管理模块 i18n 文案(表格、抽屉、替换弹窗、confirm、message 等)
|
|
26
|
+
* 与 sensitive/login 一致:zh / en / ja
|
|
27
|
+
*/
|
|
28
|
+
export declare type ModelManageLocale = 'zh' | 'en' | 'ja';
|
|
29
|
+
|
|
30
|
+
export declare interface ModelManageMessages {
|
|
31
|
+
common: {
|
|
32
|
+
loading: string;
|
|
33
|
+
};
|
|
34
|
+
dashboard: {
|
|
35
|
+
title: string;
|
|
36
|
+
};
|
|
37
|
+
table: {
|
|
38
|
+
viewLabel: string;
|
|
39
|
+
columns: {
|
|
40
|
+
modelName: string;
|
|
41
|
+
modelProtocol: string;
|
|
42
|
+
type: string;
|
|
43
|
+
dec: string;
|
|
44
|
+
status: string;
|
|
45
|
+
actions: string;
|
|
46
|
+
};
|
|
47
|
+
statusHelpText: string;
|
|
48
|
+
toolbar: {
|
|
49
|
+
add: string;
|
|
50
|
+
test: string;
|
|
51
|
+
replace: string;
|
|
52
|
+
};
|
|
53
|
+
actionEdit: string;
|
|
54
|
+
actionAuth: string;
|
|
55
|
+
actionDelete: string;
|
|
56
|
+
tooltipChecking: string;
|
|
57
|
+
tooltipNoPermission: string;
|
|
58
|
+
};
|
|
59
|
+
status: {
|
|
60
|
+
available: string;
|
|
61
|
+
unavailable: string;
|
|
62
|
+
checking: string;
|
|
63
|
+
};
|
|
64
|
+
empty: {
|
|
65
|
+
noDataHint: string;
|
|
66
|
+
createModelBtn: string;
|
|
67
|
+
};
|
|
68
|
+
drawer: {
|
|
69
|
+
titleNew: string;
|
|
70
|
+
titleEdit: string;
|
|
71
|
+
cancel: string;
|
|
72
|
+
confirm: string;
|
|
73
|
+
};
|
|
74
|
+
form: {
|
|
75
|
+
labels: {
|
|
76
|
+
modelName: string;
|
|
77
|
+
modelIde: string;
|
|
78
|
+
apiKey: string;
|
|
79
|
+
url: string;
|
|
80
|
+
modelProtocol: string;
|
|
81
|
+
type: string;
|
|
82
|
+
maxTokens: string;
|
|
83
|
+
dec: string;
|
|
84
|
+
};
|
|
85
|
+
placeholders: {
|
|
86
|
+
modelName: string;
|
|
87
|
+
modelIde: string;
|
|
88
|
+
apiKey: string;
|
|
89
|
+
url: string;
|
|
90
|
+
};
|
|
91
|
+
maxTokensHelpText: string;
|
|
92
|
+
};
|
|
93
|
+
replaceModal: {
|
|
94
|
+
title: string;
|
|
95
|
+
warningParagraph: string;
|
|
96
|
+
sourceLabel: string;
|
|
97
|
+
targetLabel: string;
|
|
98
|
+
placeholderSelect: string;
|
|
99
|
+
cancel: string;
|
|
100
|
+
confirm: string;
|
|
101
|
+
messageSuccess: string;
|
|
102
|
+
};
|
|
103
|
+
message: {
|
|
104
|
+
testSuccess: string;
|
|
105
|
+
deleteSuccess: string;
|
|
106
|
+
createSuccess: string;
|
|
107
|
+
editSuccess: string;
|
|
108
|
+
};
|
|
109
|
+
deleteConfirm: {
|
|
110
|
+
title: string;
|
|
111
|
+
content: string;
|
|
112
|
+
titleWhenInUse: string;
|
|
113
|
+
contentWhenInUse: string;
|
|
114
|
+
okText: string;
|
|
115
|
+
cancelText: string;
|
|
116
|
+
deleteOkText: string;
|
|
117
|
+
};
|
|
118
|
+
server: {
|
|
119
|
+
requestError: string;
|
|
120
|
+
noPermission: string;
|
|
121
|
+
notLoggedIn: string;
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
|
|
5
125
|
declare function ModelManageView(props: ModelManageViewProps): JSX_2.Element;
|
|
6
126
|
export default ModelManageView;
|
|
7
127
|
|
|
@@ -14,6 +134,8 @@ declare interface ModelManageViewProps {
|
|
|
14
134
|
eventsEmit?: (name: string, data: any) => void;
|
|
15
135
|
showModelReplace?: boolean;
|
|
16
136
|
getBtnDisabled?: (type: OPT_BTN, permission: number) => boolean;
|
|
137
|
+
locale?: ModelManageLocale;
|
|
138
|
+
messages?: Partial<ModelManageMessages>;
|
|
17
139
|
}
|
|
18
140
|
|
|
19
141
|
declare enum OPT_BTN {
|
|
@@ -30,6 +152,8 @@ declare enum OPT_BTN {
|
|
|
30
152
|
AUTHORIZE_CONFIG = 10
|
|
31
153
|
}
|
|
32
154
|
|
|
155
|
+
export declare function useModelManageI18n(): ModelManageI18nValue;
|
|
156
|
+
|
|
33
157
|
export { }
|
|
34
158
|
|
|
35
159
|
|
package/modelManage.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o,jsxs as V}from"react/jsx-runtime";import{useState as h,useMemo as O,useRef as Q,useEffect as re}from"react";import{J as L,N as ve}from"./assets/index-CtPe9ln8.js";import{a as Ie,b as _,S as te,T as ee,F as se}from"./assets/index-8h59dJlj.js";import{O as ne}from"./assets/index-w1SriKuR.js";import{D as we}from"./assets/index-BN3yu4iN.js";import{X as xe}from"./assets/x-CmbLQ9dc.js";import{M as ce,s as j}from"./assets/index-DoUk2Ei_.js";import{T as ke}from"./assets/triangle-alert-BycMPaz2.js";/* empty css *//* empty css */import{P as Le}from"./assets/plus-CnVxGdOo.js";import{B as ae}from"./assets/index-BdNcL3V6.js";import"react-dom";const Se=""+new URL("assets/empty.png",import.meta.url).href,Re=({url:s,token:B,role:n,eventsEmit:p})=>{const m=Ie.create({baseURL:s,timeout:1e6});return m.interceptors.request.use(e=>{let a=B;return!a&&!["user/login","user/kaptcha","user/regist"].some(l=>e.url.includes(l))?(p&&p("request:error_auth",{errorMsg:"\u672A\u767B\u5F55\u6216token\u5DF2\u8FC7\u671F",redirect:"/login"}),Promise.reject(new Error("\u672A\u767B\u5F55\u6216token\u5DF2\u8FC7\u671F"))):(e.headers.Authorization=a||"",e.headers.userName=n==="\u672A\u767B\u5F55\u7528\u6237"?"":n,e)}),m.interceptors.response.use(e=>{const a=["user/kaptcha"],u=e.data;if(a.some(x=>e.config.url&&e.config.url.includes(x))||u.size&&u.type)return u;const{success:l,errorMsg:g,errorCode:k}=u;return l?u:(p&&p("request:error_business",{errorCode:k,errorMsg:g||"\u8BF7\u6C42\u51FA\u9519\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5",response:u}),!1)},e=>{var a,u,l,g,k,x,T,W,q;if(e.message==="canceled")return Promise.reject(e);if(p){let I="request:error_network",U={errorMsg:"\u7F51\u7EDC\u8BF7\u6C42\u5931\u8D25",error:e};((a=e==null?void 0:e.response)==null?void 0:a.status)===401?(I="request:error_auth",U={errorMsg:"\u6CA1\u6709\u8DB3\u591F\u6743\u9650",error:e,redirect:"/login"}):(((l=(u=e==null?void 0:e.response)==null?void 0:u.data)==null?void 0:l.errorCode)==="30013"||((k=(g=e==null?void 0:e.response)==null?void 0:g.data)==null?void 0:k.errorCode)==="30023")&&(I="request:error_business",U={errorCode:(T=(x=e==null?void 0:e.response)==null?void 0:x.data)==null?void 0:T.errorCode,errorMsg:((q=(W=e==null?void 0:e.response)==null?void 0:W.data)==null?void 0:q.message)||"\u8BF7\u6C42\u51FA\u9519\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5",error:e}),p(I,U)}return Promise.reject(e)}),{getModelList:async e=>{try{const a=await m.get(`/allPage?${new URLSearchParams(e).toString()}`),{success:u,data:l}=a;if(u)return l}catch(a){return console.log("getModelList error:",a),!1}},delModelById:async e=>{try{const a=await m.delete(`/delete?id=${e}`),{success:u,data:l}=a;if(u)return l}catch(a){console.log("delModelById error:",a)}},createModel:async e=>{try{const a=await m.post("/create",e),{success:u,data:l}=a;if(u)return l}catch(a){console.log("createModel error:",a)}},updateModelById:async e=>{try{const a=await m.put("/update",e),{success:u,data:l}=a;if(u)return l}catch(a){console.log("updateModelById error:",a)}},getUseTypeList:async()=>{try{const e=await m.get("/getModelTypes"),{success:a,data:u}=e;if(a)return u}catch(e){return console.log("getUseTypeList error:",e),!1}},getModelProtocolsList:async()=>{try{const e=await m.get("/getModelProtocols"),{success:a,data:u}=e;if(a)return u}catch(e){return console.log("getModelProtocolsList error:",e),!1}},testStatus:async()=>{try{const e=await m.post("/check"),{success:a,data:u}=e;if(a)return u}catch(e){console.log("testStatus error:",e)}},replaceModel:async(e,a)=>{try{const u=await m.get(`/replaceModel?sourceModelId=${e}&targetModelId=${a}`),{success:l,data:g}=u;if(l)return g}catch(u){console.log("replaceModel error:",u)}},checkModel:async e=>{try{const a=await m.get(`/checkModelReference?modelName=${e}`),{success:u,data:l}=a;if(u)return l}catch(a){console.log("checkModelReference error:",a)}}}},Te=({drawerTitle:s,drawerVisible:B,modelInfo:n,handleDrawerClose:p,modelUseTypeOpt:m,modelProtocolsOpt:S,eventsEmit:i})=>{const[v,R]=h(!1),[z,c]=h(!1),f=O(()=>({id:"config-model",layout:"vertical",formWidth:"550px",fields:[{id:"modelName",name:"modelName",label:"\u6A21\u578B\u540D\u79F0",type:"input",required:!0,placeholder:"\u8BF7\u8F93\u5165\u6A21\u578B\u540D\u79F0",counter:30},{id:"modelIde",name:"modelIde",label:"\u6A21\u578BID",type:"input",required:!0,placeholder:"\u8BF7\u8F93\u5165\u6A21\u578BID",defaultValue:""},{id:"apiKey",name:"apiKey",label:"APIKey",type:"input",required:!1,placeholder:"\u8BF7\u8F93\u5165APIKey",defaultValue:""},{id:"url",name:"url",label:"\u8BF7\u6C42URL",type:"input",required:!0,placeholder:"\u8BF7\u8F93\u5165\u8BF7\u6C42URL",defaultValue:""},{id:"modelProtocol",name:"modelProtocol",label:"\u6A21\u578B\u4F20\u8F93\u534F\u8BAE",type:"select",required:!0,options:S},{id:"type",name:"type",label:"\u4F7F\u7528\u7C7B\u578B",type:"select",required:!0,options:m,defaultValue:1},{id:"maxTokens",name:"maxTokens",label:"\u4E0A\u4E0B\u6587\u957F\u5EA6",type:"slider",range:{max:1e5,min:200},step:1,sliderInline:!0,required:!0,helpText:"\u8BF7\u5411\u6A21\u578B\u90E8\u7F72\u6216\u8FD0\u7EF4\u4EBA\u5458\u786E\u8BA4\u5F53\u524D\u6A21\u578B\u7684\u6700\u5927\u4E0A\u4E0B\u6587\u957F\u5EA6\uFF08Max Tokens / Context Length\uFF09\uFF0C\u5E76\u786E\u8BA4\u63A8\u7406\u670D\u52A1\uFF08\u5982 vLLM\uFF09\u662F\u5426\u914D\u7F6E\u4E86\u989D\u5916\u7684\u8F93\u5165\u957F\u5EA6\u9650\u5236"},{id:"dec",name:"dec",label:"\u8BF4\u660E",type:"textarea",required:!1}]}),[n,m,S]),A=Q(null),E=async(u,l,g)=>{var k;switch(console.log("[Form] eventsEmit:",u,l,g),u){case"form:ready":l.formRef&&(A.current=l.formRef);break;case"form:change":if(!((k=A.current)!=null&&k.getValue)){console.log("\u8868\u5355\u5F15\u7528\u672A\u5C31\u7EEA\uFF0C\u8DF3\u8FC7 formdata_onchange \u4E8B\u4EF6");return}const x=await A.current.getValue("type");x==2||x==3?c(!0):c(!1),x==2&&A.current.setValues({maxTokens:512});break;default:console.log("\u672A\u5904\u7406\u7684\u4E8B\u4EF6:",u,l)}i==null||i(u,l,g)},e=async()=>{try{R(!0);const u=await A.current.getAllData();u.isValid&&(n!=null&&n.id?await i("form_submitted_edit",u,void 0):await i("form_submitted_add",u,void 0))}catch(u){console.error("\u274C \u63D0\u4EA4\u8868\u5355\u6570\u636E\u5931\u8D25:",u)}finally{R(!1)}},a=O(()=>{const u=n==null?void 0:n.data.reduce((l,g)=>(l[g.columnId]=g.value,l),{});return console.log("====",u,n==null?void 0:n.data),{label:"\u52A8\u6001\u8868\u5355\u793A\u4F8B",defaultActiveId:f.id,model:null,views:[{label:"\u7528\u6237\u6CE8\u518C\u8868\u5355",id:f.id,type:"form",size:"md",formWidth:f.formWidth,formConfig:{layout:f.layout,showReset:!1,showSubmit:!1,formWidth:f.formWidth}}],dataSource:[{id:f.id,fields:f.fields,defaultValues:u||{}}],eventsEmit:E}},[n,z,f]);return o(we,{title:s,placement:"right",width:560,onClose:p,closeIcon:!1,extra:o(xe,{size:20,color:"#888888",onClick:p,className:"cursor-pointer"}),open:B,destroyOnHidden:!0,footer:V("div",{className:"flex justify-end items-center gap-3",children:[o(L,{mode:"default",label:"\u53D6\u6D88",onClick:p}),o(L,{mode:"primary",label:"\u786E\u8BA4",loading:v,onClick:e})]}),children:o(ne,{...a},"example-form")})},{Item:oe}=_,Ve=({modelVisible:s,options:B,eventsEmit:n,replaceModel:p})=>{const[m,S]=h(!1),[i]=_.useForm(),v=_.useWatch("sourceModelId",i),R=O(()=>{const c=B.find(f=>f.value==v);return c?B.filter(A=>A.useType==c.useType&&A.value!==v&&A.status==1):[]},[v]);return re(()=>{v&&i.setFieldValue("targetModelId",void 0)},[v]),V(ce,{open:s,title:"\u6A21\u578B\u66FF\u6362",width:620,destroyOnHidden:!0,onCancel:()=>{i.resetFields(),n&&n("close_model")},footer:V("div",{className:"flex justify-end gap-3",style:{justifyContent:"end",margin:"20px 4px"},children:[o(L,{mode:"default",label:"\u53D6\u6D88",onClick:()=>{i.resetFields(),n&&n("close_model")}}),o(L,{mode:"primary",label:"\u786E\u8BA4",loading:m,onClick:async()=>{try{S(!0);const c=await i.validateFields(),{sourceModelId:f,targetModelId:A}=c;await p(f,A)&&(j.success("\u6A21\u578B\u66FF\u6362\u6210\u529F"),i.resetFields(),n&&n("replace_model"))}catch(c){console.log("e---->",c)}finally{S(!1)}}})]}),children:[V("div",{className:"flex gap-3",style:{margin:"20px 4px"},children:[o("div",{children:o(ke,{size:22,color:"#f4a02a"})}),o("span",{className:"text-[14px]",children:"\u5982\u9700\u66F4\u6362\u6A21\u578B\uFF0C\u5728\u4E00\u952E\u66FF\u6362\u65F6\uFF0C\u7CFB\u7EDF\u5C06\u81EA\u52A8\u66F4\u65B0\u77E5\u8BC6\u89E3\u6790\u914D\u7F6E\u3001\u68C0\u7D22\u6D4B\u8BD5\u548C\u52A9\u624B\u914D\u7F6E\u4E2D\u7684\u6A21\u578B\u3002\u82E5\u66FF\u6362\u7684\u662F\u6587\u6863\u89E3\u6790\u7528\u7684Embedding\u6A21\u578B\uFF0C\u5219\u4F7F\u7528\u8BE5\u6A21\u578B\u7684\u6587\u6863\u5C06\u5168\u90E8\u91CD\u65B0\u6392\u961F\u89E3\u6790\uFF0C\u72B6\u6001\u53D8\u4E3A\u201C\u89E3\u6790\u4E2D\u201D\uFF0C\u4E14\u672A\u89E3\u6790\u5B8C\u6210\u7684\u6587\u6863\u6682\u4E0D\u53EF\u68C0\u7D22\uFF01"})]}),V(_,{form:i,colon:!1,labelCol:{span:5},wrapperCol:{span:18},style:{margin:"40px 60px"},children:[o(oe,{label:"\u6A21\u578B\u540D\u79F0",name:"sourceModelId",rules:[{required:!0,message:""}],children:o(te,{placeholder:"\u8BF7\u9009\u62E9",options:B})}),o(oe,{label:"\u66FF\u6362\u4E3A",name:"targetModelId",rules:[{required:!0,message:""}],children:o(te,{placeholder:"\u8BF7\u9009\u62E9",options:R})})]})]})},X={success:"green",error:"red",warning:"orange",processing:"blue",info:"cyan",default:"default"},J=[{statusType:"success",value:"\u53EF\u7528",status:1},{statusType:"error",value:"\u4E0D\u53EF\u7528",status:0},{statusType:"warning",value:"\u68C0\u6D4B\u4E2D",status:2}],ze=s=>typeof s=="string"&&s in X?X[s]:X.default;var K=(s=>(s[s.DATE=0]="DATE",s[s.VIEW=1]="VIEW",s[s.ERROR=2]="ERROR",s[s.AUTHORIZE=3]="AUTHORIZE",s[s.DELETE=4]="DELETE",s[s.ANALYSIS_OR_EXTRACT=5]="ANALYSIS_OR_EXTRACT",s[s.DOWNLOAD=6]="DOWNLOAD",s[s.EDIT=7]="EDIT",s[s.ADD=8]="ADD",s[s.ANALYSIS_CONFIG=9]="ANALYSIS_CONFIG",s[s.AUTHORIZE_CONFIG=10]="AUTHORIZE_CONFIG",s))(K||{});const{confirm:le}=ce,qe={pageNum:1,pageSize:1e3},Ue=s=>{const{value:B,cell:n}=s,p=ze(s.cell.statusType);return B=="\u4E0D\u53EF\u7528"?o(ee,{title:n.errorMsg,children:o("div",{className:"flex items-center gap-2",children:o(ae,{color:p,text:B})})}):o(ae,{color:p,text:B})};function Qe(s){const{url:B,token:n,role:p,CustomComponents:m,eventsEmit:S,getBtnDisabled:i,showModelReplace:v}=s,[R,z]=h({container:"ready",content:"ready"}),c=Q(null),[f,A]=h(),E=Q(null),[e,a]=h(!1),[u,l]=h(!1),[g,k]=h([]),[x,T]=h(!1),[W,q]=h(""),[I,U]=h(),[Z,ie]=h([]),[P,de]=h([]),{getModelList:Fe,delModelById:me,createModel:pe,updateModelById:fe,getUseTypeList:ye,getModelProtocolsList:Ae,testStatus:Ee,replaceModel:ge,checkModel:Be}=Re({url:B,token:n,role:p,eventsEmit:S});re(()=>(z(r=>({...r,content:"loading"})),G(),be(),()=>{E.current&&(clearTimeout(E.current),E.current=null)}),[]);const De=r=>(r||[]).map((t,F)=>{let d=J.find(w=>w.status==t.status);return{id:t.id,data:[{columnId:"modelName",value:t.modelName},{columnId:"modelProtocol",value:t.modelProtocol,type:"customized"},{columnId:"type",value:t.type,type:"customized"},{columnId:"dec",value:t.dec},{columnId:"status",...d,type:"customized",errorMsg:t.errorMsg},{columnId:"actions",value:"edit",label:"\u7F16\u8F91",status:t.status,type:"action",disabled:i&&i(K.EDIT,t.permission)},{columnId:"actions",value:"auth",label:"\u6388\u6743",type:"action",status:t.status,disabled:i&&i(K.AUTHORIZE,t.permission)},{columnId:"actions",value:"delete",label:"\u5220\u9664",type:"action",status:t.status,disabled:i&&i(K.AUTHORIZE,t.permission)},{columnId:"url",value:t.url},{columnId:"apiKey",value:t.apiKey},{columnId:"modelIde",value:t.modelIde},{columnId:"thinking",value:t.thinking},{columnId:"maxTokens",value:t.maxTokens}]}}),be=async()=>{try{const[r,t]=await Promise.allSettled([ye(),Ae()]);r.status==="fulfilled"&&r.value&&ie((r.value||[]).map(F=>({...F,value:Number(F.value)}))),t.status==="fulfilled"&&t.value&&de((t.value||[]).map(F=>({...F,value:Number(F.value)})))}catch(r){console.error("[TableApiError] getTableList:",r)}},ue=async()=>{try{const r=await Fe(qe);if(r.records){const t=De(r.records),F=(r.records||[]).map(d=>({value:d.id,label:d.modelName,useType:d.type,status:d.status}));return k(F),A(t||[]),z(d=>({...d,content:"ready"})),t||[]}}catch(r){console.error("[TableApiError] getTableList:",r)}},G=async()=>{const r=await ue();he(r||[])?E.current&&(clearTimeout(E.current),E.current=null):(E.current&&(clearTimeout(E.current),E.current=null),E.current=setTimeout(()=>{G()},5e3))};function he(r){if(!Array.isArray(r))return!0;for(const t of r)if(t.data){const F=t.data.find(d=>d.columnId==="status");if(F&&F.status===2)return!1}return!0}const Ce=O(()=>({label:"\u6570\u636E\u5E93\u8868\u683C",defaultActiveId:"model-table",model:null,views:[{label:"\u6A21\u578B",id:"model-table",type:"table",viewBehavior:"pagination",allowMultiSelect:!1,viewPageSize:10,columns:[{id:"modelName",title:"\u6A21\u578B\u540D\u79F0",type:"label"},{id:"modelProtocol",title:"\u6A21\u578B\u4F20\u8F93\u534F\u8BAE",type:"customized",component:r=>{var d;const{value:t}=r,F=(d=P.find(w=>w.value==t))==null?void 0:d.label;return o("span",{children:F})}},{id:"type",title:"\u4F7F\u7528\u7C7B\u578B",type:"customized",component:r=>{var d;const{value:t}=r,F=(d=Z.find(w=>w.value==t))==null?void 0:d.label;return o("span",{children:F})}},{id:"dec",title:"\u8BF4\u660E",type:"paragraph"},{id:"status",title:"\u72B6\u6001",type:"customized",component:o(Ue,{}),helpText:"\u5F53\u524D\u6A21\u578B\u72B6\u6001\u4E3A\u521D\u6B21\u65B0\u589E\u6821\u9A8C\u72B6\u6001\uFF0C\u82E5\u6A21\u578B\u4E0B\u7EBF\uFF0C\u6B64\u72B6\u6001\u4E0D\u4F1A\u4E3B\u52A8\u66F4\u65B0\uFF0C\u9700\u624B\u52A8\u6267\u884C\u6A21\u578B\u5220\u9664"},{id:"actions",title:"\u64CD\u4F5C",type:"customized",component:r=>{const{value:t,cell:F,row:d}=r,{disabled:w,label:N,status:$}=F;return $==2?o(ee,{title:"\u68C0\u6D4B\u4E2D\uFF0C\u8BF7\u7A0D\u540E",children:o(L,{mode:"text",label:N,disabled:!0})}):w?o(ee,{title:"\u89D2\u8272\u65E0\u6743\u9650\u64CD\u4F5C",children:o(L,{mode:"text",label:N,disabled:w})}):o(L,{mode:"text",label:N,onClick:()=>H(`table_action_${t}`,d,void 0)})}}],toolbar:[{type:"button",btnType:"primary",key:"add",label:"\u65B0\u5EFA",icon:o(Le,{})},...v?[{type:"customized",key:"test",render:()=>o(L,{loading:e,mode:"primary",label:"\u6A21\u578B\u72B6\u6001\u68C0\u6D4B",onClick:()=>{H("toolbar_test")}})},{type:"button",btnType:"primary",key:"replace",label:"\u6A21\u578B\u66FF\u6362"}]:[]]}]}),[f,Z,P,e,v]),Me=()=>V("div",{className:"flex flex-col items-center justify-center h-full",children:[o("div",{className:"text-xl font-semibold mb-3",style:{color:"#374151"},children:o("img",{src:Se,width:120})}),o("div",{className:"text-base mb-6",style:{color:"#6b7280"},children:"\u6682\u65E0\u6570\u636E\uFF0C\u8BF7\u5148\u65B0\u5EFA\u6A21\u578B"}),o("div",{className:"flex gap-3",children:o(L,{mode:"primary",label:"\u65B0\u5EFA\u6A21\u578B",onClick:()=>{q("\u65B0\u5EFA"),T(!0)}})})]});async function H(r,t,F){var d,w,N,$;switch(console.log("[adopter] mergedEventsEmit",r,t,F),r){case"toolbar_add":{q("\u65B0\u5EFA"),T(!0);break}case"toolbar_test":{a(!0),await Ee()&&(a(!1),await G(),j.success("\u6A21\u578B\u68C0\u6D4B\u4E2D\uFF0C\u8BF7\u8010\u5FC3\u7B49\u5F85\u72B6\u6001\u66F4\u65B0\uFF01"));break}case"toolbar_replace":{l(!0);break}case"table_action_delete":{try{const C=t.data.find(b=>b.columnId=="modelName").value;if(await Be(C)>0)le({title:"\u5220\u9664\u6A21\u578B",content:o("div",{style:{marginRight:"20px"},children:"\u5F53\u524D\u6A21\u578B\u5728\u7CFB\u7EDF\u5185\u5DF2\u88AB\u914D\u7F6E\u4F7F\u7528\uFF0C\u5220\u9664\u53EF\u80FD\u5F71\u54CD\u6587\u6863\u89E3\u6790\u3001\u95EE\u7B54\u3001\u591A\u6A21\u6001\u80FD\u529B\u4F7F\u7528\u7B49\uFF0C\u8BF7\u60A8\u5148\u4F7F\u7528\u201C\u6A21\u578B\u4E00\u952E\u66FF\u6362\u201D\u80FD\u529B\u5C06\u8BE5\u6A21\u578B\u66FF\u6362\u4E3A\u540C\u7C7B\u578B\u6A21\u578B\uFF0C\u518D\u5220\u9664\u6A21\u578B"}),okText:"\u786E\u8BA4",cancelText:"\u53D6\u6D88"});else{const b=t.data.find(M=>M.columnId=="modelName").value;le({title:"\u786E\u8BA4\u5220\u9664\uFF1F",content:`\u786E\u5B9A\u8981\u5220\u9664\u6A21\u578B \u201C${b}\u201D \u5417\uFF1F\u6B64\u64CD\u4F5C\u4E0D\u53EF\u6062\u590D\u3002`,okText:"\u5220\u9664",cancelText:"\u53D6\u6D88",async onOk(){await me(t.id)&&(c!=null&&c.current)&&(c==null||c.current.appFn.removeItem(t.id),j.success("\u5220\u9664\u6210\u529F"))}})}}catch(C){console.error("\u5220\u9664\u8868\u6570\u636E\u5931\u8D25",C)}break}case"table_action_edit":{q("\u7F16\u8F91"),T(!0),U(t);break}case"form_submitted_add":{try{const C=t.fields.reduce((b,M)=>(b[M.name]=M.value,b),{}),D=await pe({...C});if(D){let b=J.find(y=>y.status==D.status);const M={id:D.id,data:[...(Object.keys(D)||[]).map(y=>({columnId:y,value:D[y],...(y=="modelProtocol"||y=="type")&&{type:"customized"},...y=="status"&&{...b,type:"customized",errorMsg:D.errorMsg}})),{columnId:"actions",value:"edit",label:"\u7F16\u8F91",type:"action"},{columnId:"actions",value:"auth",label:"\u6388\u6743",type:"action"},{columnId:"actions",value:"delete",label:"\u5220\u9664",type:"action"}]};(w=(d=c==null?void 0:c.current)==null?void 0:d.appFn)==null||w.addItem(M,{animate:!0,position:"start"}),j.success("\u6A21\u578B\u65B0\u589E\u6210\u529F\uFF01")}}catch(C){console.error("\u4FDD\u5B58\u5931\u8D25\uFF01",C)}finally{Y()}break}case"form_submitted_edit":{try{const C=t.fields.reduce((b,M)=>(b[M.name]=M.value,b),{}),D=await fe({...C,id:I.id});if(D){let b=J.find(y=>y.status==D.status);const M={...I,data:I.data.map(y=>{if(D[y.columnId]!==null&&D[y.columnId]!==void 0){if(y.columnId=="status")return{...y,...b};y.value=D[y.columnId]}return y})};($=(N=c==null?void 0:c.current)==null?void 0:N.appFn)==null||$.updateItem(M,I==null?void 0:I.id),j.success("\u6A21\u578B\u7F16\u8F91\u6210\u529F\uFF01")}}catch(C){console.error("\u4FDD\u5B58\u5931\u8D25\uFF01",C)}finally{Y()}break}case"replace_model":{await ue(),l(!1);break}case"close_model":{l(!1);break}default:typeof s.eventsEmit=="function"&&s.eventsEmit(r,t);break}}const Y=()=>{T(!1),U(void 0)};return V(ve,{title:"\u6A21\u578B\u7BA1\u7406",children:[o(ne,{dataSource:f,ref:c,eventsEmit:H,status:R,CustomComponents:{EmptyData:Me,...m},styles:{theme:{...se,colors:{...se.colors,tableFirstColumnBg:"#ffffff",tableLastColumnBg:"#ffffff",paginationBackground:"#ffffff",subTableBackground:"#F5F5F5",tableHeaderBg:"#F5F5F5"}},mode:"light"},...Ce}),o(Te,{drawerTitle:W,drawerVisible:x,handleDrawerClose:Y,modelInfo:I,modelUseTypeOpt:Z,modelProtocolsOpt:P,eventsEmit:H}),o(Ve,{modelVisible:u,options:g,eventsEmit:H,replaceModel:ge})]})}export{Qe as default};
|
|
1
|
+
import{jsx as o,jsxs as P}from"react/jsx-runtime";import Z,{useState as h,useMemo as G,useRef as se,useEffect as pe}from"react";import{J as L,$ as Ne}from"./assets/index-sWqCalkt.js";import{A as Pe,F as $,S as ce,T as le,i as ie}from"./assets/index-BvpN2hYX.js";import{O as Ee}from"./assets/index-BIrUv1JE.js";import{s as H,M as Be}from"./assets/index-D3Z0MZbL.js";import{D as Ue}from"./assets/index-CkVpaVb6.js";import{X as qe}from"./assets/x-DfdS1_QC.js";import{T as He}from"./assets/triangle-alert-DF53kXdm.js";/* empty css *//* empty css */import{P as ze}from"./assets/plus-DDbDO7lA.js";import{B as de}from"./assets/index-BxR_BLxA.js";import"react-dom";const We=""+new URL("assets/empty.png",import.meta.url).href,Ve=({url:a,token:F,role:r,eventsEmit:n,getMessage:E})=>{const D=(e,u)=>E?E(e):u,d=Pe.create({baseURL:a,timeout:1e6});return d.interceptors.request.use(e=>{let u=F;return!u&&!["user/login","user/kaptcha","user/regist"].some(m=>e.url.includes(m))?(n&&n("request:error_auth",{errorMsg:D("server.notLoggedIn","\u672A\u767B\u5F55\u6216token\u5DF2\u8FC7\u671F"),redirect:"/login"}),Promise.reject(new Error(D("server.notLoggedIn","\u672A\u767B\u5F55\u6216token\u5DF2\u8FC7\u671F")))):(e.headers.Authorization=u||"",e.headers.userName=r==="\u672A\u767B\u5F55\u7528\u6237"?"":r,e)}),d.interceptors.response.use(e=>{const u=["user/kaptcha"],l=e.data;if(u.some(U=>e.config.url&&e.config.url.includes(U))||l.size&&l.type)return l;const{success:m,errorMsg:b,errorCode:k}=l;return m?l:n?(n("request:error_business",{errorCode:k,errorMsg:b||D("server.requestError","\u8BF7\u6C42\u51FA\u9519\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5"),response:l}),l):!1},e=>{var u,l,m,b,k,U,K,R,j;if(e.message==="canceled")return Promise.reject(e);if(n){let N="request:error_network",w={errorMsg:D("server.requestError","\u7F51\u7EDC\u8BF7\u6C42\u5931\u8D25"),error:e};((u=e==null?void 0:e.response)==null?void 0:u.status)===401?(N="request:error_auth",w={errorMsg:D("server.noPermission","\u6CA1\u6709\u8DB3\u591F\u6743\u9650"),error:e,redirect:"/login"}):(((m=(l=e==null?void 0:e.response)==null?void 0:l.data)==null?void 0:m.errorCode)==="30013"||((k=(b=e==null?void 0:e.response)==null?void 0:b.data)==null?void 0:k.errorCode)==="30023")&&(N="request:error_business",w={errorCode:(K=(U=e==null?void 0:e.response)==null?void 0:U.data)==null?void 0:K.errorCode,errorMsg:((j=(R=e==null?void 0:e.response)==null?void 0:R.data)==null?void 0:j.message)||D("server.requestError","\u8BF7\u6C42\u51FA\u9519\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5"),error:e}),n(N,w)}return Promise.reject(e)}),{getModelList:async e=>{try{const u=await d.get(`/allPage?${new URLSearchParams(e).toString()}`),{success:l,data:m}=u;if(l)return m}catch(u){return console.log("getModelList error:",u),!1}},delModelById:async e=>{try{const u=await d.delete(`/delete?id=${e}`),{success:l,data:m}=u;if(l)return m}catch(u){console.log("delModelById error:",u)}},createModel:async e=>{try{const u=await d.post("/create",e),{success:l,data:m}=u;if(l)return m}catch(u){console.log("createModel error:",u)}},updateModelById:async e=>{try{const u=await d.put("/update",e),{success:l,data:m}=u;if(l)return m;console.log("====eee==",u),H.error(`\u4FDD\u5B58\u5931\u8D25: ${u==null?void 0:u.errorMsg}`)}catch(u){console.log("updateModelById error:",u)}},getUseTypeList:async()=>{try{const e=await d.get("/getModelTypes"),{success:u,data:l}=e;if(u)return l}catch(e){return console.log("getUseTypeList error:",e),!1}},getModelProtocolsList:async()=>{try{const e=await d.get("/getModelProtocols"),{success:u,data:l}=e;if(u)return l}catch(e){return console.log("getModelProtocolsList error:",e),!1}},testStatus:async()=>{try{const e=await d.post("/check"),{success:u,data:l}=e;if(u)return l}catch(e){console.log("testStatus error:",e)}},replaceModel:async(e,u)=>{try{const l=await d.get(`/replaceModel?sourceModelId=${e}&targetModelId=${u}`),{success:m,data:b}=l;if(m)return b}catch(l){console.log("replaceModel error:",l)}},checkModel:async e=>{try{const u=await d.get(`/checkModelReference?modelName=${e}`),{success:l,data:m}=u;if(l)return m}catch(u){console.log("checkModelReference error:",u)}}}},Y={common:{loading:"\u52A0\u8F7D\u4E2D..."},dashboard:{title:"\u6A21\u578B\u7BA1\u7406"},table:{viewLabel:"\u6A21\u578B",columns:{modelName:"\u6A21\u578B\u540D\u79F0",modelProtocol:"\u6A21\u578B\u4F20\u8F93\u534F\u8BAE",type:"\u4F7F\u7528\u7C7B\u578B",dec:"\u8BF4\u660E",status:"\u72B6\u6001",actions:"\u64CD\u4F5C"},statusHelpText:"\u5F53\u524D\u6A21\u578B\u72B6\u6001\u4E3A\u521D\u6B21\u65B0\u589E\u6821\u9A8C\u72B6\u6001\uFF0C\u82E5\u6A21\u578B\u4E0B\u7EBF\uFF0C\u6B64\u72B6\u6001\u4E0D\u4F1A\u4E3B\u52A8\u66F4\u65B0\uFF0C\u9700\u624B\u52A8\u6267\u884C\u6A21\u578B\u5220\u9664",toolbar:{add:"\u65B0\u5EFA",test:"\u6A21\u578B\u72B6\u6001\u68C0\u6D4B",replace:"\u6A21\u578B\u66FF\u6362"},actionEdit:"\u7F16\u8F91",actionAuth:"\u6388\u6743",actionDelete:"\u5220\u9664",tooltipChecking:"\u68C0\u6D4B\u4E2D\uFF0C\u8BF7\u7A0D\u540E",tooltipNoPermission:"\u89D2\u8272\u65E0\u6743\u9650\u64CD\u4F5C"},status:{available:"\u53EF\u7528",unavailable:"\u4E0D\u53EF\u7528",checking:"\u68C0\u6D4B\u4E2D"},empty:{noDataHint:"\u6682\u65E0\u6570\u636E\uFF0C\u8BF7\u5148\u65B0\u5EFA\u6A21\u578B",createModelBtn:"\u65B0\u5EFA\u6A21\u578B"},drawer:{titleNew:"\u65B0\u5EFA",titleEdit:"\u7F16\u8F91",cancel:"\u53D6\u6D88",confirm:"\u786E\u8BA4"},form:{labels:{modelName:"\u6A21\u578B\u540D\u79F0",modelIde:"\u6A21\u578BID",apiKey:"APIKey",url:"\u8BF7\u6C42URL",modelProtocol:"\u6A21\u578B\u4F20\u8F93\u534F\u8BAE",type:"\u4F7F\u7528\u7C7B\u578B",maxTokens:"\u4E0A\u4E0B\u6587\u957F\u5EA6",dec:"\u8BF4\u660E"},placeholders:{modelName:"\u8BF7\u8F93\u5165\u6A21\u578B\u540D\u79F0",modelIde:"\u8BF7\u8F93\u5165\u6A21\u578BID",apiKey:"\u8BF7\u8F93\u5165APIKey",url:"\u8BF7\u8F93\u5165\u8BF7\u6C42URL"},maxTokensHelpText:"\u8BF7\u5411\u6A21\u578B\u90E8\u7F72\u6216\u8FD0\u7EF4\u4EBA\u5458\u786E\u8BA4\u5F53\u524D\u6A21\u578B\u7684\u6700\u5927\u4E0A\u4E0B\u6587\u957F\u5EA6\uFF08Max Tokens / Context Length\uFF09\uFF0C\u5E76\u786E\u8BA4\u63A8\u7406\u670D\u52A1\uFF08\u5982 vLLM\uFF09\u662F\u5426\u914D\u7F6E\u4E86\u989D\u5916\u7684\u8F93\u5165\u957F\u5EA6\u9650\u5236"},replaceModal:{title:"\u6A21\u578B\u66FF\u6362",warningParagraph:"\u5982\u9700\u66F4\u6362\u6A21\u578B\uFF0C\u5728\u4E00\u952E\u66FF\u6362\u65F6\uFF0C\u7CFB\u7EDF\u5C06\u81EA\u52A8\u66F4\u65B0\u77E5\u8BC6\u89E3\u6790\u914D\u7F6E\u3001\u68C0\u7D22\u6D4B\u8BD5\u548C\u52A9\u624B\u914D\u7F6E\u4E2D\u7684\u6A21\u578B\u3002\u82E5\u66FF\u6362\u7684\u662F\u6587\u6863\u89E3\u6790\u7528\u7684Embedding\u6A21\u578B\uFF0C\u5219\u4F7F\u7528\u8BE5\u6A21\u578B\u7684\u6587\u6863\u5C06\u5168\u90E8\u91CD\u65B0\u6392\u961F\u89E3\u6790\uFF0C\u72B6\u6001\u53D8\u4E3A\u201C\u89E3\u6790\u4E2D\u201D\uFF0C\u4E14\u672A\u89E3\u6790\u5B8C\u6210\u7684\u6587\u6863\u6682\u4E0D\u53EF\u68C0\u7D22\uFF01",sourceLabel:"\u6A21\u578B\u540D\u79F0",targetLabel:"\u66FF\u6362\u4E3A",placeholderSelect:"\u8BF7\u9009\u62E9",cancel:"\u53D6\u6D88",confirm:"\u786E\u8BA4",messageSuccess:"\u6A21\u578B\u66FF\u6362\u6210\u529F"},message:{testSuccess:"\u6A21\u578B\u68C0\u6D4B\u4E2D\uFF0C\u8BF7\u8010\u5FC3\u7B49\u5F85\u72B6\u6001\u66F4\u65B0\uFF01",deleteSuccess:"\u5220\u9664\u6210\u529F",createSuccess:"\u6A21\u578B\u65B0\u589E\u6210\u529F\uFF01",editSuccess:"\u6A21\u578B\u7F16\u8F91\u6210\u529F\uFF01"},deleteConfirm:{title:"\u786E\u8BA4\u5220\u9664\uFF1F",content:'\u786E\u5B9A\u8981\u5220\u9664\u6A21\u578B "{{name}}" \u5417\uFF1F\u6B64\u64CD\u4F5C\u4E0D\u53EF\u6062\u590D\u3002',titleWhenInUse:"\u5220\u9664\u6A21\u578B",contentWhenInUse:"\u5F53\u524D\u6A21\u578B\u5728\u7CFB\u7EDF\u5185\u5DF2\u88AB\u914D\u7F6E\u4F7F\u7528\uFF0C\u5220\u9664\u53EF\u80FD\u5F71\u54CD\u6587\u6863\u89E3\u6790\u3001\u95EE\u7B54\u3001\u591A\u6A21\u6001\u80FD\u529B\u4F7F\u7528\u7B49\uFF0C\u8BF7\u60A8\u5148\u4F7F\u7528\u201C\u6A21\u578B\u4E00\u952E\u66FF\u6362\u201D\u80FD\u529B\u5C06\u8BE5\u6A21\u578B\u66FF\u6362\u4E3A\u540C\u7C7B\u578B\u6A21\u578B\uFF0C\u518D\u5220\u9664\u6A21\u578B",okText:"\u786E\u8BA4",cancelText:"\u53D6\u6D88",deleteOkText:"\u5220\u9664"},server:{requestError:"\u8BF7\u6C42\u51FA\u9519\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5",noPermission:"\u6CA1\u6709\u8DB3\u591F\u6743\u9650",notLoggedIn:"\u672A\u767B\u5F55\u6216token\u5DF2\u8FC7\u671F"}},Ke={common:{loading:"Loading..."},dashboard:{title:"Model management"},table:{viewLabel:"Models",columns:{modelName:"Model name",modelProtocol:"Protocol",type:"Use type",dec:"Description",status:"Status",actions:"Actions"},statusHelpText:"Status is validated on first add; if the model goes offline, it will not update automatically. Delete the model manually if needed.",toolbar:{add:"Add",test:"Test model status",replace:"Replace model"},actionEdit:"Edit",actionAuth:"Authorize",actionDelete:"Delete",tooltipChecking:"Checking, please wait",tooltipNoPermission:"No permission"},status:{available:"Available",unavailable:"Unavailable",checking:"Checking"},empty:{noDataHint:"No data. Add a model first.",createModelBtn:"Add model"},drawer:{titleNew:"Add",titleEdit:"Edit",cancel:"Cancel",confirm:"Confirm"},form:{labels:{modelName:"Model name",modelIde:"Model ID",apiKey:"API Key",url:"Request URL",modelProtocol:"Protocol",type:"Use type",maxTokens:"Context length",dec:"Description"},placeholders:{modelName:"Enter model name",modelIde:"Enter model ID",apiKey:"Enter API Key",url:"Enter request URL"},maxTokensHelpText:"Confirm with your deployment team the model's max context length (Max Tokens) and any limits set by the inference service (e.g. vLLM)."},replaceModal:{title:"Replace model",warningParagraph:'When you replace a model, the system will update knowledge parsing, retrieval tests, and assistant configs. If you replace an Embedding model used for documents, all documents using it will be re-queued for parsing and become "Parsing"; unparsed documents will not be searchable until done.',sourceLabel:"Model name",targetLabel:"Replace with",placeholderSelect:"Select",cancel:"Cancel",confirm:"Confirm",messageSuccess:"Model replaced successfully"},message:{testSuccess:"Model check in progress. Status will update shortly.",deleteSuccess:"Deleted",createSuccess:"Model added.",editSuccess:"Model updated."},deleteConfirm:{title:"Confirm delete?",content:'Delete model "{{name}}"? This cannot be undone.',titleWhenInUse:"Delete model",contentWhenInUse:'This model is in use. Deleting it may affect document parsing, Q&A, and multimodal features. Use "Replace model" to switch to another model of the same type first, then delete.',okText:"OK",cancelText:"Cancel",deleteOkText:"Delete"},server:{requestError:"Request failed, please try again.",noPermission:"Insufficient permission",notLoggedIn:"Not logged in or token expired"}},je={common:{loading:"\u8AAD\u307F\u8FBC\u307F\u4E2D..."},dashboard:{title:"\u30E2\u30C7\u30EB\u7BA1\u7406"},table:{viewLabel:"\u30E2\u30C7\u30EB",columns:{modelName:"\u30E2\u30C7\u30EB\u540D",modelProtocol:"\u30D7\u30ED\u30C8\u30B3\u30EB",type:"\u7528\u9014",dec:"\u8AAC\u660E",status:"\u72B6\u614B",actions:"\u64CD\u4F5C"},statusHelpText:"\u72B6\u614B\u306F\u521D\u56DE\u8FFD\u52A0\u6642\u306B\u691C\u8A3C\u3055\u308C\u307E\u3059\u3002\u30E2\u30C7\u30EB\u304C\u30AA\u30D5\u30E9\u30A4\u30F3\u306B\u306A\u3063\u3066\u3082\u81EA\u52D5\u3067\u306F\u66F4\u65B0\u3055\u308C\u307E\u305B\u3093\u3002\u5FC5\u8981\u306B\u5FDC\u3058\u3066\u624B\u52D5\u3067\u524A\u9664\u3057\u3066\u304F\u3060\u3055\u3044\u3002",toolbar:{add:"\u65B0\u898F",test:"\u30E2\u30C7\u30EB\u72B6\u614B\u691C\u8A3C",replace:"\u30E2\u30C7\u30EB\u7F6E\u63DB"},actionEdit:"\u7DE8\u96C6",actionAuth:"\u6A29\u9650",actionDelete:"\u524A\u9664",tooltipChecking:"\u691C\u8A3C\u4E2D\u3001\u3057\u3070\u3089\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044",tooltipNoPermission:"\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093"},status:{available:"\u5229\u7528\u53EF",unavailable:"\u5229\u7528\u4E0D\u53EF",checking:"\u691C\u8A3C\u4E2D"},empty:{noDataHint:"\u30C7\u30FC\u30BF\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u5148\u306B\u30E2\u30C7\u30EB\u3092\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044\u3002",createModelBtn:"\u30E2\u30C7\u30EB\u3092\u8FFD\u52A0"},drawer:{titleNew:"\u65B0\u898F",titleEdit:"\u7DE8\u96C6",cancel:"\u30AD\u30E3\u30F3\u30BB\u30EB",confirm:"\u78BA\u8A8D"},form:{labels:{modelName:"\u30E2\u30C7\u30EB\u540D",modelIde:"\u30E2\u30C7\u30EBID",apiKey:"API\u30AD\u30FC",url:"\u30EA\u30AF\u30A8\u30B9\u30C8URL",modelProtocol:"\u30D7\u30ED\u30C8\u30B3\u30EB",type:"\u7528\u9014",maxTokens:"\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u9577",dec:"\u8AAC\u660E"},placeholders:{modelName:"\u30E2\u30C7\u30EB\u540D\u3092\u5165\u529B",modelIde:"\u30E2\u30C7\u30EBID\u3092\u5165\u529B",apiKey:"API\u30AD\u30FC\u3092\u5165\u529B",url:"\u30EA\u30AF\u30A8\u30B9\u30C8URL\u3092\u5165\u529B"},maxTokensHelpText:"\u30E2\u30C7\u30EB\u306E\u6700\u5927\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u9577\uFF08Max Tokens\uFF09\u3068\u63A8\u8AD6\u30B5\u30FC\u30D3\u30B9\uFF08vLLM\u7B49\uFF09\u306E\u5236\u9650\u3092\u30C7\u30D7\u30ED\u30A4\u62C5\u5F53\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},replaceModal:{title:"\u30E2\u30C7\u30EB\u7F6E\u63DB",warningParagraph:"\u30E2\u30C7\u30EB\u3092\u7F6E\u63DB\u3059\u308B\u3068\u3001\u77E5\u8B58\u89E3\u6790\u30FB\u691C\u7D22\u30C6\u30B9\u30C8\u30FB\u30A2\u30B7\u30B9\u30BF\u30F3\u30C8\u8A2D\u5B9A\u304C\u66F4\u65B0\u3055\u308C\u307E\u3059\u3002\u6587\u66F8\u89E3\u6790\u7528Embedding\u30E2\u30C7\u30EB\u3092\u7F6E\u63DB\u3057\u305F\u5834\u5408\u3001\u305D\u306E\u30E2\u30C7\u30EB\u3092\u4F7F\u3046\u6587\u66F8\u306F\u518D\u89E3\u6790\u30AD\u30E5\u30FC\u306B\u5165\u308A\u300C\u89E3\u6790\u4E2D\u300D\u3068\u306A\u308A\u3001\u89E3\u6790\u5B8C\u4E86\u307E\u3067\u691C\u7D22\u3067\u304D\u307E\u305B\u3093\u3002",sourceLabel:"\u30E2\u30C7\u30EB\u540D",targetLabel:"\u7F6E\u63DB\u5148",placeholderSelect:"\u9078\u629E",cancel:"\u30AD\u30E3\u30F3\u30BB\u30EB",confirm:"\u78BA\u8A8D",messageSuccess:"\u30E2\u30C7\u30EB\u3092\u7F6E\u63DB\u3057\u307E\u3057\u305F"},message:{testSuccess:"\u30E2\u30C7\u30EB\u3092\u691C\u8A3C\u4E2D\u3067\u3059\u3002\u72B6\u614B\u304C\u66F4\u65B0\u3055\u308C\u308B\u307E\u3067\u304A\u5F85\u3061\u304F\u3060\u3055\u3044\u3002",deleteSuccess:"\u524A\u9664\u3057\u307E\u3057\u305F",createSuccess:"\u30E2\u30C7\u30EB\u3092\u8FFD\u52A0\u3057\u307E\u3057\u305F\u3002",editSuccess:"\u30E2\u30C7\u30EB\u3092\u66F4\u65B0\u3057\u307E\u3057\u305F\u3002"},deleteConfirm:{title:"\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F",content:"\u30E2\u30C7\u30EB\u300C{{name}}\u300D\u3092\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F\u5143\u306B\u623B\u305B\u307E\u305B\u3093\u3002",titleWhenInUse:"\u30E2\u30C7\u30EB\u3092\u524A\u9664",contentWhenInUse:"\u3053\u306E\u30E2\u30C7\u30EB\u306F\u4F7F\u7528\u4E2D\u3067\u3059\u3002\u524A\u9664\u3059\u308B\u3068\u6587\u66F8\u89E3\u6790\u30FBQ&A\u30FB\u30DE\u30EB\u30C1\u30E2\u30FC\u30C0\u30EB\u306B\u5F71\u97FF\u3059\u308B\u5834\u5408\u304C\u3042\u308A\u307E\u3059\u3002\u5148\u306B\u300C\u30E2\u30C7\u30EB\u7F6E\u63DB\u300D\u3067\u540C\u7A2E\u306E\u30E2\u30C7\u30EB\u306B\u7F6E\u304D\u63DB\u3048\u3066\u304B\u3089\u524A\u9664\u3057\u3066\u304F\u3060\u3055\u3044\u3002",okText:"\u78BA\u8A8D",cancelText:"\u30AD\u30E3\u30F3\u30BB\u30EB",deleteOkText:"\u524A\u9664"},server:{requestError:"\u30EA\u30AF\u30A8\u30B9\u30C8\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u3057\u3070\u3089\u304F\u3057\u3066\u304B\u3089\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002",noPermission:"\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093",notLoggedIn:"\u672A\u30ED\u30B0\u30A4\u30F3\u307E\u305F\u306F\u30C8\u30FC\u30AF\u30F3\u671F\u9650\u5207\u308C"}},Oe={zh:Y,en:Ke,ja:je};function $e(a,F){return a.replace(/\{\{(\w+)\}\}/g,(r,n)=>F[n]??"")}function _e(a,F){const r=Oe[a]??Y;return F?{...r,...F}:r}function fe(a,F){const r=F.split(".");let n=a;for(const E of r)n=n==null?void 0:n[E];return typeof n=="string"?n:F}const Ae=Z.createContext({locale:"zh",messages:Y,getMessage:a=>fe(Y,a)});function oe(){return Z.useContext(Ae)}function Ze({locale:a,messages:F,children:r}){const n=Z.useMemo(()=>{const E=_e(a,F);return{locale:a,messages:E,getMessage:D=>fe(E,D)}},[a,F]);return Z.createElement(Ae.Provider,{value:n},r)}const Ge=({drawerTitle:a,drawerVisible:F,modelInfo:r,handleDrawerClose:n,modelUseTypeOpt:E,modelProtocolsOpt:D,eventsEmit:d})=>{const{messages:i}=oe(),[t,S]=h(!1),[T,M]=h(!1),g=G(()=>({id:"config-model",layout:"vertical",formWidth:"550px",fields:[{id:"modelName",name:"modelName",label:i.form.labels.modelName,type:"input",required:!0,placeholder:i.form.placeholders.modelName,counter:30},{id:"modelIde",name:"modelIde",label:i.form.labels.modelIde,type:"input",required:!0,placeholder:i.form.placeholders.modelIde,defaultValue:""},{id:"apiKey",name:"apiKey",label:i.form.labels.apiKey,type:"input",required:!1,placeholder:i.form.placeholders.apiKey,defaultValue:""},{id:"url",name:"url",label:i.form.labels.url,type:"input",required:!0,placeholder:i.form.placeholders.url,defaultValue:""},{id:"modelProtocol",name:"modelProtocol",label:i.form.labels.modelProtocol,type:"select",required:!0,options:D},{id:"type",name:"type",label:i.form.labels.type,type:"select",required:!0,options:E,defaultValue:1,controlledItems:{2:{defaults:{maxTokens:512}}}},{id:"maxTokens",name:"maxTokens",label:i.form.labels.maxTokens,type:"slider",range:{max:1e5,min:200},step:1,sliderInline:!0,required:!0,helpText:i.form.maxTokensHelpText},{id:"dec",name:"dec",label:i.form.labels.dec,type:"textarea",required:!1}]}),[i,E,D]),p=se(null),z=async(u,l,m)=>{var b;switch(console.log("[Form] eventsEmit:",u,l,m),u){case"form:ready":l.formRef&&(p.current=l.formRef);break;case"form:change":if(!((b=p.current)!=null&&b.getValue)){console.log("\u8868\u5355\u5F15\u7528\u672A\u5C31\u7EEA\uFF0C\u8DF3\u8FC7 formdata_onchange \u4E8B\u4EF6");return}const k=await p.current.getValue("type");k==2||k==3?M(!0):M(!1);break;default:console.log("\u672A\u5904\u7406\u7684\u4E8B\u4EF6:",u,l)}d==null||d(u,l,m)},V=async()=>{try{S(!0);const u=await p.current.getAllData();u.isValid&&(r!=null&&r.id?await d("form_submitted_edit",u,void 0):await d("form_submitted_add",u,void 0))}catch(u){console.error("\u274C \u63D0\u4EA4\u8868\u5355\u6570\u636E\u5931\u8D25:",u)}finally{S(!1)}},e=G(()=>{const u=r==null?void 0:r.data.reduce((l,m)=>(l[m.columnId]=m.value,l),{});return console.log("====",u,r==null?void 0:r.data),{label:"\u52A8\u6001\u8868\u5355\u793A\u4F8B",defaultActiveId:g.id,model:null,views:[{label:"\u7528\u6237\u6CE8\u518C\u8868\u5355",id:g.id,type:"form",size:"md",formWidth:g.formWidth,formConfig:{layout:g.layout,showReset:!1,showSubmit:!1,formWidth:g.formWidth}}],dataSource:[{id:g.id,fields:g.fields,defaultValues:u||{}}],eventsEmit:z}},[r,T,g]);return o(Ue,{title:a,placement:"right",width:560,onClose:n,closeIcon:!1,extra:o(qe,{size:20,color:"#888888",onClick:n,className:"cursor-pointer"}),open:F,destroyOnHidden:!0,footer:P("div",{className:"flex justify-end items-center gap-3",children:[o(L,{mode:"default",label:i.drawer.cancel,onClick:n}),o(L,{mode:"primary",label:i.drawer.confirm,loading:t,onClick:V})]}),children:o(Ee,{...e},"example-form")})},{Item:me}=$,Ye=({modelVisible:a,options:F,eventsEmit:r,replaceModel:n})=>{const{messages:E}=oe(),[D,d]=h(!1),[i]=$.useForm(),t=$.useWatch("sourceModelId",i),S=G(()=>{const M=F.find(g=>g.value==t);return M?F.filter(p=>p.useType==M.useType&&p.value!==t&&p.status==1):[]},[t]);pe(()=>{t&&i.setFieldValue("targetModelId",void 0)},[t]);const T=async()=>{try{d(!0);const M=await i.validateFields(),{sourceModelId:g,targetModelId:p}=M;await n(g,p)&&(H.success(E.replaceModal.messageSuccess),i.resetFields(),r&&r("replace_model"))}catch(M){console.log("e---->",M)}finally{d(!1)}};return P(Be,{open:a,title:E.replaceModal.title,width:620,destroyOnHidden:!0,onCancel:()=>{i.resetFields(),r&&r("close_model")},footer:P("div",{className:"flex justify-end gap-3",style:{justifyContent:"end",margin:"20px 4px"},children:[o(L,{mode:"default",label:E.replaceModal.cancel,onClick:()=>{i.resetFields(),r&&r("close_model")}}),o(L,{mode:"primary",label:E.replaceModal.confirm,loading:D,onClick:T})]}),children:[P("div",{className:"flex gap-3",style:{margin:"20px 4px"},children:[o("div",{children:o(He,{size:22,color:"#f4a02a"})}),o("span",{className:"text-[14px]",children:E.replaceModal.warningParagraph})]}),P($,{form:i,colon:!1,labelCol:{span:5},wrapperCol:{span:18},style:{margin:"40px 60px"},children:[o(me,{label:E.replaceModal.sourceLabel,name:"sourceModelId",rules:[{required:!0,message:""}],children:o(ce,{placeholder:E.replaceModal.placeholderSelect,options:F})}),o(me,{label:E.replaceModal.targetLabel,name:"targetModelId",rules:[{required:!0,message:""}],children:o(ce,{placeholder:E.replaceModal.placeholderSelect,options:S})})]})]})},te={success:"green",error:"red",warning:"orange",processing:"blue",info:"cyan",default:"default"},ae=[{statusType:"success",value:"\u53EF\u7528",status:1},{statusType:"error",value:"\u4E0D\u53EF\u7528",status:0},{statusType:"warning",value:"\u68C0\u6D4B\u4E2D",status:2}],Xe=a=>typeof a=="string"&&a in te?te[a]:te.default;var _=(a=>(a[a.DATE=0]="DATE",a[a.VIEW=1]="VIEW",a[a.ERROR=2]="ERROR",a[a.AUTHORIZE=3]="AUTHORIZE",a[a.DELETE=4]="DELETE",a[a.ANALYSIS_OR_EXTRACT=5]="ANALYSIS_OR_EXTRACT",a[a.DOWNLOAD=6]="DOWNLOAD",a[a.EDIT=7]="EDIT",a[a.ADD=8]="ADD",a[a.ANALYSIS_CONFIG=9]="ANALYSIS_CONFIG",a[a.AUTHORIZE_CONFIG=10]="AUTHORIZE_CONFIG",a))(_||{});const{confirm:Fe}=Be,Qe={pageNum:1,pageSize:1e3},Je=a=>{const{value:F,cell:r}=a,n=Xe(a.cell.statusType);return r.status===0?o(le,{title:r.errorMsg,children:o("div",{className:"flex items-center gap-2",children:o(de,{color:n,text:F})})}):o(de,{color:n,text:F})};function eu(a){const{url:F,token:r,role:n,CustomComponents:E,eventsEmit:D,getBtnDisabled:d,showModelReplace:i}=a,{messages:t,getMessage:S,locale:T}=oe(),[M,g]=h({container:"ready",content:"ready"}),p=se(null),[z,V]=h(),e=se(null),[u,l]=h(!1),[m,b]=h(!1),[k,U]=h([]),[K,R]=h(!1),[j,N]=h(""),[w,re]=h(),[X,Ce]=h([]),[Q,ge]=h([]),{getModelList:De,delModelById:be,createModel:ye,updateModelById:he,getUseTypeList:Me,getModelProtocolsList:ve,testStatus:Ie,replaceModel:we,checkModel:xe}=Ve({url:F,token:r,role:n,eventsEmit:D,getMessage:S});pe(()=>(g(c=>({...c,content:"loading"})),J(),Le(),()=>{e.current&&(clearTimeout(e.current),e.current=null)}),[]);const ke=c=>(c||[]).map(s=>{const f=ae.find(x=>x.status==s.status),B=s.status===1?t.status.available:s.status===0?t.status.unavailable:t.status.checking;return{id:s.id,data:[{columnId:"modelName",value:s.modelName},{columnId:"modelProtocol",value:s.modelProtocol,type:"customized"},{columnId:"type",value:s.type,type:"customized"},{columnId:"dec",value:s.dec},{columnId:"status",...f,value:B,type:"customized",errorMsg:s.errorMsg},{columnId:"actions",value:"edit",label:t.table.actionEdit,status:s.status,type:"action",disabled:d&&d(_.EDIT,s.permission)},{columnId:"actions",value:"auth",label:t.table.actionAuth,type:"action",status:s.status,disabled:d&&d(_.AUTHORIZE,s.permission)},{columnId:"actions",value:"delete",label:t.table.actionDelete,type:"action",status:s.status,disabled:d&&d(_.AUTHORIZE,s.permission)},{columnId:"url",value:s.url},{columnId:"apiKey",value:s.apiKey},{columnId:"modelIde",value:s.modelIde},{columnId:"thinking",value:s.thinking},{columnId:"maxTokens",value:s.maxTokens}]}}),Le=async()=>{try{const[c,s]=await Promise.allSettled([Me(),ve()]);c.status==="fulfilled"&&c.value&&Ce((c.value||[]).map(f=>({...f,value:Number(f.value)}))),s.status==="fulfilled"&&s.value&&ge((s.value||[]).map(f=>({...f,value:Number(f.value)})))}catch(c){console.error("[TableApiError] getTableList:",c)}},ne=async()=>{try{const c=await De(Qe);if(c.records){const s=ke(c.records),f=(c.records||[]).map(B=>({value:B.id,label:B.modelName,useType:B.type,status:B.status}));return U(f),V(s||[]),g(B=>({...B,content:"ready"})),s||[]}}catch(c){console.error("[TableApiError] getTableList:",c)}},J=async()=>{const c=await ne();Se(c||[])?e.current&&(clearTimeout(e.current),e.current=null):(e.current&&(clearTimeout(e.current),e.current=null),e.current=setTimeout(()=>{J()},5e3))};function Se(c){if(!Array.isArray(c))return!0;for(const s of c)if(s.data){const f=s.data.find(B=>B.columnId==="status");if(f&&f.status===2)return!1}return!0}const Te=G(()=>({defaultActiveId:"model-table",model:null,views:[{label:t.table.viewLabel,id:"model-table",type:"table",viewBehavior:"pagination",allowMultiSelect:!1,viewPageSize:10,paginationLocale:T,columns:[{id:"modelName",title:t.table.columns.modelName,type:"label"},{id:"modelProtocol",title:t.table.columns.modelProtocol,type:"customized",component:c=>{var B;const{value:s}=c,f=(B=Q.find(x=>x.value==s))==null?void 0:B.label;return o("span",{children:f})}},{id:"type",title:t.table.columns.type,type:"customized",component:c=>{var B;const{value:s}=c,f=(B=X.find(x=>x.value==s))==null?void 0:B.label;return o("span",{children:f})}},{id:"dec",title:t.table.columns.dec,type:"paragraph"},{id:"status",title:t.table.columns.status,type:"customized",component:o(Je,{}),helpText:t.table.statusHelpText},{id:"actions",title:t.table.columns.actions,type:"customized",component:c=>{const{value:s,cell:f,row:B}=c,{disabled:x,label:q,status:O}=f;return O==2?o(le,{title:t.table.tooltipChecking,children:o(L,{mode:"text",label:q,disabled:!0})}):x?o(le,{title:t.table.tooltipNoPermission,children:o(L,{mode:"text",label:q,disabled:x})}):o(L,{mode:"text",label:q,onClick:()=>W(`table_action_${s}`,B,void 0)})}}],toolbar:[{type:"button",btnType:"primary",key:"add",label:t.table.toolbar.add,icon:o(ze,{})},...i?[{type:"customized",key:"test",render:()=>o(L,{loading:u,mode:"primary",label:t.table.toolbar.test,onClick:()=>W("toolbar_test")})},{type:"button",btnType:"primary",key:"replace",label:t.table.toolbar.replace}]:[]]}]}),[t,T,X,Q,u,i]),Re=()=>P("div",{className:"flex flex-col items-center justify-center h-full",children:[o("div",{className:"text-xl font-semibold mb-3",style:{color:"#374151"},children:o("img",{src:We,width:120})}),o("div",{className:"text-base mb-6",style:{color:"#6b7280"},children:t.empty.noDataHint}),o("div",{className:"flex gap-3",children:o(L,{mode:"primary",label:t.empty.createModelBtn,onClick:()=>{N(t.drawer.titleNew),R(!0)}})})]});async function W(c,s,f){var B,x,q,O;switch(console.log("[adopter] mergedEventsEmit",c,s,f),c){case"toolbar_add":{N(t.drawer.titleNew),R(!0);break}case"toolbar_test":{l(!0),await Ie()&&(l(!1),await J(),H.success(t.message.testSuccess));break}case"toolbar_replace":{b(!0);break}case"table_action_delete":{try{const v=s.data.find(y=>y.columnId=="modelName").value;if(await xe(v)>0)Fe({title:t.deleteConfirm.titleWhenInUse,content:o("div",{style:{marginRight:"20px"},children:t.deleteConfirm.contentWhenInUse}),okText:t.deleteConfirm.okText,cancelText:t.deleteConfirm.cancelText});else{const y=s.data.find(I=>I.columnId=="modelName").value;Fe({title:t.deleteConfirm.title,content:$e(t.deleteConfirm.content,{name:y}),okText:t.deleteConfirm.deleteOkText,cancelText:t.deleteConfirm.cancelText,async onOk(){await be(s.id)&&(p!=null&&p.current)&&(p==null||p.current.appFn.removeItem(s.id),H.success(t.message.deleteSuccess))}})}}catch(v){console.error("\u5220\u9664\u8868\u6570\u636E\u5931\u8D25",v)}break}case"table_action_edit":{N(t.drawer.titleEdit),R(!0),re(s);break}case"form_submitted_add":{try{const v=s.fields.reduce((y,I)=>(y[I.name]=I.value,y),{}),A=await ye({...v});if(A){const y=ae.find(C=>C.status==A.status),I=A.status===1?t.status.available:A.status===0?t.status.unavailable:t.status.checking,ue={id:A.id,data:[...(Object.keys(A)||[]).map(C=>C==="status"?{columnId:C,value:I,...y,type:"customized",errorMsg:A.errorMsg}:{columnId:C,value:A[C],...(C=="modelProtocol"||C=="type")&&{type:"customized"}}),{columnId:"actions",value:"edit",label:t.table.actionEdit,type:"action"},{columnId:"actions",value:"auth",label:t.table.actionAuth,type:"action"},{columnId:"actions",value:"delete",label:t.table.actionDelete,type:"action"}]};(x=(B=p==null?void 0:p.current)==null?void 0:B.appFn)==null||x.addItem(ue,{animate:!0,position:"start"}),H.success(t.message.createSuccess),ee()}}catch(v){console.error("\u4FDD\u5B58\u5931\u8D25\uFF01",v)}finally{}break}case"form_submitted_edit":{try{const v=s.fields.reduce((y,I)=>(y[I.name]=I.value,y),{}),A=await he({...v,id:w.id});if(console.log("======res",A),A){const y=ae.find(C=>C.status==A.status),I=A.status===1?t.status.available:A.status===0?t.status.unavailable:t.status.checking,ue={...w,data:w.data.map(C=>{if(A[C.columnId]!==null&&A[C.columnId]!==void 0){if(C.columnId=="status")return{...C,...y,value:I};C.value=A[C.columnId]}return C})};(O=(q=p==null?void 0:p.current)==null?void 0:q.appFn)==null||O.updateItem(ue,w==null?void 0:w.id),H.success(t.message.editSuccess),ee()}}catch(v){console.error("\u4FDD\u5B58\u5931\u8D25\uFF01",v)}break}case"replace_model":{await ne(),b(!1);break}case"close_model":{b(!1);break}default:typeof a.eventsEmit=="function"&&a.eventsEmit(c,s);break}}const ee=()=>{R(!1),re(void 0)};return P(Ne,{title:t.dashboard.title,children:[o(Ee,{dataSource:z,ref:p,eventsEmit:W,status:M,CustomComponents:{EmptyData:Re,...E},styles:{theme:{...ie,colors:{...ie.colors,tableFirstColumnBg:"#ffffff",tableLastColumnBg:"#ffffff",paginationBackground:"#ffffff",subTableBackground:"#F5F5F5",tableHeaderBg:"#F5F5F5"}},mode:"light"},...Te}),o(Ge,{drawerTitle:j,drawerVisible:K,handleDrawerClose:ee,modelInfo:w,modelUseTypeOpt:X,modelProtocolsOpt:Q,eventsEmit:W}),o(Ye,{modelVisible:m,options:k,eventsEmit:W,replaceModel:we})]})}function Eu(a){const{locale:F="zh",messages:r,...n}=a;return o(Ze,{locale:F,messages:r,children:o(eu,{...n})})}export{Ae as ModelManageI18nContext,Ze as ModelManageI18nProvider,Eu as default,_e as getModelManageMessages,$e as interpolateModelManage,oe as useModelManageI18n};
|