@ai-group/chat-sdk 3.0.8 → 3.0.10

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 (86) hide show
  1. package/dist/cjs/components/FileGallery/index.js +7 -5
  2. package/dist/cjs/components/FileGallery/index.js.map +2 -2
  3. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js +34 -26
  4. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js.map +2 -2
  5. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.js +1 -1
  6. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.js.map +1 -1
  7. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.d.ts +3 -0
  8. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js +74 -2
  9. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js.map +3 -3
  10. package/dist/cjs/components/XAdkChatbot/index.js +10 -7
  11. package/dist/cjs/components/XAdkChatbot/index.js.map +2 -2
  12. package/dist/cjs/types/FileGallery.d.ts +2 -0
  13. package/dist/cjs/types/FileGallery.js.map +1 -1
  14. package/dist/cjs/types/XAdkChatbot.d.ts +3 -0
  15. package/dist/cjs/types/XAdkChatbot.js.map +1 -1
  16. package/dist/esm/components/FileGallery/index.js +12 -5
  17. package/dist/esm/components/FileGallery/index.js.map +1 -1
  18. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js +3 -0
  19. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js.map +1 -1
  20. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.js +1 -1
  21. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.js.map +1 -1
  22. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.d.ts +3 -0
  23. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js +81 -2
  24. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js.map +1 -1
  25. package/dist/esm/components/XAdkChatbot/index.js +14 -8
  26. package/dist/esm/components/XAdkChatbot/index.js.map +1 -1
  27. package/dist/esm/types/FileGallery.d.ts +2 -0
  28. package/dist/esm/types/FileGallery.js.map +1 -1
  29. package/dist/esm/types/XAdkChatbot.d.ts +3 -0
  30. package/dist/esm/types/XAdkChatbot.js.map +1 -1
  31. package/dist/umd/chat-sdk.min.js +1 -1
  32. package/package.json +2 -3
  33. package/dist/cjs/components/FileGallery/FileGallery.stories.d.ts +0 -6
  34. package/dist/cjs/components/FileGallery/FileGallery.stories.js +0 -143
  35. package/dist/cjs/components/FileGallery/FileGallery.stories.js.map +0 -7
  36. package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.d.ts +0 -13
  37. package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.js +0 -633
  38. package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.js.map +0 -7
  39. package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.d.ts +0 -10
  40. package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.js +0 -394
  41. package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.js.map +0 -7
  42. package/dist/cjs/components/XAdkSender/XAdkSender.stories.d.ts +0 -6
  43. package/dist/cjs/components/XAdkSender/XAdkSender.stories.js +0 -121
  44. package/dist/cjs/components/XAdkSender/XAdkSender.stories.js.map +0 -7
  45. package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.d.ts +0 -10
  46. package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js +0 -773
  47. package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js.map +0 -7
  48. package/dist/cjs/components/XAiConversations/XAiConversations.stories.d.ts +0 -6
  49. package/dist/cjs/components/XAiConversations/XAiConversations.stories.js +0 -83
  50. package/dist/cjs/components/XAiConversations/XAiConversations.stories.js.map +0 -7
  51. package/dist/cjs/components/XAiProvider/XAiProvider.stories.d.ts +0 -8
  52. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +0 -206
  53. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +0 -7
  54. package/dist/cjs/components/XAiSender/XAiSender.stories.d.ts +0 -6
  55. package/dist/cjs/components/XAiSender/XAiSender.stories.js +0 -102
  56. package/dist/cjs/components/XAiSender/XAiSender.stories.js.map +0 -7
  57. package/dist/cjs/components/XAiThoughtChain/XAiThoughtChain.stories.d.ts +0 -6
  58. package/dist/cjs/components/XAiThoughtChain/XAiThoughtChain.stories.js +0 -180
  59. package/dist/cjs/components/XAiThoughtChain/XAiThoughtChain.stories.js.map +0 -7
  60. package/dist/esm/components/FileGallery/FileGallery.stories.d.ts +0 -6
  61. package/dist/esm/components/FileGallery/FileGallery.stories.js +0 -48
  62. package/dist/esm/components/FileGallery/FileGallery.stories.js.map +0 -1
  63. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.d.ts +0 -13
  64. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js +0 -510
  65. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js.map +0 -1
  66. package/dist/esm/components/XAdkProvider/XAdkProvider.stories.d.ts +0 -10
  67. package/dist/esm/components/XAdkProvider/XAdkProvider.stories.js +0 -338
  68. package/dist/esm/components/XAdkProvider/XAdkProvider.stories.js.map +0 -1
  69. package/dist/esm/components/XAdkSender/XAdkSender.stories.d.ts +0 -6
  70. package/dist/esm/components/XAdkSender/XAdkSender.stories.js +0 -128
  71. package/dist/esm/components/XAdkSender/XAdkSender.stories.js.map +0 -1
  72. package/dist/esm/components/XAiChatbot/XAiChatbot.stories.d.ts +0 -10
  73. package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js +0 -636
  74. package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js.map +0 -1
  75. package/dist/esm/components/XAiConversations/XAiConversations.stories.d.ts +0 -6
  76. package/dist/esm/components/XAiConversations/XAiConversations.stories.js +0 -42
  77. package/dist/esm/components/XAiConversations/XAiConversations.stories.js.map +0 -1
  78. package/dist/esm/components/XAiProvider/XAiProvider.stories.d.ts +0 -8
  79. package/dist/esm/components/XAiProvider/XAiProvider.stories.js +0 -208
  80. package/dist/esm/components/XAiProvider/XAiProvider.stories.js.map +0 -1
  81. package/dist/esm/components/XAiSender/XAiSender.stories.d.ts +0 -6
  82. package/dist/esm/components/XAiSender/XAiSender.stories.js +0 -87
  83. package/dist/esm/components/XAiSender/XAiSender.stories.js.map +0 -1
  84. package/dist/esm/components/XAiThoughtChain/XAiThoughtChain.stories.d.ts +0 -6
  85. package/dist/esm/components/XAiThoughtChain/XAiThoughtChain.stories.js +0 -159
  86. package/dist/esm/components/XAiThoughtChain/XAiThoughtChain.stories.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","useEffect","useState","Divider","MessageRole","MessageStatus","documentIcon","XAiProvider","XAiChatbot","useProviderContext","useProviderMethods","jsxs","_jsxs","jsx","_jsx","meta","title","component","parameters","layout","tags","argTypes","navbar","description","messages","mockMessages","id","type","createdAt","Date","status","done","role","assistant","content","text","user","files","fileName","fileId","fileUrl","fileType","fileSize","parentMessageId","thinks","extra","noFooter","suggestion","key","BasicUsageStory","args","_useState","_useState2","_slicedToArray","setMessages","_useState3","_useState4","loading","setLoading","handleSendMessage","stream","forEach","chunk","idx","setTimeout","prev","updated","_toConsumableArray","targetIndex","targetMsg","_objectSpread","Math","random","toString","slice","pending","length","_updated$targetIndex$","execute","push","icon","name","handleClear","handleActions","index","data","console","log","handleSuggestMessageClick","_item","filter","m","ToolTip","_ref","cost","token","style","display","alignItems","fontSize","color","flex","paddingRight","children","height","width","border","borderRadius","messageTooltip","onClear","onSuggestMessageClick","onSend","onMessagesActionsCallback","enableUpload","uploadRequest","_ref2","file","onProgress","onSuccess","percent","mimeType","tempUrl","基础用法","render","emptyStateText","在Provider中使用","decorators","Story","url","多个Provider实例","gap","providerId","marginRight","ArchitectureDemoComponent","_ref3","_getProviderValue","_useProviderContext","props","mergeLogic","context","_context$messages","isInProvider","customData","mergedProps","getProviderValue","providerMethods","padding","marginBottom","backgroundColor","margin","onClick","_providerMethods$send","sendMessage","call","disabled","cursor","新架构演示","navbarShow","subtitle","_ref4","info","架构对比演示","_ref5","_ref6"],"sources":["../../../../src/components/XAiChatbot/XAiChatbot.stories.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport type { Meta, StoryObj } from \"@storybook/react-vite\";\nimport { Divider } from \"antd\";\nimport { MessageRole, MessageStatus } from \"@/types/XAiMessage\";\nimport type { Messages } from \"@/types/XAiMessage\";\nimport documentIcon from \"@/assets/document.svg\";\nimport XAiProvider from \"../XAiProvider\";\nimport XAiChatbot from \".\";\nimport {\n useProviderContext,\n useProviderMethods,\n} from \"@/hooks/useProviderContext\";\n\nconst meta: Meta<typeof XAiChatbot> = {\n title: \"AI组件/XAiChatbot 聊天框【下线】\",\n component: XAiChatbot,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n argTypes: {\n navbar: {\n description: \"导航栏配置\",\n },\n messages: {\n description: \"消息列表\",\n },\n },\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// mock 消息数据,严格符合 Messages 类型\nconst mockMessages: Messages[] = [\n {\n id: \"1\",\n type: \"TextMessage\",\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.assistant,\n content: {\n text: \"你好,有什么我能帮助你的吗?\",\n },\n },\n {\n id: \"2\",\n type: \"TextMessage\",\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.user,\n content: {\n text: \"检索从北京到上海的车票数据给我\",\n files: [\n {\n fileName: \"4250105220774925bfaeb3ca2a3350fe.jpg\",\n fileId: 334,\n fileUrl:\n \"https://ai-platform-test.oss-cn-hangzhou.aliyuncs.com/ZABX/vbvljaaxlhlcy.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260112T132456Z&X-Amz-SignedHeaders=host&X-Amz-Credential=LTAI5tSfMvkvWhU43Ev1cFJo%2F20260112%2Foss-cn-hangzhou%2Fs3%2Faws4_request&X-Amz-Expires=518400&X-Amz-Signature=3a8546bfdf0332a5188e9e7c47c9b8d0bb46424177c5f9be703ade8482a6e4e2\",\n fileType: \"image\",\n fileSize: 28118,\n },\n {\n fileName: \"4250105220774925bfaeb3ca2a3350fe.pdf\",\n fileId: 334,\n fileUrl:\n \"https://ai-platform-test.oss-cn-hangzhou.aliyuncs.com/ZABX/vbvljaaxlhlcy.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260112T132456Z&X-Amz-SignedHeaders=host&X-Amz-Credential=LTAI5tSfMvkvWhU43Ev1cFJo%2F20260112%2Foss-cn-hangzhou%2Fs3%2Faws4_request&X-Amz-Expires=518400&X-Amz-Signature=3a8546bfdf0332a5188e9e7c47c9b8d0bb46424177c5f9be703ade8482a6e4e2\",\n fileType: \"pdf\",\n fileSize: 28118,\n },\n ],\n },\n parentMessageId: \"1\",\n },\n {\n id: \"22\",\n type: \"TextMessage\",\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.assistant,\n content: {\n text: \"\",\n },\n thinks: \"\",\n // execute: [\n // // 工具库调用(MCP_TOOL)\n // {\n // type: 'ActionExecutionMessage',\n // createdAt: new Date(),\n // id: 'tool-1',\n // name: '已调用MCP智能工具',\n // arguments: { param1: 'foo' },\n // extra: {\n // action: 'INVOKE_AGENT_TOOL_START',\n // icon: documentIcon,\n // type: 'MCP_TOOL',\n // cost: '3.9',\n // },\n // },\n // // // 工具库调用(PLUGIN_TOOL)\n // {\n // type: 'ActionExecutionMessage',\n // createdAt: new Date(),\n // id: 'tool-2',\n // name: '已调用插件工具',\n // arguments: { param1: 'foo' },\n // extra: {\n // action: 'INVOKE_AGENT_TOOL_START',\n // icon: documentIcon,\n // type: 'MCP_TOOL',\n // cost: '3.9',\n // },\n // },\n // // // 工具库调用(SKILL)\n // // {\n // // action: 'INVOKE_AGENT_TOOL_START',\n // // id: 'tool-3',\n // // toolType: 'SKILL',\n // // agentToolName: '技能工具',\n // // args: { param3: 'baz' },\n\n // // },\n // // // 知识库调用(FAQ)\n // // {\n // // action: 'RECALL_KNOWLEDGE_START',\n // // uniqueId: 'kb-1',\n // // processStatus: 'START',\n // // args: { question: '什么是FAQ?' },\n // // knowledgeType: 'FAQ',\n // // },\n // {\n // type: 'ActionExecutionMessage',\n // createdAt: new Date(),\n // id: 'tool-3',\n // name: '已调用文档知识库',\n // arguments: { param1: 'foo' },\n // extra: {\n // action: 'RECALL_KNOWLEDGE_START',\n // icon: documentIcon,\n // type: 'MCP_TOOL',\n // cost: '3.9',\n // },\n // },\n // // // 知识库调用(DOCUMENT)\n // // {\n // // action: 'RECALL_KNOWLEDGE_START',\n // // uniqueId: 'kb-2',\n // // processStatus: 'START',\n // // args: { question: '文档库介绍' },\n // // knowledgeType: 'DOCUMENT',\n // // },\n // // 运行完毕\n // ],\n extra: {\n noFooter: true,\n },\n },\n {\n id: \"4\",\n type: \"TextMessage\",\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.user,\n content: {\n text: \"能否生成一段明年的产品计划开发计划文档给我\",\n },\n },\n {\n id: \"0\",\n type: \"TextMessage\",\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.assistant,\n content: {\n text: `\n# 项目开发计划\n\n本文档概述了 2025 年第三季度的产品开发计划,包括目标、里程碑、团队分工和风险预案。\n\n---\n\n## 🎯 核心目标\n\n- 提升用户留存率至 **45%**\n- 完成 Web 端新版上线\n- 建立 AI 推荐模块 MVP\n- 优化数据库访问性能\n\n---\n\n## 📅 关键时间节点\n\n| 里程碑 | 截止日期 | 负责人 | 代理人 | 截止日期 | 负责人 |\n|------------------|--------------|----------|------------------|--------------|----------|\n| 产品需求冻结 | 2025-08-01 | Alice | 产品需求冻结 | 2025-08-01 | Alice |\n| UI 设计定稿 | 2025-08-10 | Bob | 产品需求冻结 | 2025-08-01 | Alice |\n| 开发完成(内测) | 2025-09-15 | Charlie | 产品需求冻结 | 2025-08-01 | Alice |\n| 正式上线 | 2025-09-30 | Diana | 产品需求冻结 | 2025-08-01 | Alice |\n\n---\n\n## 🛠️ 技术方案简述\n\n我们将使用以下技术栈:\n\n- 前端:React + Vite + Zustand\n- 后端:Node.js + PostgreSQL\n- 数据分析:Python + Pandas\n- 部署环境:Kubernetes on AWS\n\n---\n\n## 💡 示例代码片段\n\n以下是一个用于生成唯一 ID 的函数示例:\n\n~~~ts\nimport { nanoid } from 'nanoid'\n\nexport function generateSessionId() {\n return \\`sess-\\${nanoid()}\\`\n}\n~~~\n`,\n },\n extra: {\n noFooter: true,\n },\n },\n {\n id: \"11\",\n type: \"SuggestionMessage\",\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.suggestion,\n content: [\n {\n key: \"1\",\n description: \"我要查看 AI 文档\",\n },\n {\n key: \"2\",\n description: \"我如何看待 AI\",\n },\n {\n key: \"3\",\n description: \"你是谁?\",\n },\n ],\n },\n];\n\n// 基础用法\nconst BasicUsageStory = (args: any) => {\n const [messages, setMessages] = useState<Messages[]>(mockMessages);\n const [loading, setLoading] = useState<boolean>(false);\n\n // 模拟随机字符串流式返回\n const handleSendMessage = () => {\n setLoading(true);\n\n // 模拟流式输出(向 mockMessages 第二条消息 content.text 追加)\n const stream = [\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"……\",\n ];\n\n stream.forEach((chunk, idx) => {\n setTimeout(\n () => {\n setMessages((prev) => {\n const updated = [...prev];\n const targetIndex = 2; // mockMessages 的第二条(索引 1)\n const targetMsg = updated[targetIndex];\n\n // 确保该消息存在且是 TextMessage\n if (targetMsg && targetMsg.type === \"TextMessage\") {\n // content 可能是多种类型,这里做类型守卫\n if (\"text\" in targetMsg.content) {\n updated[targetIndex] = {\n ...targetMsg,\n content: {\n ...targetMsg.content,\n // 模拟随机字符串流式拼接\n // text: targetMsg.content.text + chunk + Math.random().toString(36).slice(2, 5),\n },\n thinks:\n targetMsg.thinks +\n chunk +\n Math.random().toString(36).slice(2, 5),\n status: MessageStatus.pending,\n };\n }\n }\n\n // 最后一个流块时,标记完成\n if (idx === stream.length - 1) {\n updated[targetIndex].execute?.push({\n id: \"5\",\n type: \"ActionExecutionMessage\",\n extra: {\n icon: documentIcon,\n },\n name: \"运行完毕\",\n createdAt: new Date(),\n });\n setLoading(false);\n updated[targetIndex] = {\n ...updated[targetIndex],\n status: MessageStatus.done,\n };\n }\n\n return updated;\n });\n },\n 200 * (idx + 1),\n ); // 每个片段延迟 600ms 模拟流\n });\n };\n\n useEffect(() => {\n if (messages) {\n handleSendMessage();\n }\n }, []);\n\n // 清空消息\n const handleClear = () => {\n setMessages([]);\n };\n\n // 模拟按钮回调\n const handleActions = (index: number, data: any) => {\n console.log(index, data);\n };\n\n // 模拟快捷短语点击\n const handleSuggestMessageClick = (_item: any, id: string) => {\n setMessages((prev) => prev.filter((m) => m.id !== id));\n };\n\n // tooltip\n const ToolTip = (data: any) => {\n const { cost, token } = data?.extra || {};\n if (!cost && !token) return null;\n return (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n fontSize: \"12px\",\n color: \"#949494\",\n flex: 1,\n paddingRight: \"40px\",\n }}\n >\n {cost && <div>{cost}s</div>}\n {token && <Divider type=\"vertical\" />}\n {token && <div>{token} tokens</div>}\n </div>\n );\n };\n\n return (\n <div\n style={{\n height: \"600px\",\n width: \"400px\",\n border: \"1px solid #e7e7e7\",\n borderRadius: \"8px\",\n }}\n >\n <XAiChatbot\n {...args}\n messages={messages}\n loading={loading}\n messageTooltip={ToolTip}\n onClear={handleClear}\n onSuggestMessageClick={handleSuggestMessageClick}\n onSend={handleSendMessage}\n onMessagesActionsCallback={handleActions}\n enableUpload\n uploadRequest={({ file, onProgress, onSuccess }) => {\n onProgress?.({\n percent: 50,\n });\n setTimeout(() => {\n onSuccess?.({\n fileName: \"4250105220774925bfaeb3ca2a3350fe.jpg\",\n fileId: 334,\n fileUrl:\n \"https://ai-platform-test.oss-cn-hangzhou.aliyuncs.com/ZABX/vbvljaaxlhlcy.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260112T132456Z&X-Amz-SignedHeaders=host&X-Amz-Credential=LTAI5tSfMvkvWhU43Ev1cFJo%2F20260112%2Foss-cn-hangzhou%2Fs3%2Faws4_request&X-Amz-Expires=518400&X-Amz-Signature=3a8546bfdf0332a5188e9e7c47c9b8d0bb46424177c5f9be703ade8482a6e4e2\",\n fileType: \"image\",\n fileSize: 28118,\n mimeType: \"image/jpeg\",\n tempUrl:\n \"https://ai-platform-test.oss-cn-hangzhou.aliyuncs.com/ZABX/vbvljaaxlhlcy.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260112T132456Z&X-Amz-SignedHeaders=host&X-Amz-Credential=LTAI5tSfMvkvWhU43Ev1cFJo%2F20260112%2Foss-cn-hangzhou%2Fs3%2Faws4_request&X-Amz-Expires=518400&X-Amz-Signature=3a8546bfdf0332a5188e9e7c47c9b8d0bb46424177c5f9be703ade8482a6e4e2\",\n type: \"image\",\n });\n }, 1000);\n }}\n />\n </div>\n );\n};\n\nexport const 基础用法: Story = {\n render: BasicUsageStory,\n args: {\n navbar: {\n title: \"智能助手\",\n },\n // messages: mockMessages,\n emptyStateText: \"众安智能体\",\n },\n};\n\n// 在 Provider 中使用\nexport const 在Provider中使用: Story = {\n decorators: [\n (Story) => (\n <XAiProvider token=\"test-token\" url=\"https://api.example.com\">\n <Story />\n </XAiProvider>\n ),\n ],\n args: {\n navbar: {\n title: \"智能助手\",\n },\n },\n};\n\n// 多个 Provider 实例\nexport const 多个Provider实例: Story = {\n decorators: [\n (Story) => (\n <div style={{ display: \"flex\", gap: \"50px\", height: \"600px\" }}>\n <XAiProvider\n providerId=\"chat1\"\n token=\"token1\"\n url=\"https://api1.example.com\"\n >\n <div style={{ width: \"300px\", marginRight: \"40px\" }}>\n <Story />\n </div>\n </XAiProvider>\n <XAiProvider\n providerId=\"chat2\"\n token=\"token2\"\n url=\"https://api2.example.com\"\n >\n <div style={{ width: \"300px\" }}>\n <Story />\n </div>\n </XAiProvider>\n </div>\n ),\n ],\n args: {\n navbar: {\n title: \"智能助手\",\n },\n },\n};\n\n// 展示新架构的示例组件\nconst ArchitectureDemoComponent: React.FC<{ title: string }> = ({ title }) => {\n const { mergedProps, isInProvider, getProviderValue } = useProviderContext({\n props: { title },\n mergeLogic: (props, context) => {\n if (!context?.isInProvider) {\n return props;\n }\n\n return {\n ...props,\n messages: context.messages,\n loading: context.loading,\n customData: context.messages?.length || 0,\n };\n },\n });\n\n const providerMethods = useProviderMethods();\n\n return (\n <div\n style={{\n padding: \"15px\",\n border: \"1px solid #e7e7e7\",\n borderRadius: \"8px\",\n marginBottom: \"10px\",\n backgroundColor: \"#fafafa\",\n }}\n >\n <h4 style={{ margin: \"0 0 10px 0\" }}>{mergedProps.title}</h4>\n <div style={{ fontSize: \"12px\", color: \"#666\" }}>\n <p>Provider 状态: {isInProvider ? \"✅ 已连接\" : \"❌ 未连接\"}</p>\n <p>消息数量: {getProviderValue(\"messages\")?.length || 0}</p>\n <p>加载状态: {getProviderValue(\"loading\") ? \"🔄 加载中\" : \"✅ 就绪\"}</p>\n <button\n onClick={() =>\n providerMethods.sendMessage?.({ text: \"来自架构演示组件的消息\" })\n }\n disabled={!isInProvider}\n style={{\n fontSize: \"12px\",\n padding: \"4px 8px\",\n backgroundColor: isInProvider ? \"#1890ff\" : \"#d9d9d9\",\n color: \"white\",\n border: \"none\",\n borderRadius: \"4px\",\n cursor: isInProvider ? \"pointer\" : \"not-allowed\",\n }}\n >\n {isInProvider ? \"发送消息\" : \"需要 Provider\"}\n </button>\n </div>\n </div>\n );\n};\n\n// 展示新架构的示例\nexport const 新架构演示: Story = {\n render: (args) => (\n <div style={{ width: \"500px\", height: \"700px\" }}>\n <XAiProvider\n token=\"demo-token\"\n url=\"https://api.example.com\"\n providerId=\"architecture-demo\"\n >\n <div style={{ padding: \"20px\" }}>\n <h3 style={{ marginBottom: \"20px\" }}>新架构演示</h3>\n <p style={{ marginBottom: \"20px\", color: \"#666\" }}>\n 展示如何使用 useProviderContext 和 useProviderMethods Hook\n </p>\n\n {/* 演示组件 */}\n <div style={{ marginBottom: \"20px\" }}>\n <ArchitectureDemoComponent title=\"演示组件 A\" />\n <ArchitectureDemoComponent title=\"演示组件 B\" />\n <ArchitectureDemoComponent title=\"演示组件 C\" />\n </div>\n\n {/* 聊天机器人 */}\n <XAiChatbot\n {...args}\n navbarShow\n navbar={{\n title: \"架构演示聊天机器人\",\n subtitle: \"展示新 Hook 的使用\",\n }}\n enableUpload\n uploadRequest={({ file, onProgress, onSuccess }) => {\n console.info(file);\n onProgress?.({\n percent: 50,\n });\n setTimeout(() => {\n onSuccess?.({});\n }, 1000);\n }}\n />\n </div>\n </XAiProvider>\n </div>\n ),\n args: {\n navbar: {\n title: \"智能助手\",\n },\n },\n};\n\n// 对比示例:独立使用 vs Provider 模式\nexport const 架构对比演示: Story = {\n render: (args) => (\n <div style={{ display: \"flex\", gap: \"20px\", padding: \"20px\" }}>\n {/* 独立使用 */}\n <div style={{ width: \"300px\" }}>\n <h4>独立使用模式</h4>\n <div\n style={{\n border: \"1px solid #e7e7e7\",\n borderRadius: \"8px\",\n padding: \"15px\",\n }}\n >\n <ArchitectureDemoComponent title=\"独立组件\" />\n <XAiChatbot\n {...args}\n navbarShow\n navbar={{\n title: \"独立聊天机器人\",\n subtitle: \"不依赖 Provider\",\n }}\n onSend={(content) => {\n console.log(\"独立模式发送:\", content);\n }}\n onClear={() => {\n console.log(\"独立模式清空\");\n }}\n enableUpload\n uploadRequest={({ file, onProgress, onSuccess }) => {\n console.info(file);\n onProgress?.({\n percent: 50,\n });\n setTimeout(() => {\n onSuccess?.({});\n }, 1000);\n }}\n />\n </div>\n </div>\n\n {/* Provider 模式 */}\n <div style={{ width: \"300px\" }}>\n <h4>Provider 模式</h4>\n <XAiProvider\n token=\"demo-token\"\n url=\"https://api.example.com\"\n providerId=\"comparison-demo\"\n >\n <div\n style={{\n border: \"1px solid #e7e7e7\",\n borderRadius: \"8px\",\n padding: \"15px\",\n }}\n >\n <ArchitectureDemoComponent title=\"Provider 组件\" />\n <XAiChatbot\n {...args}\n navbarShow\n navbar={{\n title: \"Provider 聊天机器人\",\n subtitle: \"由 Provider 管理\",\n }}\n enableUpload\n uploadRequest={({ file, onProgress, onSuccess }) => {\n console.info(file);\n onProgress?.({\n percent: 50,\n });\n setTimeout(() => {\n onSuccess?.({});\n }, 1000);\n }}\n />\n </div>\n </XAiProvider>\n </div>\n </div>\n ),\n args: {\n navbar: {\n title: \"智能助手\",\n },\n },\n};\n"],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite';
