@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.
Files changed (85) hide show
  1. package/README.md +93 -214
  2. package/dist/cjs/components/XAiChatbot/index.js +4 -3
  3. package/dist/cjs/components/XAiChatbot/index.js.map +2 -2
  4. package/dist/cjs/components/XAiChatbot/styles.d.ts +2 -0
  5. package/dist/cjs/components/XAiChatbot/styles.js +31 -1
  6. package/dist/cjs/components/XAiChatbot/styles.js.map +2 -2
  7. package/dist/cjs/components/XAiConversations/XAiConversations.stories.d.ts +6 -0
  8. package/dist/cjs/components/XAiConversations/XAiConversations.stories.js +82 -0
  9. package/dist/cjs/components/XAiConversations/XAiConversations.stories.js.map +7 -0
  10. package/dist/cjs/components/XAiConversations/index.d.ts +4 -0
  11. package/dist/cjs/components/XAiConversations/index.js +59 -0
  12. package/dist/cjs/components/XAiConversations/index.js.map +7 -0
  13. package/dist/cjs/components/XAiProvider/XAiProvider.stories.d.ts +2 -2
  14. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +12 -12
  15. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +2 -2
  16. package/dist/cjs/components/XAiProvider/demo.styles.d.ts +35 -0
  17. package/dist/cjs/components/XAiProvider/demo.styles.js +37 -0
  18. package/dist/cjs/components/XAiProvider/demo.styles.js.map +7 -0
  19. package/dist/cjs/components/XAiProvider/index.js +8 -3
  20. package/dist/cjs/components/XAiProvider/index.js.map +3 -3
  21. package/dist/cjs/components/XAiWebSDKWrapper.js +7 -1
  22. package/dist/cjs/components/XAiWebSDKWrapper.js.map +2 -2
  23. package/dist/cjs/hooks/useAgentGenerator.d.ts +10 -2
  24. package/dist/cjs/hooks/useAgentGenerator.js +132 -7
  25. package/dist/cjs/hooks/useAgentGenerator.js.map +2 -2
  26. package/dist/cjs/services/api.d.ts +65 -3
  27. package/dist/cjs/services/api.js +33 -0
  28. package/dist/cjs/services/api.js.map +2 -2
  29. package/dist/cjs/types/XAiChatbot.d.ts +2 -0
  30. package/dist/cjs/types/XAiChatbot.js.map +1 -1
  31. package/dist/cjs/types/XAiConversations.d.ts +4 -0
  32. package/dist/cjs/types/XAiConversations.js +18 -0
  33. package/dist/cjs/types/XAiConversations.js.map +7 -0
  34. package/dist/cjs/types/XAiProvider.d.ts +14 -0
  35. package/dist/cjs/types/XAiProvider.js +9 -0
  36. package/dist/cjs/types/XAiProvider.js.map +3 -3
  37. package/dist/cjs/types/index.d.ts +1 -0
  38. package/dist/cjs/types/index.js +3 -1
  39. package/dist/cjs/types/index.js.map +2 -2
  40. package/dist/cjs/utils/umdEntry.d.ts +4 -1
  41. package/dist/cjs/utils/umdEntry.js +14 -12
  42. package/dist/cjs/utils/umdEntry.js.map +2 -2
  43. package/dist/esm/components/XAiChatbot/index.js +11 -8
  44. package/dist/esm/components/XAiChatbot/index.js.map +1 -1
  45. package/dist/esm/components/XAiChatbot/styles.d.ts +2 -0
  46. package/dist/esm/components/XAiChatbot/styles.js +38 -38
  47. package/dist/esm/components/XAiChatbot/styles.js.map +1 -1
  48. package/dist/esm/components/XAiConversations/XAiConversations.stories.d.ts +6 -0
  49. package/dist/esm/components/XAiConversations/XAiConversations.stories.js +42 -0
  50. package/dist/esm/components/XAiConversations/XAiConversations.stories.js.map +1 -0
  51. package/dist/esm/components/XAiConversations/index.d.ts +4 -0
  52. package/dist/esm/components/XAiConversations/index.js +27 -0
  53. package/dist/esm/components/XAiConversations/index.js.map +1 -0
  54. package/dist/esm/components/XAiProvider/XAiProvider.stories.d.ts +2 -2
  55. package/dist/esm/components/XAiProvider/XAiProvider.stories.js +38 -180
  56. package/dist/esm/components/XAiProvider/XAiProvider.stories.js.map +1 -1
  57. package/dist/esm/components/XAiProvider/demo.styles.d.ts +35 -0
  58. package/dist/esm/components/XAiProvider/demo.styles.js +12 -0
  59. package/dist/esm/components/XAiProvider/demo.styles.js.map +1 -0
  60. package/dist/esm/components/XAiProvider/index.js +17 -3
  61. package/dist/esm/components/XAiProvider/index.js.map +1 -1
  62. package/dist/esm/components/XAiWebSDKWrapper.js +4 -1
  63. package/dist/esm/components/XAiWebSDKWrapper.js.map +1 -1
  64. package/dist/esm/hooks/useAgentGenerator.d.ts +10 -2
  65. package/dist/esm/hooks/useAgentGenerator.js +215 -30
  66. package/dist/esm/hooks/useAgentGenerator.js.map +1 -1
  67. package/dist/esm/services/api.d.ts +65 -3
  68. package/dist/esm/services/api.js +75 -0
  69. package/dist/esm/services/api.js.map +1 -1
  70. package/dist/esm/types/XAiChatbot.d.ts +2 -0
  71. package/dist/esm/types/XAiChatbot.js.map +1 -1
  72. package/dist/esm/types/XAiConversations.d.ts +4 -0
  73. package/dist/esm/types/XAiConversations.js +2 -0
  74. package/dist/esm/types/XAiConversations.js.map +1 -0
  75. package/dist/esm/types/XAiProvider.d.ts +14 -0
  76. package/dist/esm/types/XAiProvider.js +7 -0
  77. package/dist/esm/types/XAiProvider.js.map +1 -1
  78. package/dist/esm/types/index.d.ts +1 -0
  79. package/dist/esm/types/index.js +1 -0
  80. package/dist/esm/types/index.js.map +1 -1
  81. package/dist/esm/utils/umdEntry.d.ts +4 -1
  82. package/dist/esm/utils/umdEntry.js +22 -18
  83. package/dist/esm/utils/umdEntry.js.map +1 -1
  84. package/dist/umd/chat-sdk.min.js +1 -1
  85. 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,\n userAvatar: userIcon,\n emptyStateImage: icon,\n emptyStateText: appName,\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":"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"}
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(containerRef.current, sdkProps);
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(containerRef.current, sdkProps);\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,CAACF,YAAY,CAACC,OAAO,EAAEL,QAAQ,CAAC;;MAEtE;MACA,IAAIF,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,CAACE,OAAO,CAAC,CAAC;QACxBJ,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;IAAKa,GAAG,EAAEJ;EAAa,CAAE,CAAC;AACnC,CAAC;AAED,eAAeR,gBAAgB"}
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
- declare const useAgentGenerator: ({ url, token, config }: {
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
- var _useState3 = useState(null),
69
+ // 会话记录
70
+ var _useState3 = useState([]),
66
71
  _useState4 = _slicedToArray(_useState3, 2),
67
- appInfo = _useState4[0],
68
- setAppInfo = _useState4[1];
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
- console.error('获取聊天配置失败', result.message);
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 = 10;
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
- case 10:
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 _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(messageType, content) {
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), [newMessage]);
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
- setMessages(function (prev) {
391
- return [].concat(_toConsumableArray(prev), [_newMessage]);
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 _ref4.apply(this, arguments);
465
+ return _ref5.apply(this, arguments);
414
466
  };
415
467
  }();
416
468
 
417
469
  // 简单对话
418
470
  var chat = /*#__PURE__*/function () {
419
- var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(content) {
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 _ref5.apply(this, arguments);
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 _ref6 = onboardingInfo || {},
522
- _ref6$suggested_quest = _ref6.suggested_questions,
523
- suggested_questions = _ref6$suggested_quest === void 0 ? [] : _ref6$suggested_quest,
524
- _ref6$prologue = _ref6.prologue,
525
- prologue = _ref6$prologue === void 0 ? '' : _ref6$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$extra3;
532
- return !((_item$extra3 = item.extra) !== null && _item$extra3 !== void 0 && _item$extra3.prologue);
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
- if (suggested_questions.length > 0) {
537
- var suggestMessages = suggested_questions.filter(function (item) {
538
- return item;
539
- }).map(function (item, index) {
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