@ai-group/chat-sdk 0.2.7 → 0.2.9
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/README.md +93 -214
- package/dist/cjs/components/XAiChatbot/index.js +4 -3
- package/dist/cjs/components/XAiChatbot/index.js.map +2 -2
- package/dist/cjs/components/XAiChatbot/styles.d.ts +2 -0
- package/dist/cjs/components/XAiChatbot/styles.js +31 -1
- package/dist/cjs/components/XAiChatbot/styles.js.map +2 -2
- package/dist/cjs/components/XAiConversations/XAiConversations.stories.d.ts +6 -0
- package/dist/cjs/components/XAiConversations/XAiConversations.stories.js +82 -0
- package/dist/cjs/components/XAiConversations/XAiConversations.stories.js.map +7 -0
- package/dist/cjs/components/XAiConversations/index.d.ts +4 -0
- package/dist/cjs/components/XAiConversations/index.js +59 -0
- package/dist/cjs/components/XAiConversations/index.js.map +7 -0
- package/dist/cjs/components/XAiProvider/XAiProvider.stories.d.ts +2 -2
- package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +12 -12
- package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +2 -2
- package/dist/cjs/components/XAiProvider/demo.styles.d.ts +35 -0
- package/dist/cjs/components/XAiProvider/demo.styles.js +37 -0
- package/dist/cjs/components/XAiProvider/demo.styles.js.map +7 -0
- package/dist/cjs/components/XAiProvider/index.js +8 -3
- package/dist/cjs/components/XAiProvider/index.js.map +3 -3
- package/dist/cjs/components/XAiWebSDKWrapper.js +7 -1
- package/dist/cjs/components/XAiWebSDKWrapper.js.map +2 -2
- package/dist/cjs/hooks/useAgentGenerator.d.ts +10 -2
- package/dist/cjs/hooks/useAgentGenerator.js +132 -7
- package/dist/cjs/hooks/useAgentGenerator.js.map +2 -2
- package/dist/cjs/services/api.d.ts +65 -3
- package/dist/cjs/services/api.js +33 -0
- package/dist/cjs/services/api.js.map +2 -2
- package/dist/cjs/types/XAiChatbot.d.ts +2 -0
- package/dist/cjs/types/XAiChatbot.js.map +1 -1
- package/dist/cjs/types/XAiConversations.d.ts +4 -0
- package/dist/cjs/types/XAiConversations.js +18 -0
- package/dist/cjs/types/XAiConversations.js.map +7 -0
- package/dist/cjs/types/XAiProvider.d.ts +14 -0
- package/dist/cjs/types/XAiProvider.js +9 -0
- package/dist/cjs/types/XAiProvider.js.map +3 -3
- package/dist/cjs/types/index.d.ts +1 -0
- package/dist/cjs/types/index.js +3 -1
- package/dist/cjs/types/index.js.map +2 -2
- package/dist/cjs/utils/umdEntry.d.ts +4 -1
- package/dist/cjs/utils/umdEntry.js +14 -12
- package/dist/cjs/utils/umdEntry.js.map +2 -2
- package/dist/esm/components/XAiChatbot/index.js +11 -8
- package/dist/esm/components/XAiChatbot/index.js.map +1 -1
- package/dist/esm/components/XAiChatbot/styles.d.ts +2 -0
- package/dist/esm/components/XAiChatbot/styles.js +38 -38
- package/dist/esm/components/XAiChatbot/styles.js.map +1 -1
- package/dist/esm/components/XAiConversations/XAiConversations.stories.d.ts +6 -0
- package/dist/esm/components/XAiConversations/XAiConversations.stories.js +42 -0
- package/dist/esm/components/XAiConversations/XAiConversations.stories.js.map +1 -0
- package/dist/esm/components/XAiConversations/index.d.ts +4 -0
- package/dist/esm/components/XAiConversations/index.js +27 -0
- package/dist/esm/components/XAiConversations/index.js.map +1 -0
- package/dist/esm/components/XAiProvider/XAiProvider.stories.d.ts +2 -2
- package/dist/esm/components/XAiProvider/XAiProvider.stories.js +38 -180
- package/dist/esm/components/XAiProvider/XAiProvider.stories.js.map +1 -1
- package/dist/esm/components/XAiProvider/demo.styles.d.ts +35 -0
- package/dist/esm/components/XAiProvider/demo.styles.js +12 -0
- package/dist/esm/components/XAiProvider/demo.styles.js.map +1 -0
- package/dist/esm/components/XAiProvider/index.js +17 -3
- package/dist/esm/components/XAiProvider/index.js.map +1 -1
- package/dist/esm/components/XAiWebSDKWrapper.js +4 -1
- package/dist/esm/components/XAiWebSDKWrapper.js.map +1 -1
- package/dist/esm/hooks/useAgentGenerator.d.ts +10 -2
- package/dist/esm/hooks/useAgentGenerator.js +215 -30
- package/dist/esm/hooks/useAgentGenerator.js.map +1 -1
- package/dist/esm/services/api.d.ts +65 -3
- package/dist/esm/services/api.js +75 -0
- package/dist/esm/services/api.js.map +1 -1
- package/dist/esm/types/XAiChatbot.d.ts +2 -0
- package/dist/esm/types/XAiChatbot.js.map +1 -1
- package/dist/esm/types/XAiConversations.d.ts +4 -0
- package/dist/esm/types/XAiConversations.js +2 -0
- package/dist/esm/types/XAiConversations.js.map +1 -0
- package/dist/esm/types/XAiProvider.d.ts +14 -0
- package/dist/esm/types/XAiProvider.js +7 -0
- package/dist/esm/types/XAiProvider.js.map +1 -1
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/index.js +1 -0
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/utils/umdEntry.d.ts +4 -1
- package/dist/esm/utils/umdEntry.js +22 -18
- package/dist/esm/utils/umdEntry.js.map +1 -1
- package/dist/umd/chat-sdk.min.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","message","Divider","copy","XProvider","XAiContext","useAgentGenerator","userIcon","jsxs","_jsxs","jsx","_jsx","XAiProvider","_ref","url","token","config","_ref$providerId","providerId","children","_useAgentGenerator","appInfo","chat","stopChat","reChat","messages","loading","setMessages","_ref2","appName","icon","handleSendMessage","_type","content","handleClearMessage","handleActions","index","actionData","_ref3","id","_content$text","text","success","prev","filter","item","handleSuggestMessageClick","_item","m","ToolTip","messageData","finalResult","think","find","actionName","_ref4","extra","cost","tokenCount","style","display","alignItems","fontSize","color","flex","paddingRight","undefined","type","Provider","value","avatar","userAvatar","emptyStateImage","emptyStateText","error","messageTooltip","onSend","onClear","onStop","onSuggestMessageClick","onMessagesActionsCallback","isInProvider"],"sources":["../../../../src/components/XAiProvider/index.tsx"],"sourcesContent":["import React from 'react';\nimport { message, Divider } from 'antd';\nimport copy from 'copy-to-clipboard';\nimport { XProvider } from '@ant-design/x';\nimport { XAiContext } from '@/context/AiProviderContext';\nimport { XAiProviderProps } from '@/types/XAiProvider';\nimport useAgentGenerator from '@/hooks/useAgentGenerator';\nimport userIcon from '@/assets/user.png';\n\nconst XAiProvider: React.FC<XAiProviderProps> = ({\n url,\n token,\n config,\n providerId = 'defaultId',\n children,\n}: XAiProviderProps) => {\n // 使用 useAgentGenerator Hook 管理消息状态\n const { appInfo, chat, stopChat, reChat, messages, loading, setMessages } = useAgentGenerator({ url, token, config });\n\n const { appName, icon } = appInfo || {};\n\n // 发送消息\n const handleSendMessage = (_type: string, content: string) => {\n chat(content);\n };\n\n // 清空消息\n const handleClearMessage = () => {\n stopChat();\n setMessages([]);\n };\n\n // 工具栏按钮点击\n const handleActions = (index: number, actionData: any) => {\n const { content, id } = actionData || {};\n const { text = '' } = content;\n switch (index) {\n case 0:\n reChat();\n break;\n case 1:\n copy(text);\n message.success('复制成功');\n break;\n case 2:\n setMessages((prev: any[]) => prev.filter((item: any) => item.id !== id));\n message.success('删除成功');\n break;\n }\n };\n\n // 建议消息点击\n const handleSuggestMessageClick = (_item: any, id: string) => {\n setMessages((prev: any[]) => prev.filter((m: any) => m.id !== id));\n };\n\n const ToolTip = (messageData: any) => {\n const finalResult = (messageData?.think || []).find((item: any) => item.actionName === 'FINISHED');\n if (!finalResult) return null;\n const { cost, token: tokenCount } = finalResult.extra || {};\n if (!cost && !token) return null;\n return (\n <div style={{ display: 'flex', alignItems: 'center', fontSize: '12px', color: '#949494', flex: 1, paddingRight: '40px' }}>\n { (cost !== undefined && cost !== null) && <div>{cost}s</div> }\n { tokenCount && <Divider type=\"vertical\" /> }\n { tokenCount && <div>{ tokenCount } tokens</div> }\n </div>\n );\n };\n\n return (\n <XProvider>\n <XAiContext.Provider value={{\n avatar: icon
|
|
1
|
+
{"version":3,"names":["React","message","Divider","v4","uuidV4","copy","XProvider","XAiContext","useAgentGenerator","userIcon","jsxs","_jsxs","jsx","_jsx","XAiProvider","_ref","url","token","config","_ref$providerId","providerId","onSuccess","onError","children","_useAgentGenerator","appInfo","chat","stopChat","reChat","messages","loading","setCurrentSession","setMessages","_ref2","appName","icon","handleSendMessage","_type","content","handleClearMessage","handleActions","index","actionData","_ref3","id","_content$text","text","success","prev","filter","item","handleSuggestMessageClick","_item","m","ToolTip","messageData","finalResult","think","find","actionName","_ref4","extra","cost","tokenCount","style","display","alignItems","fontSize","color","flex","paddingRight","undefined","type","Provider","value","avatar","src","alt","userAvatar","emptyStateImage","emptyStateText","footerTips","error","messageTooltip","onSend","onClear","onStop","onSuggestMessageClick","onMessagesActionsCallback","isInProvider"],"sources":["../../../../src/components/XAiProvider/index.tsx"],"sourcesContent":["import React from 'react';\nimport { message, Divider } from 'antd';\nimport { v4 as uuidV4 } from 'uuid';\nimport copy from 'copy-to-clipboard';\nimport { XProvider } from '@ant-design/x';\nimport { XAiContext } from '@/context/AiProviderContext';\nimport { XAiProviderProps } from '@/types/XAiProvider';\nimport useAgentGenerator from '@/hooks/useAgentGenerator';\nimport userIcon from '@/assets/user.png';\n\nconst XAiProvider: React.FC<XAiProviderProps> = ({\n url,\n token,\n config,\n providerId = 'defaultId',\n onSuccess,\n onError,\n children,\n}: XAiProviderProps) => {\n // 使用 useAgentGenerator Hook 管理消息状态\n const { appInfo, chat, stopChat, reChat, messages, loading, setCurrentSession, setMessages } = useAgentGenerator({ url, token, config, onError, onSuccess });\n\n const { appName, icon } = appInfo || {};\n\n // 发送消息\n const handleSendMessage = (_type: string, content: string) => {\n chat(content);\n };\n\n // 清空消息\n const handleClearMessage = () => {\n stopChat();\n setMessages([]);\n setCurrentSession(uuidV4());\n };\n\n // 工具栏按钮点击\n const handleActions = (index: number, actionData: any) => {\n const { content, id } = actionData || {};\n const { text = '' } = content;\n switch (index) {\n case 0:\n reChat();\n break;\n case 1:\n copy(text);\n message.success('复制成功');\n break;\n case 2:\n setMessages((prev: any[]) => prev.filter((item: any) => item.id !== id));\n message.success('删除成功');\n break;\n }\n };\n\n // 建议消息点击\n const handleSuggestMessageClick = (_item: any, id: string) => {\n setMessages((prev: any[]) => prev.filter((m: any) => m.id !== id));\n };\n\n const ToolTip = (messageData: any) => {\n const finalResult = (messageData?.think || []).find((item: any) => item.actionName === 'FINISHED');\n if (!finalResult) return null;\n const { cost, token: tokenCount } = finalResult.extra || {};\n if (!cost && !token) return null;\n return (\n <div style={{ display: 'flex', alignItems: 'center', fontSize: '12px', color: '#949494', flex: 1, paddingRight: '40px' }}>\n { (cost !== undefined && cost !== null) && <div>{cost}s</div> }\n { tokenCount && <Divider type=\"vertical\" /> }\n { tokenCount && <div>{ tokenCount } tokens</div> }\n </div>\n );\n };\n\n return (\n <XProvider>\n <XAiContext.Provider value={{\n avatar: <img src={icon} alt=\"智能体头像\" />,\n userAvatar: <img src={userIcon} alt=\"用户头像\" />,\n emptyStateImage: icon,\n emptyStateText: appName,\n footerTips: '内容由AI生成,无法确保真实准确,仅供参考',\n providerId,\n token,\n messages,\n loading,\n error: null,\n messageTooltip: ToolTip,\n onSend: handleSendMessage,\n onClear: handleClearMessage,\n onStop: stopChat,\n onSuggestMessageClick: handleSuggestMessageClick,\n onMessagesActionsCallback: handleActions,\n isInProvider: true,\n }}\n >\n {children}\n </XAiContext.Provider>\n </XProvider>\n );\n};\n\nexport default XAiProvider;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,OAAO,EAAEC,OAAO,QAAQ,MAAM;AACvC,SAASC,EAAE,IAAIC,MAAM,QAAQ,MAAM;AACnC,OAAOC,IAAI,MAAM,mBAAmB;AACpC,SAASC,SAAS,QAAQ,eAAe;AACzC,SAASC,UAAU;AAEnB,OAAOC,iBAAiB;AACxB,OAAOC,QAAQ;AAA0B,SAAAC,IAAA,IAAAC,KAAA;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAEzC,IAAMC,WAAuC,GAAG,SAA1CA,WAAuCA,CAAAC,IAAA,EAQrB;EAAA,IAPtBC,GAAG,GAAAD,IAAA,CAAHC,GAAG;IACHC,KAAK,GAAAF,IAAA,CAALE,KAAK;IACLC,MAAM,GAAAH,IAAA,CAANG,MAAM;IAAAC,eAAA,GAAAJ,IAAA,CACNK,UAAU;IAAVA,UAAU,GAAAD,eAAA,cAAG,WAAW,GAAAA,eAAA;IACxBE,SAAS,GAAAN,IAAA,CAATM,SAAS;IACTC,OAAO,GAAAP,IAAA,CAAPO,OAAO;IACPC,QAAQ,GAAAR,IAAA,CAARQ,QAAQ;EAER;EACA,IAAAC,kBAAA,GAA+FhB,iBAAiB,CAAC;MAAEQ,GAAG,EAAHA,GAAG;MAAEC,KAAK,EAALA,KAAK;MAAEC,MAAM,EAANA,MAAM;MAAEI,OAAO,EAAPA,OAAO;MAAED,SAAS,EAATA;IAAU,CAAC,CAAC;IAApJI,OAAO,GAAAD,kBAAA,CAAPC,OAAO;IAAEC,IAAI,GAAAF,kBAAA,CAAJE,IAAI;IAAEC,QAAQ,GAAAH,kBAAA,CAARG,QAAQ;IAAEC,MAAM,GAAAJ,kBAAA,CAANI,MAAM;IAAEC,QAAQ,GAAAL,kBAAA,CAARK,QAAQ;IAAEC,OAAO,GAAAN,kBAAA,CAAPM,OAAO;IAAEC,iBAAiB,GAAAP,kBAAA,CAAjBO,iBAAiB;IAAEC,WAAW,GAAAR,kBAAA,CAAXQ,WAAW;EAE1F,IAAAC,KAAA,GAA0BR,OAAO,IAAI,CAAC,CAAC;IAA/BS,OAAO,GAAAD,KAAA,CAAPC,OAAO;IAAEC,IAAI,GAAAF,KAAA,CAAJE,IAAI;;EAErB;EACA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,KAAa,EAAEC,OAAe,EAAK;IAC5DZ,IAAI,CAACY,OAAO,CAAC;EACf,CAAC;;EAED;EACA,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAA,EAAS;IAC/BZ,QAAQ,CAAC,CAAC;IACVK,WAAW,CAAC,EAAE,CAAC;IACfD,iBAAiB,CAAC3B,MAAM,CAAC,CAAC,CAAC;EAC7B,CAAC;;EAED;EACA,IAAMoC,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,KAAa,EAAEC,UAAe,EAAK;IACxD,IAAAC,KAAA,GAAwBD,UAAU,IAAI,CAAC,CAAC;MAAhCJ,OAAO,GAAAK,KAAA,CAAPL,OAAO;MAAEM,EAAE,GAAAD,KAAA,CAAFC,EAAE;IACnB,IAAAC,aAAA,GAAsBP,OAAO,CAArBQ,IAAI;MAAJA,IAAI,GAAAD,aAAA,cAAG,EAAE,GAAAA,aAAA;IACjB,QAAQJ,KAAK;MACX,KAAK,CAAC;QACJb,MAAM,CAAC,CAAC;QACR;MACF,KAAK,CAAC;QACJvB,IAAI,CAACyC,IAAI,CAAC;QACV7C,OAAO,CAAC8C,OAAO,CAAC,MAAM,CAAC;QACvB;MACF,KAAK,CAAC;QACJf,WAAW,CAAC,UAACgB,IAAW;UAAA,OAAKA,IAAI,CAACC,MAAM,CAAC,UAACC,IAAS;YAAA,OAAKA,IAAI,CAACN,EAAE,KAAKA,EAAE;UAAA,EAAC;QAAA,EAAC;QACxE3C,OAAO,CAAC8C,OAAO,CAAC,MAAM,CAAC;QACvB;IACJ;EACF,CAAC;;EAED;EACA,IAAMI,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAIC,KAAU,EAAER,EAAU,EAAK;IAC5DZ,WAAW,CAAC,UAACgB,IAAW;MAAA,OAAKA,IAAI,CAACC,MAAM,CAAC,UAACI,CAAM;QAAA,OAAKA,CAAC,CAACT,EAAE,KAAKA,EAAE;MAAA,EAAC;IAAA,EAAC;EACpE,CAAC;EAED,IAAMU,OAAO,GAAG,SAAVA,OAAOA,CAAIC,WAAgB,EAAK;IACpC,IAAMC,WAAW,GAAG,CAAC,CAAAD,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEE,KAAK,KAAI,EAAE,EAAEC,IAAI,CAAC,UAACR,IAAS;MAAA,OAAKA,IAAI,CAACS,UAAU,KAAK,UAAU;IAAA,EAAC;IAClG,IAAI,CAACH,WAAW,EAAE,OAAO,IAAI;IAC7B,IAAAI,KAAA,GAAoCJ,WAAW,CAACK,KAAK,IAAI,CAAC,CAAC;MAAnDC,IAAI,GAAAF,KAAA,CAAJE,IAAI;MAASC,UAAU,GAAAH,KAAA,CAAjB3C,KAAK;IACnB,IAAI,CAAC6C,IAAI,IAAI,CAAC7C,KAAK,EAAE,OAAO,IAAI;IAChC,oBACEN,KAAA;MAAKqD,KAAK,EAAE;QAAEC,OAAO,EAAE,MAAM;QAAEC,UAAU,EAAE,QAAQ;QAAEC,QAAQ,EAAE,MAAM;QAAEC,KAAK,EAAE,SAAS;QAAEC,IAAI,EAAE,CAAC;QAAEC,YAAY,EAAE;MAAO,CAAE;MAAA/C,QAAA,GACpHuC,IAAI,KAAKS,SAAS,IAAIT,IAAI,KAAK,IAAI,iBAAKnD,KAAA;QAAAY,QAAA,GAAMuC,IAAI,EAAC,GAAC;MAAA,CAAK,CAAC,EAC3DC,UAAU,iBAAIlD,IAAA,CAACX,OAAO;QAACsE,IAAI,EAAC;MAAU,CAAE,CAAC,EACzCT,UAAU,iBAAIpD,KAAA;QAAAY,QAAA,GAAOwC,UAAU,EAAE,SAAO;MAAA,CAAK,CAAC;IAAA,CAC7C,CAAC;EAEV,CAAC;EAED,oBACElD,IAAA,CAACP,SAAS;IAAAiB,QAAA,eACRV,IAAA,CAACN,UAAU,CAACkE,QAAQ;MAACC,KAAK,EAAE;QAC1BC,MAAM,eAAE9D,IAAA;UAAK+D,GAAG,EAAEzC,IAAK;UAAC0C,GAAG,EAAC;QAAO,CAAE,CAAC;QACtCC,UAAU,eAAEjE,IAAA;UAAK+D,GAAG,EAAEnE,QAAS;UAACoE,GAAG,EAAC;QAAM,CAAE,CAAC;QAC7CE,eAAe,EAAE5C,IAAI;QACrB6C,cAAc,EAAE9C,OAAO;QACvB+C,UAAU,EAAE,uBAAuB;QACnC7D,UAAU,EAAVA,UAAU;QACVH,KAAK,EAALA,KAAK;QACLY,QAAQ,EAARA,QAAQ;QACRC,OAAO,EAAPA,OAAO;QACPoD,KAAK,EAAE,IAAI;QACXC,cAAc,EAAE7B,OAAO;QACvB8B,MAAM,EAAEhD,iBAAiB;QACzBiD,OAAO,EAAE9C,kBAAkB;QAC3B+C,MAAM,EAAE3D,QAAQ;QAChB4D,qBAAqB,EAAEpC,yBAAyB;QAChDqC,yBAAyB,EAAEhD,aAAa;QACxCiD,YAAY,EAAE;MAChB,CAAE;MAAAlE,QAAA,EAECA;IAAQ,CACU;EAAC,CACb,CAAC;AAEhB,CAAC;AAED,eAAeT,WAAW"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
1
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
2
3
|
var _excluded = ["onInit", "onDestroy"];
|
|
3
4
|
import React, { useEffect, useRef } from 'react';
|
|
@@ -12,7 +13,9 @@ var XAiWebSDKWrapper = function XAiWebSDKWrapper(_ref) {
|
|
|
12
13
|
useEffect(function () {
|
|
13
14
|
if (containerRef.current && !sdkRef.current) {
|
|
14
15
|
// 创建 SDK 实例
|
|
15
|
-
sdkRef.current = XAiWebSDK.initChatbot(
|
|
16
|
+
sdkRef.current = XAiWebSDK.initChatbot(_objectSpread(_objectSpread({}, sdkProps), {}, {
|
|
17
|
+
componentProps: _objectSpread({}, sdkProps.componentProps || {})
|
|
18
|
+
}));
|
|
16
19
|
|
|
17
20
|
// 调用初始化回调
|
|
18
21
|
if (onInit && sdkRef.current) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useRef","XAiWebSDK","jsx","_jsx","XAiWebSDKWrapper","_ref","onInit","onDestroy","sdkProps","_objectWithoutProperties","_excluded","sdkRef","containerRef","current","initChatbot","unmount","ref"],"sources":["../../../src/components/XAiWebSDKWrapper.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport { XAiSDKProps } from '@/types/XAiProvider';\nimport XAiWebSDK from '@/utils/umdEntry';\n\nexport interface XAiWebSDKWrapperProps extends XAiSDKProps {\n onInit?: (sdk: XAiWebSDK) => void;\n onDestroy?: () => void;\n}\n\nconst XAiWebSDKWrapper: React.FC<XAiWebSDKWrapperProps> = ({\n onInit,\n onDestroy,\n ...sdkProps\n}) => {\n const sdkRef = useRef<XAiWebSDK | null>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (containerRef.current && !sdkRef.current) {\n // 创建 SDK 实例\n sdkRef.current = XAiWebSDK.initChatbot(
|
|
1
|
+
{"version":3,"names":["React","useEffect","useRef","XAiWebSDK","jsx","_jsx","XAiWebSDKWrapper","_ref","onInit","onDestroy","sdkProps","_objectWithoutProperties","_excluded","sdkRef","containerRef","current","initChatbot","_objectSpread","componentProps","unmount","ref"],"sources":["../../../src/components/XAiWebSDKWrapper.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport { XAiSDKProps } from '@/types/XAiProvider';\nimport XAiWebSDK from '@/utils/umdEntry';\n\nexport interface XAiWebSDKWrapperProps extends XAiSDKProps {\n onInit?: (sdk: XAiWebSDK) => void;\n onDestroy?: () => void;\n}\n\nconst XAiWebSDKWrapper: React.FC<XAiWebSDKWrapperProps> = ({\n onInit,\n onDestroy,\n ...sdkProps\n}) => {\n const sdkRef = useRef<XAiWebSDK | null>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (containerRef.current && !sdkRef.current) {\n // 创建 SDK 实例\n sdkRef.current = XAiWebSDK.initChatbot({\n ...sdkProps,\n componentProps: {\n ...(sdkProps.componentProps || {}),\n // 保证容器 id 唯一或传递其它样式\n },\n });\n\n // 调用初始化回调\n if (onInit && sdkRef.current) {\n onInit(sdkRef.current);\n }\n }\n\n // 清理函数\n return () => {\n if (sdkRef.current) {\n sdkRef.current.unmount();\n sdkRef.current = null;\n\n // 调用销毁回调\n if (onDestroy) {\n onDestroy();\n }\n }\n };\n }, []); // 只在组件挂载时初始化\n\n return <div ref={containerRef} />;\n};\n\nexport default XAiWebSDKWrapper;\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAEhD,OAAOC,SAAS;AAAyB,SAAAC,GAAA,IAAAC,IAAA;AAOzC,IAAMC,gBAAiD,GAAG,SAApDA,gBAAiDA,CAAAC,IAAA,EAIjD;EAAA,IAHJC,MAAM,GAAAD,IAAA,CAANC,MAAM;IACNC,SAAS,GAAAF,IAAA,CAATE,SAAS;IACNC,QAAQ,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,SAAA;EAEX,IAAMC,MAAM,GAAGX,MAAM,CAAmB,IAAI,CAAC;EAC7C,IAAMY,YAAY,GAAGZ,MAAM,CAAiB,IAAI,CAAC;EAEjDD,SAAS,CAAC,YAAM;IACd,IAAIa,YAAY,CAACC,OAAO,IAAI,CAACF,MAAM,CAACE,OAAO,EAAE;MAC3C;MACAF,MAAM,CAACE,OAAO,GAAGZ,SAAS,CAACa,WAAW,CAAAC,aAAA,CAAAA,aAAA,KACjCP,QAAQ;QACXQ,cAAc,EAAAD,aAAA,KACRP,QAAQ,CAACQ,cAAc,IAAI,CAAC,CAAC;MAElC,EACF,CAAC;;MAEF;MACA,IAAIV,MAAM,IAAIK,MAAM,CAACE,OAAO,EAAE;QAC5BP,MAAM,CAACK,MAAM,CAACE,OAAO,CAAC;MACxB;IACF;;IAEA;IACA,OAAO,YAAM;MACX,IAAIF,MAAM,CAACE,OAAO,EAAE;QAClBF,MAAM,CAACE,OAAO,CAACI,OAAO,CAAC,CAAC;QACxBN,MAAM,CAACE,OAAO,GAAG,IAAI;;QAErB;QACA,IAAIN,SAAS,EAAE;UACbA,SAAS,CAAC,CAAC;QACb;MACF;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;;EAER,oBAAOJ,IAAA;IAAKe,GAAG,EAAEN;EAAa,CAAE,CAAC;AACnC,CAAC;AAED,eAAeR,gBAAgB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { Messages } from "../types/XAiMessage";
|
|
3
|
+
import { Error } from "../types/XAiProvider";
|
|
3
4
|
export type ContentType = 'TEXT' | 'IMAGE' | 'FILE';
|
|
4
5
|
export interface ImageUrl {
|
|
5
6
|
url: string;
|
|
@@ -48,18 +49,25 @@ export interface Action {
|
|
|
48
49
|
description: string;
|
|
49
50
|
jsonSchema: string;
|
|
50
51
|
available?: ActionAvailability;
|
|
52
|
+
error?: Error;
|
|
51
53
|
}
|
|
52
|
-
|
|
54
|
+
export interface UseAgentGeneratorProps {
|
|
53
55
|
url: string;
|
|
54
56
|
token: string;
|
|
55
57
|
config: any;
|
|
56
|
-
|
|
58
|
+
onError?: (error: Error) => void;
|
|
59
|
+
onSuccess?: (appInfo: any) => void;
|
|
60
|
+
}
|
|
61
|
+
declare const useAgentGenerator: ({ url, token, config, onError, onSuccess, }: UseAgentGeneratorProps) => {
|
|
57
62
|
appInfo: any;
|
|
58
63
|
messages: Messages[];
|
|
59
64
|
loading: boolean;
|
|
60
65
|
content: any;
|
|
66
|
+
sessionsList: any[];
|
|
67
|
+
currentSession: string;
|
|
61
68
|
reChat: () => void;
|
|
62
69
|
chat: (content: any) => Promise<void>;
|
|
70
|
+
setCurrentSession: import("react").Dispatch<import("react").SetStateAction<string>>;
|
|
63
71
|
setMessage: (messageType: string, content: any) => Promise<void>;
|
|
64
72
|
setMessages: import("react").Dispatch<import("react").SetStateAction<Messages[]>>;
|
|
65
73
|
stopChat: () => void;
|
|
@@ -7,9 +7,10 @@ import { useState, useEffect, useRef } from 'react';
|
|
|
7
7
|
import { v4 as uuidV4 } from 'uuid';
|
|
8
8
|
import { useEventStreamRequest } from "./useEventStreamRequest";
|
|
9
9
|
import { MessageRole, MessageStatus } from "../types/XAiMessage";
|
|
10
|
+
import { ErrorCode } from "../types/XAiProvider";
|
|
10
11
|
import { request } from "../utils/request";
|
|
11
12
|
import { safeJsonParse } from "../utils";
|
|
12
|
-
import { fetchAppConfig } from "../services/api";
|
|
13
|
+
import { fetchAppConfig, fetchSessionList, fetchSessionDetail } from "../services/api";
|
|
13
14
|
// 图标
|
|
14
15
|
import documentIcon from "../assets/document.png";
|
|
15
16
|
import completedIcon from "../assets/completed.png";
|
|
@@ -56,16 +57,31 @@ export var ActionAvailability = /*#__PURE__*/function (ActionAvailability) {
|
|
|
56
57
|
var useAgentGenerator = function useAgentGenerator(_ref) {
|
|
57
58
|
var url = _ref.url,
|
|
58
59
|
token = _ref.token,
|
|
59
|
-
config = _ref.config
|
|
60
|
+
config = _ref.config,
|
|
61
|
+
onError = _ref.onError,
|
|
62
|
+
onSuccess = _ref.onSuccess;
|
|
60
63
|
var textSpeed = 60;
|
|
64
|
+
// 聊天记录
|
|
61
65
|
var _useState = useState([]),
|
|
62
66
|
_useState2 = _slicedToArray(_useState, 2),
|
|
63
67
|
messages = _useState2[0],
|
|
64
68
|
setMessages = _useState2[1];
|
|
65
|
-
|
|
69
|
+
// 会话记录
|
|
70
|
+
var _useState3 = useState([]),
|
|
66
71
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
67
|
-
|
|
68
|
-
|
|
72
|
+
sessionsList = _useState4[0],
|
|
73
|
+
setSessionList = _useState4[1];
|
|
74
|
+
// 当前会话
|
|
75
|
+
var _useState5 = useState(''),
|
|
76
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
77
|
+
currentSession = _useState6[0],
|
|
78
|
+
setCurrentSession = _useState6[1];
|
|
79
|
+
// 应用 配置
|
|
80
|
+
var _useState7 = useState(null),
|
|
81
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
82
|
+
appInfo = _useState8[0],
|
|
83
|
+
setAppInfo = _useState8[1];
|
|
84
|
+
// 请求 配置
|
|
69
85
|
var requestInfo = useRef({});
|
|
70
86
|
var _ref2 = config || {},
|
|
71
87
|
appNo = _ref2.appNo,
|
|
@@ -77,7 +93,7 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
|
|
|
77
93
|
if (url && config) {
|
|
78
94
|
var initConfig = /*#__PURE__*/function () {
|
|
79
95
|
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
80
|
-
var result;
|
|
96
|
+
var result, _result$data, _ref4, enableFlag, isDeleted;
|
|
81
97
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
82
98
|
while (1) switch (_context.prev = _context.next) {
|
|
83
99
|
case 0:
|
|
@@ -90,16 +106,37 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
|
|
|
90
106
|
result = _context.sent;
|
|
91
107
|
if (result.success) {
|
|
92
108
|
setAppInfo(result.data);
|
|
109
|
+
_ref4 = ((_result$data = result.data) === null || _result$data === void 0 ? void 0 : _result$data.publishDTO) || {}, enableFlag = _ref4.enableFlag, isDeleted = _ref4.isDeleted;
|
|
110
|
+
if (!enableFlag) {
|
|
111
|
+
onError === null || onError === void 0 || onError({
|
|
112
|
+
code: ErrorCode.APP_NOT_ENABLE,
|
|
113
|
+
message: '应用未启用或者已下架'
|
|
114
|
+
});
|
|
115
|
+
} else if (isDeleted === 'Y') {
|
|
116
|
+
onError === null || onError === void 0 || onError({
|
|
117
|
+
code: ErrorCode.APP_DELETED,
|
|
118
|
+
message: '应用已下架'
|
|
119
|
+
});
|
|
120
|
+
} else {
|
|
121
|
+
onSuccess === null || onSuccess === void 0 || onSuccess(result.data);
|
|
122
|
+
}
|
|
93
123
|
} else {
|
|
94
|
-
|
|
124
|
+
onError === null || onError === void 0 || onError({
|
|
125
|
+
code: ErrorCode.APP_NOT_FOUND,
|
|
126
|
+
message: (result === null || result === void 0 ? void 0 : result.message) || '获取聊天配置失败'
|
|
127
|
+
});
|
|
95
128
|
}
|
|
96
|
-
_context.next =
|
|
129
|
+
_context.next = 11;
|
|
97
130
|
break;
|
|
98
131
|
case 7:
|
|
99
132
|
_context.prev = 7;
|
|
100
133
|
_context.t0 = _context["catch"](0);
|
|
101
134
|
console.error('获取聊天配置失败', _context.t0);
|
|
102
|
-
|
|
135
|
+
onError === null || onError === void 0 || onError({
|
|
136
|
+
code: ErrorCode.API_ERROR,
|
|
137
|
+
message: '获取聊天配置失败'
|
|
138
|
+
});
|
|
139
|
+
case 11:
|
|
103
140
|
case "end":
|
|
104
141
|
return _context.stop();
|
|
105
142
|
}
|
|
@@ -182,6 +219,7 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
|
|
|
182
219
|
description: content
|
|
183
220
|
}]
|
|
184
221
|
};
|
|
222
|
+
// 插到末尾
|
|
185
223
|
newMessages.push(newMessage);
|
|
186
224
|
} else {
|
|
187
225
|
var suggestMsg = newMessages[suggestMessageIndex];
|
|
@@ -331,8 +369,8 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
|
|
|
331
369
|
|
|
332
370
|
// 添加对话(非普通对话)
|
|
333
371
|
var setMessage = /*#__PURE__*/function () {
|
|
334
|
-
var
|
|
335
|
-
var prologueMessageIndex, newMessage, suggestMessageIndex, _newMessage;
|
|
372
|
+
var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(messageType, content) {
|
|
373
|
+
var prologueMessageIndex, newMessage, suggestMessageIndex, _prologueMessageIndex, _newMessage;
|
|
336
374
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
337
375
|
while (1) switch (_context2.prev = _context2.next) {
|
|
338
376
|
case 0:
|
|
@@ -360,7 +398,7 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
|
|
|
360
398
|
}
|
|
361
399
|
};
|
|
362
400
|
setMessages(function (prev) {
|
|
363
|
-
return [].concat(_toConsumableArray(prev)
|
|
401
|
+
return [newMessage].concat(_toConsumableArray(prev));
|
|
364
402
|
});
|
|
365
403
|
} else {
|
|
366
404
|
setMessages(function (prev) {
|
|
@@ -379,6 +417,10 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
|
|
|
379
417
|
return item.type === 'SuggestionMessage';
|
|
380
418
|
});
|
|
381
419
|
if (suggestMessageIndex === -1) {
|
|
420
|
+
_prologueMessageIndex = messages.findIndex(function (item) {
|
|
421
|
+
var _item$extra3;
|
|
422
|
+
return (_item$extra3 = item.extra) === null || _item$extra3 === void 0 ? void 0 : _item$extra3.prologue;
|
|
423
|
+
});
|
|
382
424
|
_newMessage = {
|
|
383
425
|
id: uuidV4(),
|
|
384
426
|
type: 'SuggestionMessage',
|
|
@@ -387,9 +429,19 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
|
|
|
387
429
|
role: MessageRole.suggestion,
|
|
388
430
|
content: content
|
|
389
431
|
};
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
432
|
+
if (_prologueMessageIndex === -1) {
|
|
433
|
+
// 如果没有开场白,则插入到最前面
|
|
434
|
+
setMessages(function (prev) {
|
|
435
|
+
return [_newMessage].concat(_toConsumableArray(prev));
|
|
436
|
+
});
|
|
437
|
+
} else {
|
|
438
|
+
// 如果有开场白,则插到开场白后面
|
|
439
|
+
setMessages(function (prev) {
|
|
440
|
+
var newMessages = _toConsumableArray(prev);
|
|
441
|
+
newMessages.splice(_prologueMessageIndex + 1, 0, _newMessage);
|
|
442
|
+
return newMessages;
|
|
443
|
+
});
|
|
444
|
+
}
|
|
393
445
|
} else {
|
|
394
446
|
setMessages(function (prev) {
|
|
395
447
|
return prev.map(function (item) {
|
|
@@ -410,13 +462,13 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
|
|
|
410
462
|
}, _callee2);
|
|
411
463
|
}));
|
|
412
464
|
return function setMessage(_x, _x2) {
|
|
413
|
-
return
|
|
465
|
+
return _ref5.apply(this, arguments);
|
|
414
466
|
};
|
|
415
467
|
}();
|
|
416
468
|
|
|
417
469
|
// 简单对话
|
|
418
470
|
var chat = /*#__PURE__*/function () {
|
|
419
|
-
var
|
|
471
|
+
var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(content) {
|
|
420
472
|
var newMessage;
|
|
421
473
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
422
474
|
while (1) switch (_context3.prev = _context3.next) {
|
|
@@ -446,7 +498,8 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
|
|
|
446
498
|
start("".concat(url, "/appouter/").concat(appNo, "/sendMsg?pt=").concat(pt, "&tc=").concat(tc), {
|
|
447
499
|
appParams: {
|
|
448
500
|
inputs_msg: content
|
|
449
|
-
}
|
|
501
|
+
},
|
|
502
|
+
sessionId: currentSession
|
|
450
503
|
}, {
|
|
451
504
|
Authorization: "Bearer ".concat(token)
|
|
452
505
|
});
|
|
@@ -457,7 +510,7 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
|
|
|
457
510
|
}, _callee3);
|
|
458
511
|
}));
|
|
459
512
|
return function chat(_x3) {
|
|
460
|
-
return
|
|
513
|
+
return _ref6.apply(this, arguments);
|
|
461
514
|
};
|
|
462
515
|
}();
|
|
463
516
|
|
|
@@ -512,31 +565,160 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
|
|
|
512
565
|
});
|
|
513
566
|
};
|
|
514
567
|
|
|
568
|
+
// 初始化历史记录
|
|
569
|
+
var formatMessages = function formatMessages(data) {
|
|
570
|
+
setMessages(function (prev) {
|
|
571
|
+
var initMessagesList = [];
|
|
572
|
+
data.forEach(function (item) {
|
|
573
|
+
var _ref7 = item || {},
|
|
574
|
+
content = _ref7.content,
|
|
575
|
+
messageTime = _ref7.messageTime,
|
|
576
|
+
role = _ref7.role;
|
|
577
|
+
if (role === 'USER') {
|
|
578
|
+
var newMessage = {
|
|
579
|
+
type: 'TextMessage',
|
|
580
|
+
id: uuidV4(),
|
|
581
|
+
createdAt: messageTime,
|
|
582
|
+
role: MessageRole.user,
|
|
583
|
+
status: MessageStatus.done,
|
|
584
|
+
content: {
|
|
585
|
+
text: content
|
|
586
|
+
}
|
|
587
|
+
};
|
|
588
|
+
initMessagesList.push(newMessage);
|
|
589
|
+
} else if (role === 'AI') {
|
|
590
|
+
var _contentObj$result;
|
|
591
|
+
var contentObj = safeJsonParse(content);
|
|
592
|
+
var _newMessage2 = {
|
|
593
|
+
id: uuidV4(),
|
|
594
|
+
type: 'TextMessage',
|
|
595
|
+
createdAt: messageTime,
|
|
596
|
+
role: MessageRole.assistant,
|
|
597
|
+
content: {
|
|
598
|
+
text: contentObj === null || contentObj === void 0 || (_contentObj$result = contentObj.result) === null || _contentObj$result === void 0 ? void 0 : _contentObj$result.result
|
|
599
|
+
},
|
|
600
|
+
thinks: [],
|
|
601
|
+
status: MessageStatus.done
|
|
602
|
+
};
|
|
603
|
+
initMessagesList.push(_newMessage2);
|
|
604
|
+
}
|
|
605
|
+
});
|
|
606
|
+
return [].concat(_toConsumableArray(prev), initMessagesList);
|
|
607
|
+
});
|
|
608
|
+
};
|
|
609
|
+
|
|
610
|
+
// 获取聊天记录
|
|
611
|
+
var initAppConversations = /*#__PURE__*/function () {
|
|
612
|
+
var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
|
|
613
|
+
var result, _result$data2, sessionId, sessionResult, _sessionResult$data, sessionsData;
|
|
614
|
+
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
615
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
616
|
+
case 0:
|
|
617
|
+
_context4.prev = 0;
|
|
618
|
+
_context4.next = 3;
|
|
619
|
+
return fetchSessionList({
|
|
620
|
+
url: url,
|
|
621
|
+
appNo: appNo,
|
|
622
|
+
pt: pt,
|
|
623
|
+
tc: tc,
|
|
624
|
+
token: token
|
|
625
|
+
});
|
|
626
|
+
case 3:
|
|
627
|
+
result = _context4.sent;
|
|
628
|
+
if (!(result !== null && result !== void 0 && result.success)) {
|
|
629
|
+
_context4.next = 21;
|
|
630
|
+
break;
|
|
631
|
+
}
|
|
632
|
+
if (!((result === null || result === void 0 || (_result$data2 = result.data) === null || _result$data2 === void 0 ? void 0 : _result$data2.length) > 0)) {
|
|
633
|
+
_context4.next = 19;
|
|
634
|
+
break;
|
|
635
|
+
}
|
|
636
|
+
setSessionList(result.data);
|
|
637
|
+
sessionId = result.data[0].sessionId;
|
|
638
|
+
if (!sessionId) {
|
|
639
|
+
_context4.next = 16;
|
|
640
|
+
break;
|
|
641
|
+
}
|
|
642
|
+
setCurrentSession(sessionId); // 设置当前会话 id;
|
|
643
|
+
_context4.next = 12;
|
|
644
|
+
return fetchSessionDetail({
|
|
645
|
+
url: url,
|
|
646
|
+
appNo: appNo,
|
|
647
|
+
pt: pt,
|
|
648
|
+
tc: tc,
|
|
649
|
+
sessionId: sessionId,
|
|
650
|
+
token: token
|
|
651
|
+
});
|
|
652
|
+
case 12:
|
|
653
|
+
sessionResult = _context4.sent;
|
|
654
|
+
if (sessionResult !== null && sessionResult !== void 0 && sessionResult.success) {
|
|
655
|
+
sessionsData = (sessionResult === null || sessionResult === void 0 || (_sessionResult$data = sessionResult.data) === null || _sessionResult$data === void 0 || (_sessionResult$data = _sessionResult$data.list) === null || _sessionResult$data === void 0 || (_sessionResult$data = _sessionResult$data[0]) === null || _sessionResult$data === void 0 ? void 0 : _sessionResult$data.sessionMessages) || [];
|
|
656
|
+
if (sessionsData.length > 0) {
|
|
657
|
+
formatMessages(sessionsData);
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
_context4.next = 17;
|
|
661
|
+
break;
|
|
662
|
+
case 16:
|
|
663
|
+
// 兼容 无 session异常
|
|
664
|
+
setCurrentSession(uuidV4());
|
|
665
|
+
case 17:
|
|
666
|
+
_context4.next = 21;
|
|
667
|
+
break;
|
|
668
|
+
case 19:
|
|
669
|
+
setSessionList([]);
|
|
670
|
+
setCurrentSession(uuidV4());
|
|
671
|
+
case 21:
|
|
672
|
+
_context4.next = 25;
|
|
673
|
+
break;
|
|
674
|
+
case 23:
|
|
675
|
+
_context4.prev = 23;
|
|
676
|
+
_context4.t0 = _context4["catch"](0);
|
|
677
|
+
case 25:
|
|
678
|
+
case "end":
|
|
679
|
+
return _context4.stop();
|
|
680
|
+
}
|
|
681
|
+
}, _callee4, null, [[0, 23]]);
|
|
682
|
+
}));
|
|
683
|
+
return function initAppConversations() {
|
|
684
|
+
return _ref8.apply(this, arguments);
|
|
685
|
+
};
|
|
686
|
+
}();
|
|
687
|
+
|
|
515
688
|
// 初始化应用
|
|
516
689
|
useEffect(function () {
|
|
517
690
|
if (appInfo) {
|
|
691
|
+
// 初始化历史数据
|
|
692
|
+
initAppConversations();
|
|
518
693
|
var _appInfo$onboardingIn = appInfo.onboardingInfo,
|
|
519
694
|
onboardingInfo = _appInfo$onboardingIn === void 0 ? {} : _appInfo$onboardingIn;
|
|
520
695
|
// eslint-disable-next-line camelcase
|
|
521
|
-
var
|
|
522
|
-
|
|
523
|
-
suggested_questions =
|
|
524
|
-
|
|
525
|
-
prologue =
|
|
696
|
+
var _ref9 = onboardingInfo || {},
|
|
697
|
+
_ref9$suggested_quest = _ref9.suggested_questions,
|
|
698
|
+
suggested_questions = _ref9$suggested_quest === void 0 ? [] : _ref9$suggested_quest,
|
|
699
|
+
_ref9$prologue = _ref9.prologue,
|
|
700
|
+
prologue = _ref9$prologue === void 0 ? '' : _ref9$prologue;
|
|
701
|
+
|
|
702
|
+
// 初始化开场白
|
|
526
703
|
if (prologue) {
|
|
527
704
|
setMessage('prologue', prologue);
|
|
528
705
|
} else {
|
|
529
706
|
setMessages(function (prev) {
|
|
530
707
|
return prev.filter(function (item) {
|
|
531
|
-
var _item$
|
|
532
|
-
return !((_item$
|
|
708
|
+
var _item$extra4;
|
|
709
|
+
return !((_item$extra4 = item.extra) !== null && _item$extra4 !== void 0 && _item$extra4.prologue);
|
|
533
710
|
});
|
|
534
711
|
});
|
|
535
712
|
}
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
713
|
+
|
|
714
|
+
// 过滤空内容
|
|
715
|
+
var formatSuggests = suggested_questions.filter(function (item) {
|
|
716
|
+
return item;
|
|
717
|
+
});
|
|
718
|
+
|
|
719
|
+
// 初始化 预设问题
|
|
720
|
+
if (formatSuggests.length > 0) {
|
|
721
|
+
var suggestMessages = formatSuggests.map(function (item, index) {
|
|
540
722
|
return {
|
|
541
723
|
key: index + 1,
|
|
542
724
|
description: item
|
|
@@ -558,8 +740,11 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
|
|
|
558
740
|
messages: messages,
|
|
559
741
|
loading: loading,
|
|
560
742
|
content: responseData.content,
|
|
743
|
+
sessionsList: sessionsList,
|
|
744
|
+
currentSession: currentSession,
|
|
561
745
|
reChat: reChat,
|
|
562
746
|
chat: chat,
|
|
747
|
+
setCurrentSession: setCurrentSession,
|
|
563
748
|
setMessage: setMessage,
|
|
564
749
|
setMessages: setMessages,
|
|
565
750
|
stopChat: stopChat
|