2
- import XAiConversations from '.';
3
- declare const meta: Meta<typeof XAiConversations>;
4
- export default meta;
5
- type Story = StoryObj<typeof meta>;
6
- export declare const 基础用法: Story;
@@ -1,42 +0,0 @@
1
- import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
- import XAiConversations from '.';
3
- import { jsx as _jsx } from "react/jsx-runtime";
4
- var meta = {
5
- title: 'AI组件/XAiConversations 对话记录管理',
6
- component: XAiConversations,
7
- parameters: {
8
- layout: 'centered'
9
- },
10
- tags: ['autodocs'],
11
- argTypes: {}
12
- };
13
- export default meta;
14
- var BasicUsageStory = function BasicUsageStory(args) {
15
- var items = Array.from({
16
- length: 4
17
- }).map(function (_, index) {
18
- return {
19
- key: "item".concat(index + 1),
20
- label: "\u804A\u5929\u8BB0\u5F55 ".concat(index + 1),
21
- disabled: index === 3
22
- };
23
- });
24
- return /*#__PURE__*/_jsx("div", {
25
- style: {
26
- backgroundColor: 'rgb(240, 242, 245)',
27
- minHeight: '300px',
28
- minWidth: '700px',
29
- display: 'flex',
30
- alignItems: 'center',
31
- paddingInline: '50px'
32
- },
33
- children: /*#__PURE__*/_jsx(XAiConversations, _objectSpread(_objectSpread({}, args), {}, {
34
- sessionList: items
35
- }))
36
- });
37
- };
38
- export var 基础用法 = {
39
- render: BasicUsageStory,
40
- args: {}
41
- };
42
- //# sourceMappingURL=XAiConversations.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["XAiConversations","jsx","_jsx","meta","title","component","parameters","layout","tags","argTypes","BasicUsageStory","args","items","Array","from","length","map","_","index","key","concat","label","disabled","style","backgroundColor","minHeight","minWidth","display","alignItems","paddingInline","children","_objectSpread","sessionList","基础用法","render"],"sources":["../../../../src/components/XAiConversations/XAiConversations.stories.tsx"],"sourcesContent":["import type { ConversationsProps } from '@ant-design/x';\nimport { type GetProp } from 'antd';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport XAiConversations from '.';\n\nconst meta: Meta<typeof XAiConversations> = {\n title: 'AI组件/XAiConversations 对话记录管理',\n component: XAiConversations,\n parameters: {\n layout: 'centered',\n },\n tags: ['autodocs'],\n argTypes: {\n },\n};\n\nexport default meta;\n type Story = StoryObj<typeof meta>;\n\nconst BasicUsageStory = (args: any) => {\n const items: GetProp<ConversationsProps, 'items'> = Array.from({ length: 4 }).map((_, index) => ({\n key: `item${index + 1}`,\n label: `聊天记录 ${index + 1}`,\n disabled: index === 3,\n }));\n\n return (\n <div style={{\n backgroundColor: 'rgb(240, 242, 245)',\n minHeight: '300px',\n minWidth: '700px',\n display: 'flex',\n alignItems: 'center',\n paddingInline: '50px',\n }}\n >\n <XAiConversations\n {...args}\n sessionList={items}\n />\n </div>\n );\n};\n\nexport const 基础用法: Story = {\n render: BasicUsageStory,\n args: {\n },\n};\n"],"mappings":";AAGA,OAAOA,gBAAgB,MAAM,GAAG;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEjC,IAAMC,IAAmC,GAAG;EAC1CC,KAAK,EAAE,8BAA8B;EACrCC,SAAS,EAAEL,gBAAgB;EAC3BM,UAAU,EAAE;IACVC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE,CAAC,UAAU,CAAC;EAClBC,QAAQ,EAAE,CACV;AACF,CAAC;AAED,eAAeN,IAAI;AAGnB,IAAMO,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,IAAS,EAAK;EACrC,IAAMC,KAA2C,GAAGC,KAAK,CAACC,IAAI,CAAC;IAAEC,MAAM,EAAE;EAAE,CAAC,CAAC,CAACC,GAAG,CAAC,UAACC,CAAC,EAAEC,KAAK;IAAA,OAAM;MAC/FC,GAAG,SAAAC,MAAA,CAASF,KAAK,GAAG,CAAC,CAAE;MACvBG,KAAK,8BAAAD,MAAA,CAAUF,KAAK,GAAG,CAAC,CAAE;MAC1BI,QAAQ,EAAEJ,KAAK,KAAK;IACtB,CAAC;EAAA,CAAC,CAAC;EAEH,oBACEhB,IAAA;IAAKqB,KAAK,EAAE;MACVC,eAAe,EAAE,oBAAoB;MACrCC,SAAS,EAAE,OAAO;MAClBC,QAAQ,EAAE,OAAO;MACjBC,OAAO,EAAE,MAAM;MACfC,UAAU,EAAE,QAAQ;MACpBC,aAAa,EAAE;IACjB,CAAE;IAAAC,QAAA,eAEA5B,IAAA,CAACF,gBAAgB,EAAA+B,aAAA,CAAAA,aAAA,KACXpB,IAAI;MACRqB,WAAW,EAAEpB;IAAM,EACpB;EAAC,CACC,CAAC;AAEV,CAAC;AAED,OAAO,IAAMqB,IAAW,GAAG;EACzBC,MAAM,EAAExB,eAAe;EACvBC,IAAI,EAAE,CACN;AACF,CAAC"}
@@ -1,8 +0,0 @@
1
- import type { Meta, StoryObj } from "@storybook/react-vite";
2
- import XAiProvider from "./index";
3
- declare const meta: Meta<typeof XAiProvider>;
4
- export default meta;
5
- type Story = StoryObj<typeof meta>;
6
- export declare const 单聊天窗口实例: Story;
7
- export declare const 多容器示例: Story;
8
- export declare const 携带历史记录示例: Story;
@@ -1,208 +0,0 @@
1
- import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
- import React from "react";
3
- import { Button } from "antd";
4
- import XAiProvider from "./index";
5
- import XAiChatbot from "../XAiChatbot";
6
- import XAiConversations from "../XAiConversations";
7
- import { jsx as _jsx } from "react/jsx-runtime";
8
- import { jsxs as _jsxs } from "react/jsx-runtime";
9
- var meta = {
10
- title: "AI组件/XAiProvider AI容器【下线】",
11
- component: XAiProvider,
12
- parameters: {
13
- layout: "centered",
14
- docs: {
15
- description: {
16
- component: "AI 聊天机器人容器组件,提供全局上下文和消息管理功能。"
17
- }
18
- }
19
- },
20
- tags: ["autodocs"],
21
- argTypes: {
22
- config: {
23
- description: "配置信息",
24
- table: {
25
- type: {
26
- summary: "XAiProviderConfig",
27
- detail: "{\n appNo?: string; // \u5E94\u7528\u552F\u4E00\u7F16\u53F7\n }"
28
- },
29
- category: "配置选项"
30
- }
31
- }
32
- },
33
- // 添加装饰器,确保组件有必要的上下文
34
- decorators: [function (Story) {
35
- return /*#__PURE__*/_jsx("div", {
36
- style: {
37
- padding: "20px"
38
- },
39
- children: /*#__PURE__*/_jsx(Story, {})
40
- });
41
- }]
42
- };
43
- export default meta;
44
- // 使用 Provider 的 XAiChatbot
45
- export var 单聊天窗口实例 = {
46
- render: function render(args) {
47
- var providerRef = React.useRef(null);
48
- var handleSendMessage = function handleSendMessage() {
49
- var _providerRef$current;
50
- if ((_providerRef$current = providerRef.current) !== null && _providerRef$current !== void 0 && _providerRef$current.chat) {
51
- providerRef.current.chat({
52
- text: "你好,AI!"
53
- });
54
- } else {
55
- console.log("XAiProvider ref 未准备好或 chat 方法不存在");
56
- }
57
- };
58
- return /*#__PURE__*/_jsxs("div", {
59
- style: {
60
- display: "flex"
61
- },
62
- children: [/*#__PURE__*/_jsx("div", {
63
- style: {
64
- display: "flex",
65
- flexDirection: "column",
66
- gap: "12px",
67
- marginRight: "24px",
68
- justifyContent: "center"
69
- },
70
- children: /*#__PURE__*/_jsx(Button, {
71
- type: "primary",
72
- onClick: handleSendMessage,
73
- children: "\u53D1\u9001\u6D88\u606F"
74
- })
75
- }), /*#__PURE__*/_jsx("div", {
76
- style: {
77
- maxWidth: "800px",
78
- height: "600px"
79
- },
80
- children: /*#__PURE__*/_jsx(XAiProvider, _objectSpread(_objectSpread({
81
- ref: providerRef
82
- }, args), {}, {
83
- onError: function onError(providerError) {
84
- return console.log(providerError);
85
- },
86
- onMessage: function onMessage(data) {
87
- return console.log(data);
88
- },
89
- children: /*#__PURE__*/_jsx(XAiChatbot, {
90
- navbarShow: true,
91
- navbar: {
92
- title: "Provider 聊天机器人",
93
- subtitle: "由 Provider 管理消息",
94
- avatar: "https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg"
95
- }
96
- })
97
- }))
98
- })]
99
- });
100
- },
101
- args: {
102
- url: "https://m-poc-dev.zaxline.com",
103
- token: "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiVjRTT0htSm8zWmVhNFJOdWc3WFgyQT09Iiwic2NvcGUiOlsiZ2JWemZPVjhTa1oxdGRMT3BYNWZyVXpMIl0sImV4cCI6MTc2NDY3MTc2MSwianRpIjoiRl9Zb0JBXzhIN01XempDZUxQenEzNTBXRnNrIiwiY2xpZW50X2lkIjoiZ2JWemZPVjhTa1oxdGRMT3BYNWZyVXpMIn0.mtGBQfwNtIkhcOumsOvzMj2BdYUxAPwZ9GcvNLuCNGVzFkqkLkfy_LALjYR2B-RaNj11_Cx7DcewtmLceG31KfnCiFY24BD_CbwoahdFh40SYRTFnjDf8XQI22E63h5NxTuldPx0itYLUPaUO6NAubnRON40eQPGZKygM0i72ULsQQAyRpJLYAaTjUxyPIW3JmMzQmYiRx641JeAYAup4-ZNw-Fqmd-8_xK3kN-a832xM-M_eqXgn8yMttn0uFv95lxPdJ1_-mp2zx8N4TBCYVkHo3u_PjM65S3_p4u1dFGXBDAsxtVMgmVGeUvubTLFuDM153rz9MZ7aOuu_c8K7w",
104
- config: {
105
- appNo: "PGlA63A1Gt9oZpxa6YCWMciH"
106
- },
107
- providerId: "demo-provider"
108
- }
109
- };
110
-
111
- // 多个 Provider 示例
112
- export var 多容器示例 = {
113
- render: function render(args) {
114
- return /*#__PURE__*/_jsxs("div", {
115
- style: {
116
- display: "flex",
117
- gap: "20px"
118
- },
119
- children: [/*#__PURE__*/_jsx("div", {
120
- style: {
121
- width: "400px",
122
- height: "600px"
123
- },
124
- children: /*#__PURE__*/_jsx(XAiProvider, _objectSpread(_objectSpread({}, args), {}, {
125
- providerId: "provider-1",
126
- children: /*#__PURE__*/_jsx(XAiChatbot, {
127
- navbarShow: true,
128
- navbar: {
129
- title: "Provider 1",
130
- subtitle: "第一个聊天机器人",
131
- avatar: "https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg"
132
- }
133
- })
134
- }))
135
- }), /*#__PURE__*/_jsx("div", {
136
- style: {
137
- width: "400px",
138
- height: "600px"
139
- },
140
- children: /*#__PURE__*/_jsx(XAiProvider, _objectSpread(_objectSpread({}, args), {}, {
141
- providerId: "provider-2",
142
- children: /*#__PURE__*/_jsx(XAiChatbot, {
143
- navbarShow: true,
144
- navbar: {
145
- title: "Provider 2",
146
- subtitle: "第二个聊天机器人",
147
- avatar: "https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg"
148
- }
149
- })
150
- }))
151
- })]
152
- });
153
- },
154
- args: {
155
- url: "https://api.example.com/ai",
156
- token: "your-token-here"
157
- }
158
- };
159
-
160
- // 使用 Provider 的 XAiChatbot
161
- export var 携带历史记录示例 = {
162
- render: function render(args) {
163
- var providerRef = React.useRef(null);
164
- return /*#__PURE__*/_jsx("div", {
165
- style: {
166
- width: "1080px",
167
- height: "600px",
168
- overflow: "hidden"
169
- },
170
- children: /*#__PURE__*/_jsxs(XAiProvider, _objectSpread(_objectSpread({
171
- ref: providerRef
172
- }, args), {}, {
173
- onError: function onError(providerError) {
174
- return console.log(providerError);
175
- },
176
- onMessage: function onMessage(data) {
177
- return console.log(data);
178
- },
179
- children: [/*#__PURE__*/_jsx(XAiConversations, {}), /*#__PURE__*/_jsx("div", {
180
- style: {
181
- flex: 1,
182
- display: "flex",
183
- justifyContent: "center"
184
- },
185
- children: /*#__PURE__*/_jsx(XAiChatbot, {
186
- navbar: {
187
- title: "Provider 聊天机器人",
188
- subtitle: "由 Provider 管理消息",
189
- avatar: "https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg"
190
- }
191
- })
192
- })]
193
- }))
194
- });
195
- },
196
- args: {
197
- url: "https://m-poc.zaxline.com",
198
- token: "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiU0tUYkp6MDE5bWFVdnFqcC9OUGJEQT09Iiwic2NvcGUiOlsiMGhic2RXYkZVYktZRXkxMEsxNDM3WFhtIl0sImV4cCI6MTc2OTE2MzE5MCwianRpIjoiV1B4QTJrTzB0dlV5eW84MWdxSVlldlZRWUFRIiwiY2xpZW50X2lkIjoiMGhic2RXYkZVYktZRXkxMEsxNDM3WFhtIn0.f8tEHi-1Gokv09ce2YjO17yD4SL-KFNCiyFmVOLMvHnHltDh9g2BsxSEB9IreaEvqT70-nl9qgWjb8V2As9QTBNPvfdStXmvc1X4HYsWPDdX0YeLWBAgJ0clJufL62SzwRLNb-torvuLvQfqohF3Aqr7QUXt2x_ZOUA1G5jkG8K9_FZPYBBfUMf6JV8CejogqCSe-yjIKPhbh9dDcCGO6ibexTT1x8C1f2LwP-sMyYmPOIdEqelmzk5-m32yy2fINKz9zG8NWMRx8G4Sr1l-pZzxSGOQ3v6EKUe3M_I-W3pZc6G9gzIXb2Wq_lE7q_l91ee5dU8ex1To8X_PtFd8_g",
199
- config: {
200
- appNo: "0hbsdWbFUbKYEy10K1437XXm",
201
- chatProps: {
202
- clearBtnShow: false
203
- }
204
- },
205
- providerId: "demo-provider"
206
- }
207
- };
208
- //# sourceMappingURL=XAiProvider.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","Button","XAiProvider","XAiChatbot","XAiConversations","jsx","_jsx","jsxs","_jsxs","meta","title","component","parameters","layout","docs","description","tags","argTypes","config","table","type","summary","detail","category","decorators","Story","style","padding","children","单聊天窗口实例","render","args","providerRef","useRef","handleSendMessage","_providerRef$current","current","chat","text","console","log","display","flexDirection","gap","marginRight","justifyContent","onClick","maxWidth","height","_objectSpread","ref","onError","providerError","onMessage","data","navbarShow","navbar","subtitle","avatar","url","token","appNo","providerId","多容器示例","width","携带历史记录示例","overflow","flex","chatProps","clearBtnShow"],"sources":["../../../../src/components/XAiProvider/XAiProvider.stories.tsx"],"sourcesContent":["import React from \"react\";\nimport type { Meta, StoryObj } from \"@storybook/react-vite\";\nimport { Button } from \"antd\";\nimport XAiProvider from \"./index\";\nimport XAiChatbot from \"../XAiChatbot\";\nimport XAiConversations from \"../XAiConversations\";\n\nconst meta: Meta<typeof XAiProvider> = {\n title: \"AI组件/XAiProvider AI容器【下线】\",\n component: XAiProvider,\n parameters: {\n layout: \"centered\",\n docs: {\n description: {\n component: \"AI 聊天机器人容器组件,提供全局上下文和消息管理功能。\",\n },\n },\n },\n tags: [\"autodocs\"],\n argTypes: {\n config: {\n description: \"配置信息\",\n table: {\n type: {\n summary: \"XAiProviderConfig\",\n detail: `{\n appNo?: string; // 应用唯一编号\n }`,\n },\n category: \"配置选项\",\n },\n },\n },\n // 添加装饰器,确保组件有必要的上下文\n decorators: [\n (Story) => (\n <div style={{ padding: \"20px\" }}>\n <Story />\n </div>\n ),\n ],\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// 使用 Provider 的 XAiChatbot\nexport const 单聊天窗口实例: Story = {\n render: (args) => {\n const providerRef = React.useRef<any>(null);\n\n const handleSendMessage = () => {\n if (providerRef.current?.chat) {\n providerRef.current.chat({ text: \"你好,AI!\" });\n } else {\n console.log(\"XAiProvider ref 未准备好或 chat 方法不存在\");\n }\n };\n\n return (\n <div style={{ display: \"flex\" }}>\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"12px\",\n marginRight: \"24px\",\n justifyContent: \"center\",\n }}\n >\n <Button type=\"primary\" onClick={handleSendMessage}>\n 发送消息\n </Button>\n </div>\n <div style={{ maxWidth: \"800px\", height: \"600px\" }}>\n <XAiProvider\n ref={providerRef}\n {...args}\n onError={(providerError) => console.log(providerError)}\n onMessage={(data) => console.log(data)}\n >\n <XAiChatbot\n navbarShow\n navbar={{\n title: \"Provider 聊天机器人\",\n subtitle: \"由 Provider 管理消息\",\n avatar:\n \"https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg\",\n }}\n />\n </XAiProvider>\n </div>\n </div>\n );\n },\n args: {\n url: \"https://m-poc-dev.zaxline.com\",\n token:\n \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiVjRTT0htSm8zWmVhNFJOdWc3WFgyQT09Iiwic2NvcGUiOlsiZ2JWemZPVjhTa1oxdGRMT3BYNWZyVXpMIl0sImV4cCI6MTc2NDY3MTc2MSwianRpIjoiRl9Zb0JBXzhIN01XempDZUxQenEzNTBXRnNrIiwiY2xpZW50X2lkIjoiZ2JWemZPVjhTa1oxdGRMT3BYNWZyVXpMIn0.mtGBQfwNtIkhcOumsOvzMj2BdYUxAPwZ9GcvNLuCNGVzFkqkLkfy_LALjYR2B-RaNj11_Cx7DcewtmLceG31KfnCiFY24BD_CbwoahdFh40SYRTFnjDf8XQI22E63h5NxTuldPx0itYLUPaUO6NAubnRON40eQPGZKygM0i72ULsQQAyRpJLYAaTjUxyPIW3JmMzQmYiRx641JeAYAup4-ZNw-Fqmd-8_xK3kN-a832xM-M_eqXgn8yMttn0uFv95lxPdJ1_-mp2zx8N4TBCYVkHo3u_PjM65S3_p4u1dFGXBDAsxtVMgmVGeUvubTLFuDM153rz9MZ7aOuu_c8K7w\",\n config: {\n appNo: \"PGlA63A1Gt9oZpxa6YCWMciH\",\n },\n providerId: \"demo-provider\",\n },\n};\n\n// 多个 Provider 示例\nexport const 多容器示例: Story = {\n render: (args) => (\n <div style={{ display: \"flex\", gap: \"20px\" }}>\n <div style={{ width: \"400px\", height: \"600px\" }}>\n <XAiProvider {...args} providerId=\"provider-1\">\n <XAiChatbot\n navbarShow\n navbar={{\n title: \"Provider 1\",\n subtitle: \"第一个聊天机器人\",\n avatar:\n \"https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg\",\n }}\n />\n </XAiProvider>\n </div>\n\n <div style={{ width: \"400px\", height: \"600px\" }}>\n <XAiProvider {...args} providerId=\"provider-2\">\n <XAiChatbot\n navbarShow\n navbar={{\n title: \"Provider 2\",\n subtitle: \"第二个聊天机器人\",\n avatar:\n \"https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg\",\n }}\n />\n </XAiProvider>\n </div>\n </div>\n ),\n args: {\n url: \"https://api.example.com/ai\",\n token: \"your-token-here\",\n },\n};\n\n// 使用 Provider 的 XAiChatbot\nexport const 携带历史记录示例: Story = {\n render: (args) => {\n const providerRef = React.useRef<any>(null);\n\n return (\n <div style={{ width: \"1080px\", height: \"600px\", overflow: \"hidden\" }}>\n <XAiProvider\n ref={providerRef}\n {...args}\n onError={(providerError) => console.log(providerError)}\n onMessage={(data) => console.log(data)}\n >\n <XAiConversations />\n <div style={{ flex: 1, display: \"flex\", justifyContent: \"center\" }}>\n <XAiChatbot\n navbar={{\n title: \"Provider 聊天机器人\",\n subtitle: \"由 Provider 管理消息\",\n avatar:\n \"https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg\",\n }}\n />\n </div>\n </XAiProvider>\n </div>\n );\n },\n args: {\n url: \"https://m-poc.zaxline.com\",\n token:\n \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiU0tUYkp6MDE5bWFVdnFqcC9OUGJEQT09Iiwic2NvcGUiOlsiMGhic2RXYkZVYktZRXkxMEsxNDM3WFhtIl0sImV4cCI6MTc2OTE2MzE5MCwianRpIjoiV1B4QTJrTzB0dlV5eW84MWdxSVlldlZRWUFRIiwiY2xpZW50X2lkIjoiMGhic2RXYkZVYktZRXkxMEsxNDM3WFhtIn0.f8tEHi-1Gokv09ce2YjO17yD4SL-KFNCiyFmVOLMvHnHltDh9g2BsxSEB9IreaEvqT70-nl9qgWjb8V2As9QTBNPvfdStXmvc1X4HYsWPDdX0YeLWBAgJ0clJufL62SzwRLNb-torvuLvQfqohF3Aqr7QUXt2x_ZOUA1G5jkG8K9_FZPYBBfUMf6JV8CejogqCSe-yjIKPhbh9dDcCGO6ibexTT1x8C1f2LwP-sMyYmPOIdEqelmzk5-m32yy2fINKz9zG8NWMRx8G4Sr1l-pZzxSGOQ3v6EKUe3M_I-W3pZc6G9gzIXb2Wq_lE7q_l91ee5dU8ex1To8X_PtFd8_g\",\n config: {\n appNo: \"0hbsdWbFUbKYEy10K1437XXm\",\n chatProps: {\n clearBtnShow: false,\n },\n },\n providerId: \"demo-provider\",\n },\n};\n"],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import type { Meta, StoryObj } from "@storybook/react-vite";
2
- import XAiSender from ".";
3
- declare const meta: Meta<typeof XAiSender>;
4
- export default meta;
5
- type Story = StoryObj<typeof meta>;
6
- export declare const 基础用法: Story;
@@ -1,87 +0,0 @@
1
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
- import React, { useState } from "react";
3
- import XAiSender from ".";
4
- import { jsx as _jsx } from "react/jsx-runtime";
5
- var meta = {
6
- title: "AI组件/XAiSender 输入框【下线】",
7
- component: XAiSender,
8
- parameters: {
9
- layout: "centered"
10
- },
11
- tags: ["autodocs"],
12
- argTypes: {}
13
- };
14
- export default meta;
15
- // 基础用法
16
- var BasicUsageStory = function BasicUsageStory() {
17
- var _useState = useState([]),
18
- _useState2 = _slicedToArray(_useState, 2),
19
- files = _useState2[0],
20
- setFiles = _useState2[1];
21
- var _useState3 = useState(""),
22
- _useState4 = _slicedToArray(_useState3, 2),
23
- content = _useState4[0],
24
- setContent = _useState4[1];
25
- var _useState5 = useState(false),
26
- _useState6 = _slicedToArray(_useState5, 2),
27
- loading = _useState6[0],
28
- setLoading = _useState6[1];
29
-
30
- // 模拟清空数据
31
- var handleClear = function handleClear() {
32
- console.info("clear");
33
- };
34
-
35
- // 模拟输入
36
- var handleChange = function handleChange(text) {
37
- setContent(text);
38
- };
39
-
40
- // 模拟快捷短语点击
41
- var handleSendMessage = function handleSendMessage(obj) {
42
- console.log(obj);
43
- setLoading(true);
44
- setTimeout(function () {
45
- setContent("");
46
- setFiles([]);
47
- setLoading(false);
48
- }, 2000);
49
- };
50
- return /*#__PURE__*/_jsx("div", {
51
- style: {
52
- width: 440,
53
- border: "1px solid #eee",
54
- padding: 20
55
- },
56
- children: /*#__PURE__*/_jsx(XAiSender, {
57
- loading: loading,
58
- value: content,
59
- enableUpload: true,
60
- files: files,
61
- clearBtnShow: true,
62
- onChangeFiles: setFiles,
63
- uploadRequest: function uploadRequest(_ref) {
64
- var file = _ref.file,
65
- onProgress = _ref.onProgress,
66
- onSuccess = _ref.onSuccess;
67
- console.info(file);
68
- onProgress === null || onProgress === void 0 || onProgress({
69
- percent: 50
70
- });
71
- setTimeout(function () {
72
- onSuccess === null || onSuccess === void 0 || onSuccess({});
73
- }, 1000);
74
- },
75
- onClear: handleClear,
76
- onChange: handleChange,
77
- onSubmit: handleSendMessage,
78
- onStop: handleClear,
79
- footerTips: "\u5185\u5BB9\u7531AI\u751F\u6210\uFF0C\u65E0\u6CD5\u786E\u4FDD\u771F\u5B9E\u51C6\u786E\uFF0C\u4EC5\u4F9B\u53C2\u8003"
80
- })
81
- });
82
- };
83
- export var 基础用法 = {
84
- render: BasicUsageStory,
85
- args: {}
86
- };
87
- //# sourceMappingURL=XAiSender.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","useState","XAiSender","jsx","_jsx","meta","title","component","parameters","layout","tags","argTypes","BasicUsageStory","_useState","_useState2","_slicedToArray","files","setFiles","_useState3","_useState4","content","setContent","_useState5","_useState6","loading","setLoading","handleClear","console","info","handleChange","text","handleSendMessage","obj","log","setTimeout","style","width","border","padding","children","value","enableUpload","clearBtnShow","onChangeFiles","uploadRequest","_ref","file","onProgress","onSuccess","percent","onClear","onChange","onSubmit","onStop","footerTips","基础用法","render","args"],"sources":["../../../../src/components/XAiSender/XAiSender.stories.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport type { Meta, StoryObj } from \"@storybook/react-vite\";\nimport type { Attachment } from \"@ant-design/x/es/attachments\";\nimport XAiSender from \".\";\n\nconst meta: Meta<typeof XAiSender> = {\n title: \"AI组件/XAiSender 输入框【下线】\",\n component: XAiSender,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n argTypes: {},\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// 基础用法\nconst BasicUsageStory = () => {\n const [files, setFiles] = useState<Attachment[]>([]);\n const [content, setContent] = useState(\"\");\n const [loading, setLoading] = useState(false);\n\n // 模拟清空数据\n const handleClear = () => {\n console.info(\"clear\");\n };\n\n // 模拟输入\n const handleChange = (text: string) => {\n setContent(text);\n };\n\n // 模拟快捷短语点击\n const handleSendMessage = (obj: any) => {\n console.log(obj);\n setLoading(true);\n setTimeout(() => {\n setContent(\"\");\n setFiles([]);\n setLoading(false);\n }, 2000);\n };\n\n return (\n <div style={{ width: 440, border: \"1px solid #eee\", padding: 20 }}>\n <XAiSender\n loading={loading}\n value={content}\n enableUpload\n files={files}\n clearBtnShow={true}\n onChangeFiles={setFiles}\n uploadRequest={({ file, onProgress, onSuccess }) => {\n console.info(file);\n onProgress?.({\n percent: 50,\n });\n setTimeout(() => {\n onSuccess?.({});\n }, 1000);\n }}\n onClear={handleClear}\n onChange={handleChange}\n onSubmit={handleSendMessage}\n onStop={handleClear}\n footerTips=\"内容由AI生成,无法确保真实准确,仅供参考\"\n />\n </div>\n );\n};\n\nexport const 基础用法: Story = {\n render: BasicUsageStory,\n args: {},\n};\n"],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import type { Meta, StoryObj } from "@storybook/react-vite";
2
- import XAiThoughtChain from ".";
3
- declare const meta: Meta<typeof XAiThoughtChain>;
4
- export default meta;
5
- type Story = StoryObj<typeof meta>;
6
- export declare const 基础用法: Story;