@zero-library/chat-agent 2.3.10 → 2.3.12
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/dist/index.cjs.js +61 -45
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.mts +28 -4
- package/dist/index.d.ts +28 -4
- package/dist/index.esm.js +61 -45
- package/dist/index.esm.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -403,6 +403,8 @@ interface LabelItemUpdate extends LabelItemPrompt {
|
|
|
403
403
|
* 快速提问列表查询参数接口
|
|
404
404
|
*/
|
|
405
405
|
interface LabelItemListQuery {
|
|
406
|
+
/** 智能体ID */
|
|
407
|
+
agentId: AgentInfo['id'];
|
|
406
408
|
/** 分类ID */
|
|
407
409
|
labelId?: string;
|
|
408
410
|
/** 搜索关键字 */
|
|
@@ -414,24 +416,43 @@ interface LabelItemListQuery {
|
|
|
414
416
|
interface LabelItem extends LabelItemUpdate {
|
|
415
417
|
/** 问题ID */
|
|
416
418
|
id: string;
|
|
417
|
-
|
|
419
|
+
/** 智能体ID */
|
|
420
|
+
agentId: AgentInfo['id'];
|
|
421
|
+
/** 排序序号 */
|
|
418
422
|
seq: number;
|
|
419
423
|
/** 是否置顶 */
|
|
420
424
|
isTop?: 1 | 0;
|
|
425
|
+
/** 创建时间戳 */
|
|
421
426
|
createTime: number;
|
|
427
|
+
/** 更新时间戳 */
|
|
422
428
|
updateTime: number;
|
|
429
|
+
/** 是否允许删除 */
|
|
423
430
|
canDelete?: boolean;
|
|
424
431
|
}
|
|
432
|
+
/**
|
|
433
|
+
* 快速提问分类查询参数接口
|
|
434
|
+
*/
|
|
425
435
|
interface LabelQuery extends PageReq {
|
|
436
|
+
/** 智能体ID */
|
|
437
|
+
agentId: AgentInfo['id'];
|
|
438
|
+
/** 业务扩展数据,非必填 JSON字符串格式 */
|
|
439
|
+
businessData?: string;
|
|
440
|
+
/** 分类名称 */
|
|
426
441
|
labelName?: string;
|
|
427
442
|
}
|
|
443
|
+
/**
|
|
444
|
+
* 快速提问分类接口
|
|
445
|
+
*/
|
|
428
446
|
interface LabelType {
|
|
429
447
|
/** 分类ID */
|
|
430
448
|
id: string;
|
|
431
449
|
/** 分类名称 */
|
|
432
450
|
labelName: string;
|
|
451
|
+
/** 创建时间戳 */
|
|
433
452
|
createTime: number;
|
|
453
|
+
/** 更新时间戳 */
|
|
434
454
|
updateTime: number;
|
|
455
|
+
/** 是否允许删除 */
|
|
435
456
|
canDelete?: boolean;
|
|
436
457
|
}
|
|
437
458
|
/**
|
|
@@ -467,8 +488,11 @@ interface FavoriteConversationsQuery extends PageReq {
|
|
|
467
488
|
* 收藏列表返回数据结构
|
|
468
489
|
*/
|
|
469
490
|
interface FavoriteConversationType {
|
|
491
|
+
/** 收藏ID */
|
|
470
492
|
id: string;
|
|
493
|
+
/** 收藏标题 */
|
|
471
494
|
title: string;
|
|
495
|
+
/** 收藏时间 */
|
|
472
496
|
favoriteTime: string;
|
|
473
497
|
}
|
|
474
498
|
/**
|
|
@@ -498,8 +522,8 @@ declare const createChatService: (request: ReturnType<typeof createRequest>) =>
|
|
|
498
522
|
fileUpload: (formData: FormData) => Promise<R<InputFile>>;
|
|
499
523
|
labelItemUpdate: (agentId: AgentInfo["id"], params: LabelItemUpdate) => Promise<R<LabelItem["id"]>>;
|
|
500
524
|
labelItemDelete: (id: LabelItem["id"]) => Promise<R<null>>;
|
|
501
|
-
labelsQuery: (
|
|
502
|
-
labelItemsQuery: (
|
|
525
|
+
labelsQuery: (params?: LabelQuery) => Promise<R<PageRes<LabelType>>>;
|
|
526
|
+
labelItemsQuery: (params: LabelItemListQuery) => Promise<R<LabelItem[]>>;
|
|
503
527
|
labelItemTop: (params: LabelItemTop) => Promise<R<null>>;
|
|
504
528
|
labelItemPromptAssistant: (prompt: string) => Promise<R<LabelItemPrompt>>;
|
|
505
529
|
recommendQuestionsQuery: (agentId: AgentInfo["id"], conversationId: ConversationType["id"]) => Promise<R<string[]>>;
|
|
@@ -1695,7 +1719,7 @@ interface ChatHandle {
|
|
|
1695
1719
|
*/
|
|
1696
1720
|
setServices: (services?: ChatServices) => void;
|
|
1697
1721
|
/**
|
|
1698
|
-
*
|
|
1722
|
+
* 输入框聚焦(如果前一步是设置message,最好加个延时)
|
|
1699
1723
|
* 使聊天输入框获得焦点
|
|
1700
1724
|
*
|
|
1701
1725
|
* @example
|
package/dist/index.d.ts
CHANGED
|
@@ -403,6 +403,8 @@ interface LabelItemUpdate extends LabelItemPrompt {
|
|
|
403
403
|
* 快速提问列表查询参数接口
|
|
404
404
|
*/
|
|
405
405
|
interface LabelItemListQuery {
|
|
406
|
+
/** 智能体ID */
|
|
407
|
+
agentId: AgentInfo['id'];
|
|
406
408
|
/** 分类ID */
|
|
407
409
|
labelId?: string;
|
|
408
410
|
/** 搜索关键字 */
|
|
@@ -414,24 +416,43 @@ interface LabelItemListQuery {
|
|
|
414
416
|
interface LabelItem extends LabelItemUpdate {
|
|
415
417
|
/** 问题ID */
|
|
416
418
|
id: string;
|
|
417
|
-
|
|
419
|
+
/** 智能体ID */
|
|
420
|
+
agentId: AgentInfo['id'];
|
|
421
|
+
/** 排序序号 */
|
|
418
422
|
seq: number;
|
|
419
423
|
/** 是否置顶 */
|
|
420
424
|
isTop?: 1 | 0;
|
|
425
|
+
/** 创建时间戳 */
|
|
421
426
|
createTime: number;
|
|
427
|
+
/** 更新时间戳 */
|
|
422
428
|
updateTime: number;
|
|
429
|
+
/** 是否允许删除 */
|
|
423
430
|
canDelete?: boolean;
|
|
424
431
|
}
|
|
432
|
+
/**
|
|
433
|
+
* 快速提问分类查询参数接口
|
|
434
|
+
*/
|
|
425
435
|
interface LabelQuery extends PageReq {
|
|
436
|
+
/** 智能体ID */
|
|
437
|
+
agentId: AgentInfo['id'];
|
|
438
|
+
/** 业务扩展数据,非必填 JSON字符串格式 */
|
|
439
|
+
businessData?: string;
|
|
440
|
+
/** 分类名称 */
|
|
426
441
|
labelName?: string;
|
|
427
442
|
}
|
|
443
|
+
/**
|
|
444
|
+
* 快速提问分类接口
|
|
445
|
+
*/
|
|
428
446
|
interface LabelType {
|
|
429
447
|
/** 分类ID */
|
|
430
448
|
id: string;
|
|
431
449
|
/** 分类名称 */
|
|
432
450
|
labelName: string;
|
|
451
|
+
/** 创建时间戳 */
|
|
433
452
|
createTime: number;
|
|
453
|
+
/** 更新时间戳 */
|
|
434
454
|
updateTime: number;
|
|
455
|
+
/** 是否允许删除 */
|
|
435
456
|
canDelete?: boolean;
|
|
436
457
|
}
|
|
437
458
|
/**
|
|
@@ -467,8 +488,11 @@ interface FavoriteConversationsQuery extends PageReq {
|
|
|
467
488
|
* 收藏列表返回数据结构
|
|
468
489
|
*/
|
|
469
490
|
interface FavoriteConversationType {
|
|
491
|
+
/** 收藏ID */
|
|
470
492
|
id: string;
|
|
493
|
+
/** 收藏标题 */
|
|
471
494
|
title: string;
|
|
495
|
+
/** 收藏时间 */
|
|
472
496
|
favoriteTime: string;
|
|
473
497
|
}
|
|
474
498
|
/**
|
|
@@ -498,8 +522,8 @@ declare const createChatService: (request: ReturnType<typeof createRequest>) =>
|
|
|
498
522
|
fileUpload: (formData: FormData) => Promise<R<InputFile>>;
|
|
499
523
|
labelItemUpdate: (agentId: AgentInfo["id"], params: LabelItemUpdate) => Promise<R<LabelItem["id"]>>;
|
|
500
524
|
labelItemDelete: (id: LabelItem["id"]) => Promise<R<null>>;
|
|
501
|
-
labelsQuery: (
|
|
502
|
-
labelItemsQuery: (
|
|
525
|
+
labelsQuery: (params?: LabelQuery) => Promise<R<PageRes<LabelType>>>;
|
|
526
|
+
labelItemsQuery: (params: LabelItemListQuery) => Promise<R<LabelItem[]>>;
|
|
503
527
|
labelItemTop: (params: LabelItemTop) => Promise<R<null>>;
|
|
504
528
|
labelItemPromptAssistant: (prompt: string) => Promise<R<LabelItemPrompt>>;
|
|
505
529
|
recommendQuestionsQuery: (agentId: AgentInfo["id"], conversationId: ConversationType["id"]) => Promise<R<string[]>>;
|
|
@@ -1695,7 +1719,7 @@ interface ChatHandle {
|
|
|
1695
1719
|
*/
|
|
1696
1720
|
setServices: (services?: ChatServices) => void;
|
|
1697
1721
|
/**
|
|
1698
|
-
*
|
|
1722
|
+
* 输入框聚焦(如果前一步是设置message,最好加个延时)
|
|
1699
1723
|
* 使聊天输入框获得焦点
|
|
1700
1724
|
*
|
|
1701
1725
|
* @example
|
package/dist/index.esm.js
CHANGED
|
@@ -179,7 +179,7 @@ var init_MdEdit = __esm({
|
|
|
179
179
|
setValue(data.content);
|
|
180
180
|
}, [data.content]);
|
|
181
181
|
return /* @__PURE__ */ jsxs("div", { className: styles_module_default.mdEdit, children: [
|
|
182
|
-
/* @__PURE__ */ jsx(MarkdownEditor, { disabled: loading, value, onChange: setValue,
|
|
182
|
+
/* @__PURE__ */ jsx(MarkdownEditor, { disabled: loading, value, onChange: setValue, fixedToolbar: false, floatToolbar: false }),
|
|
183
183
|
!loading && /* @__PURE__ */ jsx(Flex, { justify: "end", className: "m-t-16", children: /* @__PURE__ */ jsx(Button, { color: "primary", variant: "outlined", onClick: onOk, children: btnText }) })
|
|
184
184
|
] });
|
|
185
185
|
};
|
|
@@ -419,11 +419,11 @@ var createChatService = (request) => {
|
|
|
419
419
|
const labelItemDelete = (id) => {
|
|
420
420
|
return request.delete("/lolr/label/item", { id });
|
|
421
421
|
};
|
|
422
|
-
const labelsQuery = (
|
|
423
|
-
return request.get("/lolr/label",
|
|
422
|
+
const labelsQuery = (params) => {
|
|
423
|
+
return request.get("/lolr/label", params);
|
|
424
424
|
};
|
|
425
|
-
const labelItemsQuery = (
|
|
426
|
-
return request.get("/lolr/label/item",
|
|
425
|
+
const labelItemsQuery = (params) => {
|
|
426
|
+
return request.get("/lolr/label/item", params);
|
|
427
427
|
};
|
|
428
428
|
const labelItemTop = (params) => {
|
|
429
429
|
return request.put("/lolr/label/item/top", params);
|
|
@@ -2117,6 +2117,13 @@ var ChatSender_default = forwardRef(
|
|
|
2117
2117
|
onSend();
|
|
2118
2118
|
}
|
|
2119
2119
|
};
|
|
2120
|
+
const isFocusedRef = useRef(false);
|
|
2121
|
+
useEffect(() => {
|
|
2122
|
+
if (!content) return;
|
|
2123
|
+
if (!isFocusedRef.current) {
|
|
2124
|
+
senderRef.current?.focus({ cursor: "end" });
|
|
2125
|
+
}
|
|
2126
|
+
}, [content]);
|
|
2120
2127
|
useImperativeHandle(
|
|
2121
2128
|
ref,
|
|
2122
2129
|
() => ({
|
|
@@ -2135,7 +2142,13 @@ var ChatSender_default = forwardRef(
|
|
|
2135
2142
|
header: senderHeader,
|
|
2136
2143
|
onSubmit,
|
|
2137
2144
|
onChange: setInputValue,
|
|
2138
|
-
onFocus
|
|
2145
|
+
onFocus: () => {
|
|
2146
|
+
isFocusedRef.current = true;
|
|
2147
|
+
onFocus?.();
|
|
2148
|
+
},
|
|
2149
|
+
onBlur: () => {
|
|
2150
|
+
isFocusedRef.current = false;
|
|
2151
|
+
},
|
|
2139
2152
|
autoSize: { minRows: 2, maxRows: 6 },
|
|
2140
2153
|
onCancel,
|
|
2141
2154
|
footer: ({ components }) => {
|
|
@@ -2267,7 +2280,6 @@ var styles_module_default4 = {
|
|
|
2267
2280
|
quickAskItemTitle: "styles_module_quickAskItemTitle",
|
|
2268
2281
|
quickAskItemActions: "styles_module_quickAskItemActions"
|
|
2269
2282
|
};
|
|
2270
|
-
var ALL = "all";
|
|
2271
2283
|
var QuickAskPanelDrawer_default = ({ open, onClose }) => {
|
|
2272
2284
|
const { message: message2 } = App.useApp();
|
|
2273
2285
|
const chatStore = useChatStore();
|
|
@@ -2275,39 +2287,43 @@ var QuickAskPanelDrawer_default = ({ open, onClose }) => {
|
|
|
2275
2287
|
const receiverState = useSnapshot(chatStore.receiver);
|
|
2276
2288
|
const [searchText, setSearchText, getSearchText] = useRefState("");
|
|
2277
2289
|
const [searchExpanded, setSearchExpanded] = useState(false);
|
|
2278
|
-
const [activeTab, setActiveTab, getActiveTab] = useRefState(
|
|
2290
|
+
const [activeTab, setActiveTab, getActiveTab] = useRefState("");
|
|
2279
2291
|
const [categories, setCategories] = useState([]);
|
|
2280
2292
|
const [items, setItems] = useState([]);
|
|
2281
2293
|
const [editModalOpen, setEditModalOpen] = useState(false);
|
|
2282
2294
|
const [editingItem, setEditingItem] = useState();
|
|
2283
2295
|
const fetchCategories = async () => {
|
|
2284
2296
|
try {
|
|
2285
|
-
const res = await configState.services.request?.labelsQuery?.(
|
|
2297
|
+
const res = await configState.services.request?.labelsQuery?.({
|
|
2298
|
+
agentId: receiverState.active?.id,
|
|
2299
|
+
businessData: configState.params.businessData,
|
|
2300
|
+
pageNo: 1,
|
|
2301
|
+
pageSize: 1e3
|
|
2302
|
+
});
|
|
2286
2303
|
if (res?.data) {
|
|
2287
2304
|
setCategories(res.data?.items);
|
|
2305
|
+
if (!activeTab && res.data?.items?.length) {
|
|
2306
|
+
setActiveTab(res.data.items[0].id);
|
|
2307
|
+
}
|
|
2288
2308
|
}
|
|
2289
2309
|
} catch (err) {
|
|
2290
2310
|
}
|
|
2291
2311
|
};
|
|
2292
2312
|
const tabsItems = useMemo(
|
|
2293
|
-
() =>
|
|
2294
|
-
|
|
2295
|
-
|
|
2296
|
-
|
|
2297
|
-
},
|
|
2298
|
-
...categories.map((item) => ({
|
|
2299
|
-
key: item.id,
|
|
2300
|
-
label: item.labelName
|
|
2301
|
-
}))
|
|
2302
|
-
],
|
|
2313
|
+
() => categories.map((item) => ({
|
|
2314
|
+
key: item.id,
|
|
2315
|
+
label: item.labelName
|
|
2316
|
+
})),
|
|
2303
2317
|
[categories]
|
|
2304
2318
|
);
|
|
2305
2319
|
const [loading, setLoading] = useState(false);
|
|
2306
2320
|
const fetchItems = useDebounce(async () => {
|
|
2321
|
+
if (!getActiveTab()) return;
|
|
2307
2322
|
try {
|
|
2308
2323
|
setLoading(true);
|
|
2309
|
-
const res = await configState.services.request?.labelItemsQuery?.(
|
|
2310
|
-
|
|
2324
|
+
const res = await configState.services.request?.labelItemsQuery?.({
|
|
2325
|
+
agentId: receiverState.active?.id,
|
|
2326
|
+
labelId: getActiveTab(),
|
|
2311
2327
|
keyword: getSearchText()
|
|
2312
2328
|
});
|
|
2313
2329
|
if (res?.data) {
|
|
@@ -2317,10 +2333,12 @@ var QuickAskPanelDrawer_default = ({ open, onClose }) => {
|
|
|
2317
2333
|
setLoading(false);
|
|
2318
2334
|
}
|
|
2319
2335
|
});
|
|
2336
|
+
useEffect(() => {
|
|
2337
|
+
fetchItems();
|
|
2338
|
+
}, [activeTab]);
|
|
2320
2339
|
useEffect(() => {
|
|
2321
2340
|
if (receiverState.active?.id) {
|
|
2322
2341
|
fetchCategories();
|
|
2323
|
-
fetchItems();
|
|
2324
2342
|
}
|
|
2325
2343
|
}, [receiverState.active?.id]);
|
|
2326
2344
|
const [updateLoading, setUpdateLoading] = useState(false);
|
|
@@ -2330,9 +2348,7 @@ var QuickAskPanelDrawer_default = ({ open, onClose }) => {
|
|
|
2330
2348
|
await configState.services.request?.labelItemUpdate?.(receiverState.active?.id, values);
|
|
2331
2349
|
setEditModalOpen(false);
|
|
2332
2350
|
message2.success("\u4FDD\u5B58\u6210\u529F");
|
|
2333
|
-
|
|
2334
|
-
fetchItems();
|
|
2335
|
-
}
|
|
2351
|
+
fetchItems();
|
|
2336
2352
|
fetchCategories();
|
|
2337
2353
|
} finally {
|
|
2338
2354
|
setUpdateLoading(false);
|
|
@@ -2363,9 +2379,10 @@ var QuickAskPanelDrawer_default = ({ open, onClose }) => {
|
|
|
2363
2379
|
if (canProceed === false) {
|
|
2364
2380
|
return;
|
|
2365
2381
|
}
|
|
2366
|
-
chatStore.setContent(item.
|
|
2382
|
+
chatStore.setContent(`#${item.title}# `);
|
|
2367
2383
|
chatStore.setContentParams({
|
|
2368
|
-
|
|
2384
|
+
capacityId: item.id,
|
|
2385
|
+
capacityTitle: item.title
|
|
2369
2386
|
});
|
|
2370
2387
|
};
|
|
2371
2388
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -2383,11 +2400,10 @@ var QuickAskPanelDrawer_default = ({ open, onClose }) => {
|
|
|
2383
2400
|
children: /* @__PURE__ */ jsxs(Flex, { vertical: true, className: styles_module_default4.quickAskPanel, children: [
|
|
2384
2401
|
/* @__PURE__ */ jsxs(Flex, { gap: 12, className: "p-16", vertical: true, children: [
|
|
2385
2402
|
/* @__PURE__ */ jsxs(Flex, { gap: 8, children: [
|
|
2386
|
-
!searchExpanded
|
|
2403
|
+
!searchExpanded ? /* @__PURE__ */ jsx(
|
|
2387
2404
|
Button,
|
|
2388
2405
|
{
|
|
2389
2406
|
type: "dashed",
|
|
2390
|
-
block: true,
|
|
2391
2407
|
icon: /* @__PURE__ */ jsx(PlusOutlined, {}),
|
|
2392
2408
|
className: "flex-1",
|
|
2393
2409
|
onClick: () => {
|
|
@@ -2396,6 +2412,20 @@ var QuickAskPanelDrawer_default = ({ open, onClose }) => {
|
|
|
2396
2412
|
},
|
|
2397
2413
|
children: "\u65B0\u589E\u80FD\u529B\u6A21\u677F"
|
|
2398
2414
|
}
|
|
2415
|
+
) : /* @__PURE__ */ jsx(
|
|
2416
|
+
Button,
|
|
2417
|
+
{
|
|
2418
|
+
icon: /* @__PURE__ */ jsx(PlusOutlined, {}),
|
|
2419
|
+
onClick: () => {
|
|
2420
|
+
if (getSearchText()) {
|
|
2421
|
+
setSearchText("");
|
|
2422
|
+
fetchItems();
|
|
2423
|
+
}
|
|
2424
|
+
setSearchExpanded(false);
|
|
2425
|
+
setEditingItem(null);
|
|
2426
|
+
setEditModalOpen(true);
|
|
2427
|
+
}
|
|
2428
|
+
}
|
|
2399
2429
|
),
|
|
2400
2430
|
searchExpanded ? /* @__PURE__ */ jsx(
|
|
2401
2431
|
Input,
|
|
@@ -2409,25 +2439,11 @@ var QuickAskPanelDrawer_default = ({ open, onClose }) => {
|
|
|
2409
2439
|
fetchItems();
|
|
2410
2440
|
},
|
|
2411
2441
|
className: "flex-1",
|
|
2412
|
-
allowClear: true
|
|
2413
|
-
onBlur: () => setSearchExpanded(false)
|
|
2442
|
+
allowClear: true
|
|
2414
2443
|
}
|
|
2415
2444
|
) : /* @__PURE__ */ jsx(Button, { icon: /* @__PURE__ */ jsx(SearchOutlined, {}), onClick: () => setSearchExpanded(true) })
|
|
2416
2445
|
] }),
|
|
2417
|
-
/* @__PURE__ */ jsx(
|
|
2418
|
-
Tabs,
|
|
2419
|
-
{
|
|
2420
|
-
className: styles_module_default4.tagContainer,
|
|
2421
|
-
activeKey: activeTab.id ? activeTab.id : ALL,
|
|
2422
|
-
onChange: (key) => {
|
|
2423
|
-
setActiveTab(key === ALL ? {} : categories.find((c) => c.id === key));
|
|
2424
|
-
fetchItems();
|
|
2425
|
-
},
|
|
2426
|
-
tabPosition: "top",
|
|
2427
|
-
items: tabsItems,
|
|
2428
|
-
size: "small"
|
|
2429
|
-
}
|
|
2430
|
-
)
|
|
2446
|
+
/* @__PURE__ */ jsx(Tabs, { className: styles_module_default4.tagContainer, activeKey: activeTab, onChange: setActiveTab, tabPosition: "top", items: tabsItems, size: "small" })
|
|
2431
2447
|
] }),
|
|
2432
2448
|
/* @__PURE__ */ jsx(Flex, { vertical: true, className: "flex-1", children: /* @__PURE__ */ jsx(Spin, { spinning: loading, wrapperClassName: "full-spin", tip: "\u52A0\u8F7D\u4E2D...", children: /* @__PURE__ */ jsx(Flex, { vertical: true, gap: 8, className: "height-full scroll-fade-in p-16 p-t-0", children: items.length ? items.map((item) => /* @__PURE__ */ jsxs(Flex, { gap: 4, align: "start", className: styles_module_default4.quickAskItem, onClick: () => onSelectItem(item), children: [
|
|
2433
2449
|
/* @__PURE__ */ jsx(FileTextOutlined, { className: styles_module_default4.quickAskItemIcon }),
|