@gientech/modual 1.4.7 → 1.5.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/dist/assets/{GientechStreamReader-4496nAm0.js → GientechStreamReader-BE_oxQLt.js} +2 -2
- package/dist/assets/Input-CNqIA41v.js +236 -0
- package/dist/assets/index-Bof0D4vl.js +1088 -0
- package/dist/assets/{index-BVENTW1Q.js → index-C5RhLYRh.js} +1 -1
- package/dist/assets/index-COcmK9my.js +1 -0
- package/dist/assets/index-CysDmrpo.js +1798 -0
- package/dist/assets/{index-7rZAt9P3.js → index-DP8Ki8qW.js} +1 -1
- package/dist/assets/index-pybYlMAT.js +11 -0
- package/dist/assets/{plus-CrtEUXaQ.js → plus-CzbYbK8K.js} +1 -1
- package/dist/assets/style3.css +1 -1
- package/dist/assets/worker-BbpylX7l.js +13 -0
- package/dist/assets/{x-Dr3EBTzJ.js → x-DdRafKQU.js} +1 -1
- package/dist/chat.d.ts +17 -0
- package/dist/chat.js +3830 -52
- package/dist/database.js +2 -2
- package/dist/databaseId.js +1 -11
- package/dist/databaseTable.js +2 -2
- package/dist/index.d.ts +4 -0
- package/dist/index.js +1 -14
- package/dist/modelManage.js +1 -1
- package/dist/package.json +1 -1
- package/dist/sensitive.js +1 -1
- package/dist/streamFilesReader.js +1 -1
- package/package.json +6 -6
- package/scripts/README.md +133 -133
- package/scripts/build-demo.js +88 -88
- package/scripts/demo-selector.js +216 -216
- package/scripts/preview-demo.js +130 -130
- package/scripts/run-demo.bat +34 -34
- package/src/assets/img/close.png +0 -0
- package/src/assets/img/database.png +0 -0
- package/src/assets/img/downLoad.png +0 -0
- package/src/assets/img/graphIcon.png +0 -0
- package/src/assets/img/pdf.png +0 -0
- package/src/assets/img/singleQa.png +0 -0
- package/src/assets/img/webSearch.png +0 -0
- package/src/examples/chat/index.tsx +5 -29
- package/src/main.tsx.backup +2 -2
- package/src/modules/chat/ReferenceBar.tsx +13 -0
- package/src/modules/chat/constants.tsx +29 -6
- package/src/modules/chat/index.tsx +126 -4
- package/src/utils/gientechCommon/components/ReferenceListDrawer.tsx +542 -0
- package/src/utils/gientechCommon/components/hooks/useAichatEvent.ts +10 -0
- package/src/utils/gientechCommon/components/referenceCom/DeleteModal.tsx +75 -0
- package/src/utils/gientechCommon/components/referenceCom/DrawerContent.tsx +136 -0
- package/src/utils/gientechCommon/components/referenceCom/DrawerDatabase.tsx +110 -0
- package/src/utils/gientechCommon/components/referenceCom/DrawerGraphPreview.tsx +86 -0
- package/src/utils/gientechCommon/components/referenceCom/DrawerPreview.tsx +73 -0
- package/src/utils/gientechCommon/components/referenceCom/DrawerTitle.tsx +26 -0
- package/src/utils/gientechCommon/components/referenceCom/RenameModal.tsx +86 -0
- package/src/utils/gientechCommon/components/referenceCom/TagCom.tsx +30 -0
- package/src/utils/gientechCommon/components/style.css +3 -0
- package/src/utils/gientechCommon/components/utils/index.ts +326 -0
- package/src/utils/testconfigs/index.ts +1 -1
- package/stats.html +1 -1
- package/dist/assets/AppLoading-mci3gLZt.js +0 -414
- package/dist/assets/index-Bb8_WB-l.js +0 -1
- package/dist/assets/index-BpJ9Bm5x.js +0 -21
- package/dist/assets/index-CNxDI4h-.js +0 -1078
- package/dist/assets/index-CWzpBU29.js +0 -1
- package/dist/assets/index-D1m34Ij7.js +0 -1429
- package/dist/assets/index-_gBtdXQV.js +0 -585
- package/dist/assets/style4.css +0 -1
|
@@ -9,7 +9,7 @@ import '@mxmweb/rtext/style.css';
|
|
|
9
9
|
import '@mxmweb/aichat/style.css';
|
|
10
10
|
import '@mxmweb/zui/style.css';
|
|
11
11
|
import { defaultTheme, deepMergeTheme, type Styles } from '@mxmweb/zui';
|
|
12
|
-
|
|
12
|
+
import ReferenceBar from './ReferenceBar';
|
|
13
13
|
import { DefaultSenderConfig } from './constants';
|
|
14
14
|
import GientechConversationPanel from './Conversations';
|
|
15
15
|
import {
|
|
@@ -38,6 +38,12 @@ import DisplayError from '../../utils/gientechCommon/components/DisplayError';
|
|
|
38
38
|
import { maxPollCount, maxPollInterval } from '../../utils/gientechCommon/configs/commonConfig';
|
|
39
39
|
import { RenameModal } from '../../utils/gientechCommon/components/RenameModal';
|
|
40
40
|
import { DeleteModal } from '../../utils/gientechCommon/components/DeleteModal';
|
|
41
|
+
import useAichatEvent from '../../utils/gientechCommon/components/hooks/useAichatEvent';
|
|
42
|
+
import { ReferenceListDrawer } from '../../utils/gientechCommon/components/ReferenceListDrawer';
|
|
43
|
+
|
|
44
|
+
export enum DrawerType {
|
|
45
|
+
REFERENCELIST = 'referencelist',
|
|
46
|
+
}
|
|
41
47
|
|
|
42
48
|
interface SenderConfig {
|
|
43
49
|
actions?: Array<{
|
|
@@ -112,6 +118,11 @@ export default function withGientechChatAdopter(WrappedComponent = AiChat) {
|
|
|
112
118
|
scrollOld,
|
|
113
119
|
...rest
|
|
114
120
|
}: GientechChatAdopterProps) {
|
|
121
|
+
const [drawerConfig, setDrawerConfig] = useState<{ type: string; data?: any }>({
|
|
122
|
+
type: 'string',
|
|
123
|
+
});
|
|
124
|
+
const [open, setOpen] = useState(false);
|
|
125
|
+
const {} = useAichatEvent();
|
|
115
126
|
// 统一归一化样式:使用 UI 库的 deepMergeTheme
|
|
116
127
|
const normalizedStyles: Styles = useMemo(() => {
|
|
117
128
|
const baseStyles: Styles = { theme: defaultTheme, mode: 'light' };
|
|
@@ -450,7 +461,7 @@ export default function withGientechChatAdopter(WrappedComponent = AiChat) {
|
|
|
450
461
|
.catch(() => {
|
|
451
462
|
setAppStatus(prev => ({ ...prev, app: 'error' }));
|
|
452
463
|
});
|
|
453
|
-
}, [
|
|
464
|
+
}, []);
|
|
454
465
|
|
|
455
466
|
/**
|
|
456
467
|
* 当 activeSessionId 变化时,获取对应的聊天记录
|
|
@@ -464,6 +475,78 @@ export default function withGientechChatAdopter(WrappedComponent = AiChat) {
|
|
|
464
475
|
headers: { Authorization: token },
|
|
465
476
|
})
|
|
466
477
|
.then(res => {
|
|
478
|
+
// const r = {
|
|
479
|
+
// data: {
|
|
480
|
+
// success: true,
|
|
481
|
+
// errorMsg: null,
|
|
482
|
+
// errorCode: null,
|
|
483
|
+
// data: {
|
|
484
|
+
// label: '控制器起不来(控制器右上角RDY灯不亮)',
|
|
485
|
+
// sessionId: '3d752532b3d4510867288e5ac5cb3833',
|
|
486
|
+
// gmtCreate: '2025-11-06 14:30:43',
|
|
487
|
+
// gmtModified: '2025-11-06 14:30:43',
|
|
488
|
+
// createBy: 'admin',
|
|
489
|
+
// updateBy: 'admin',
|
|
490
|
+
// filePath: 'http://10.160.33.221:9000',
|
|
491
|
+
// configId: 703,
|
|
492
|
+
// kbId: null,
|
|
493
|
+
// queryReplyPairList: [
|
|
494
|
+
// {
|
|
495
|
+
// query: {
|
|
496
|
+
// id: 27665,
|
|
497
|
+
// gmtCreate: '2025-11-06T06:31:05.000+00:00',
|
|
498
|
+
// content: '控制器起不来(控制器右上角RDY灯不亮)',
|
|
499
|
+
// type: 'text',
|
|
500
|
+
// queryId: 'query-2532b3d4510867288e5ac5cb38338870',
|
|
501
|
+
// audioUrl: '',
|
|
502
|
+
// filePaths: null,
|
|
503
|
+
// currentFiles: null,
|
|
504
|
+
// },
|
|
505
|
+
// reply: {
|
|
506
|
+
// id: 27638,
|
|
507
|
+
// gmtCreate: '2025-11-06T06:31:15.000+00:00',
|
|
508
|
+
// content:
|
|
509
|
+
// '<think>\n好的,我现在需要回答用户的问题:“控制器起不来(控制器右上角RDY灯不亮)”。首先,我要查看提供的参考资料,看看是否有相关信息。\n\n参考资料0提到了现象“控制器起不来(控制器右上角RDY灯不亮)”,并关联到“包含”和“产生”关系,但没有提供处理方法。参考资料1和2都详细描述了这个现象,并且都给出了处理方法:检查NT255模块是否报红,更换模块,并特别提到机舱检查FS211/N模块。这些处理方法的ID都是10001,说明是同一个解决方案。\n\n用户的问题没有指定版本,根据规则2,我应该使用最新的版本信息。不过,参考资料中没有明确的版本日期,所以只能假设它们都是最新的。因此,我应该综合所有参考资料的信息,提供处理方法。\n\n最后,我需要按照要求,用简洁的语言回答,并标注来源。由于处理方法在参考资料1和2中都有,我会引用这两个来源。\n\n\n</think>\n\n控制器起不来(控制器右上角RDY灯不亮)的处理方法如下:\n\n1. 检查NT255模块是否报红(ERR灯是否亮红)[retrive-tag id="2290607639633892359" image_urls="" fromType="2"][1][/retrive-tag][retrive-tag id="439368868506707299" image_urls="" fromType="2"][2][/retrive-tag]。\n2. 更换NT255模块(注:机舱检查FS211/N模块)[retrive-tag id="2290607639633892359" image_urls="" fromType="2"][1][/retrive-tag][retrive-tag id="439368868506707299" image_urls="" fromType="2"][2][/retrive-tag]。\n\n这些步骤可以帮助解决控制器无法启动的问题。',
|
|
510
|
+
// type: 'text',
|
|
511
|
+
// reference: '[]',
|
|
512
|
+
// webReference: '[]',
|
|
513
|
+
// graphReference:
|
|
514
|
+
// '[{"cyphers":["match (n:`组件`)-[e]-(m) where id(n) == \\"组件101\\" return n,e,m;","match (n:`现象`)-[e]-(m) where id(n) == \\"现象1001\\" return n,e,m;","match (n:`现象`)-[e]-(m) where id(n) == \\"现象1001\\" return n,e,m;"],"fetchUrl":"https://10.160.33.150:30001/jinxin_graph/proxy/search/graph/search/cypherSearch4Rag","graphName":"故障处理图谱","id":"1952195957278367755","traceNodes":[{"graphId":"1952195957278367755","id":"3484145002858895870","name":"控制器","nodeType":"组件","vid":"组件101"},{"graphId":"1952195957278367755","id":"2290607639633892359","name":"控制器起不来(控制器右上角RDY灯不亮)","nodeType":"现象","vid":"现象1001"},{"graphId":"1952195957278367755","id":"439368868506707299","name":"控制器起不来(控制器右上角RDY灯不亮)","nodeType":"现象","vid":"现象1001"}]}]',
|
|
515
|
+
// queryId: 'query-2532b3d4510867288e5ac5cb38338870',
|
|
516
|
+
// feedbackResult: null,
|
|
517
|
+
// feedbackId: null,
|
|
518
|
+
// parsedFilePaths: null,
|
|
519
|
+
// recommendQuestion:
|
|
520
|
+
// '["在检查NT255模块时,ERR灯亮红可能表示哪些具体问题?","更换NT255模块时需要注意哪些步骤或注意事项?","除了检查和更换NT255模块,还有哪些方法可以排查控制器无法启动的问题?"]',
|
|
521
|
+
// llmType: 1,
|
|
522
|
+
// resultType: 1,
|
|
523
|
+
// respTime: 32453,
|
|
524
|
+
// tokens: 824,
|
|
525
|
+
// },
|
|
526
|
+
// },
|
|
527
|
+
// ],
|
|
528
|
+
// searchConfigDTO: {
|
|
529
|
+
// id: 703,
|
|
530
|
+
// status: 1,
|
|
531
|
+
// isDefault: 0,
|
|
532
|
+
// configJson:
|
|
533
|
+
// '{"status":1,"defaultAnswer":"您好!我注意到您的消息中可能包含了一些敏感的内容。为了保证社区的友好氛围,我们无法继续就此话题进行讨论。如果您有其他问题或需要帮助,我很乐意继续为您服务!谢谢您的理解和支持。","dependOnKb":1,"isDel":1,"config_name":"图谱测试","model_name":"deepseek-distill-qwen32b","plan_model_name":"deepseek-distill-qwen32b","prologue":"你好","system_prompt":"","recommend_model_name":"deepseek-distill-qwen32b","temperature":0.3,"top_p":0.8,"top_k":10,"score_threshold":0.1,"max_tokens":4096,"max_round":5,"rerank_model_name":"bge-reranker-v2-m3_xinference","knowledge_base_name_source":"","graph_nb_name":[{"graph_name":"故障处理图谱","index_name":"1952195957278367755"}],"thinking":false,"knowledge_base_name":"","selectedKnowledgeBase":[],"enabled_graph":false,"enabled_nb_graph":true,"need_trace_source":true,"trace_by_llm":true,"is_download":false,"search_policy":1,"enabled_question_rewrite":false,"enabled_faq":true,"enabled_rerank":true,"rerank":false}',
|
|
534
|
+
// name: '图谱测试',
|
|
535
|
+
// des: null,
|
|
536
|
+
// createBy: 'admin',
|
|
537
|
+
// gmtCreate: '2025-11-05 19:37:54',
|
|
538
|
+
// permission: null,
|
|
539
|
+
// sensitiveWordIds: '',
|
|
540
|
+
// defaultAnswer:
|
|
541
|
+
// '您好!我注意到您的消息中可能包含了一些敏感的内容。为了保证社区的友好氛围,我们无法继续就此话题进行讨论。如果您有其他问题或需要帮助,我很乐意继续为您服务!谢谢您的理解和支持。',
|
|
542
|
+
// model: false,
|
|
543
|
+
// enabledFaq: 0,
|
|
544
|
+
// dependOnKb: 1,
|
|
545
|
+
// isDel: 1,
|
|
546
|
+
// },
|
|
547
|
+
// },
|
|
548
|
+
// },
|
|
549
|
+
// };
|
|
467
550
|
// 如果会话没有数据(例如新建的),直接返回
|
|
468
551
|
|
|
469
552
|
if (!res.data.data) {
|
|
@@ -1592,6 +1675,33 @@ export default function withGientechChatAdopter(WrappedComponent = AiChat) {
|
|
|
1592
1675
|
// 处理文件下载事件,透传给父组件
|
|
1593
1676
|
eventsEmit?.('referenceFile_download', data);
|
|
1594
1677
|
break;
|
|
1678
|
+
case 'references:click': {
|
|
1679
|
+
setDrawerConfig({
|
|
1680
|
+
type: DrawerType.REFERENCELIST,
|
|
1681
|
+
data,
|
|
1682
|
+
});
|
|
1683
|
+
setOpen(true);
|
|
1684
|
+
// 使用 AiChat 内置的右侧栏事件
|
|
1685
|
+
const Content = () => {
|
|
1686
|
+
const safe = (() => {
|
|
1687
|
+
try {
|
|
1688
|
+
return typeof data === 'string' ? data : JSON.stringify(data, null, 2);
|
|
1689
|
+
} catch (e) {
|
|
1690
|
+
return String(data);
|
|
1691
|
+
}
|
|
1692
|
+
})();
|
|
1693
|
+
return <ReferenceBar data={data} />;
|
|
1694
|
+
};
|
|
1695
|
+
const setContentEvent = new CustomEvent('aichat:right_set_content', {
|
|
1696
|
+
detail: { content: <Content /> },
|
|
1697
|
+
});
|
|
1698
|
+
window.dispatchEvent(setContentEvent);
|
|
1699
|
+
const openEvent = new CustomEvent('aichat:right_set', {
|
|
1700
|
+
detail: { collapsed: false },
|
|
1701
|
+
});
|
|
1702
|
+
window.dispatchEvent(openEvent);
|
|
1703
|
+
break;
|
|
1704
|
+
}
|
|
1595
1705
|
case 'retrive_tag:click':
|
|
1596
1706
|
// 处理 retrive-tag 点击事件,透传给父组件
|
|
1597
1707
|
eventsEmit?.('retrive_tag:click', data);
|
|
@@ -1813,6 +1923,7 @@ export default function withGientechChatAdopter(WrappedComponent = AiChat) {
|
|
|
1813
1923
|
<ChatMessageAdapter
|
|
1814
1924
|
key={`${msg?.queryId || msg?.id || idx}-${msg?.istype || 'unknown'}`}
|
|
1815
1925
|
{...msg}
|
|
1926
|
+
referenceMode="button"
|
|
1816
1927
|
reference={safeReference}
|
|
1817
1928
|
webReference={safeWebReference}
|
|
1818
1929
|
graphReference={safeGraphReference}
|
|
@@ -1855,6 +1966,7 @@ export default function withGientechChatAdopter(WrappedComponent = AiChat) {
|
|
|
1855
1966
|
<ChatMessageAdapter
|
|
1856
1967
|
key={`${msg?.queryId || msg?.id || idx}-user`}
|
|
1857
1968
|
{...msg}
|
|
1969
|
+
referenceMode="button"
|
|
1858
1970
|
contentType="plainText"
|
|
1859
1971
|
isUser={true}
|
|
1860
1972
|
displayStatus="ready"
|
|
@@ -1902,7 +2014,7 @@ export default function withGientechChatAdopter(WrappedComponent = AiChat) {
|
|
|
1902
2014
|
// Render - 渲染
|
|
1903
2015
|
// =================================================================
|
|
1904
2016
|
return (
|
|
1905
|
-
|
|
2017
|
+
<div style={{ height: '100%', minWidth: '1116px', overflow: 'hidden' }}>
|
|
1906
2018
|
<FileManager
|
|
1907
2019
|
open={fileManagerOpen}
|
|
1908
2020
|
onCancel={() => setFileManagerOpen(false)}
|
|
@@ -1914,6 +2026,8 @@ export default function withGientechChatAdopter(WrappedComponent = AiChat) {
|
|
|
1914
2026
|
eventsEmit={mergedEventsEmit}
|
|
1915
2027
|
/>
|
|
1916
2028
|
|
|
2029
|
+
{/* 右侧栏由 AiChat 内置事件控制,此处不再使用 antd Drawer */}
|
|
2030
|
+
|
|
1917
2031
|
<WrappedComponent
|
|
1918
2032
|
{...rest}
|
|
1919
2033
|
status={appStatus}
|
|
@@ -1946,7 +2060,15 @@ export default function withGientechChatAdopter(WrappedComponent = AiChat) {
|
|
|
1946
2060
|
handleCancel={() => handleEvent('close_remove')}
|
|
1947
2061
|
data={curEditData?.data || {}}
|
|
1948
2062
|
/>
|
|
1949
|
-
|
|
2063
|
+
<ReferenceListDrawer
|
|
2064
|
+
open={open}
|
|
2065
|
+
setOpen={setOpen}
|
|
2066
|
+
type={drawerConfig.type}
|
|
2067
|
+
data={drawerConfig.data}
|
|
2068
|
+
token={token}
|
|
2069
|
+
eventsEmit={eventsEmit}
|
|
2070
|
+
/>
|
|
2071
|
+
</div>
|
|
1950
2072
|
);
|
|
1951
2073
|
};
|
|
1952
2074
|
}
|