@ai-group/chat-sdk 3.0.9 → 3.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/FileGallery/index.js +10 -9
- package/dist/cjs/components/FileGallery/index.js.map +2 -2
- package/dist/cjs/components/FileGallery/styles.js +1 -0
- package/dist/cjs/components/FileGallery/styles.js.map +2 -2
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.d.ts +3 -0
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js +74 -2
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js.map +3 -3
- package/dist/cjs/components/XAdkChatbot/index.js +10 -7
- package/dist/cjs/components/XAdkChatbot/index.js.map +2 -2
- package/dist/cjs/types/FileGallery.d.ts +2 -0
- package/dist/cjs/types/FileGallery.js.map +1 -1
- package/dist/cjs/types/XAdkChatbot.d.ts +3 -0
- package/dist/cjs/types/XAdkChatbot.js.map +1 -1
- package/dist/esm/components/FileGallery/index.js +19 -7
- package/dist/esm/components/FileGallery/index.js.map +1 -1
- package/dist/esm/components/FileGallery/styles.js +1 -1
- package/dist/esm/components/FileGallery/styles.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.d.ts +3 -0
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js +81 -2
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/index.js +14 -8
- package/dist/esm/components/XAdkChatbot/index.js.map +1 -1
- package/dist/esm/types/FileGallery.d.ts +2 -0
- package/dist/esm/types/FileGallery.js.map +1 -1
- package/dist/esm/types/XAdkChatbot.d.ts +3 -0
- package/dist/esm/types/XAdkChatbot.js.map +1 -1
- package/dist/umd/chat-sdk.min.js +1 -1
- package/package.json +2 -3
- package/dist/cjs/components/FileGallery/FileGallery.stories.d.ts +0 -6
- package/dist/cjs/components/FileGallery/FileGallery.stories.js +0 -143
- package/dist/cjs/components/FileGallery/FileGallery.stories.js.map +0 -7
- package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.d.ts +0 -13
- package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.js +0 -633
- package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.js.map +0 -7
- package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.d.ts +0 -10
- package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.js +0 -394
- package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.js.map +0 -7
- package/dist/cjs/components/XAdkSender/XAdkSender.stories.d.ts +0 -6
- package/dist/cjs/components/XAdkSender/XAdkSender.stories.js +0 -121
- package/dist/cjs/components/XAdkSender/XAdkSender.stories.js.map +0 -7
- package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.d.ts +0 -10
- package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js +0 -773
- package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js.map +0 -7
- package/dist/cjs/components/XAiConversations/XAiConversations.stories.d.ts +0 -6
- package/dist/cjs/components/XAiConversations/XAiConversations.stories.js +0 -83
- package/dist/cjs/components/XAiConversations/XAiConversations.stories.js.map +0 -7
- package/dist/cjs/components/XAiProvider/XAiProvider.stories.d.ts +0 -8
- package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +0 -206
- package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +0 -7
- package/dist/cjs/components/XAiSender/XAiSender.stories.d.ts +0 -6
- package/dist/cjs/components/XAiSender/XAiSender.stories.js +0 -102
- package/dist/cjs/components/XAiSender/XAiSender.stories.js.map +0 -7
- package/dist/cjs/components/XAiThoughtChain/XAiThoughtChain.stories.d.ts +0 -6
- package/dist/cjs/components/XAiThoughtChain/XAiThoughtChain.stories.js +0 -180
- package/dist/cjs/components/XAiThoughtChain/XAiThoughtChain.stories.js.map +0 -7
- package/dist/esm/components/FileGallery/FileGallery.stories.d.ts +0 -6
- package/dist/esm/components/FileGallery/FileGallery.stories.js +0 -48
- package/dist/esm/components/FileGallery/FileGallery.stories.js.map +0 -1
- package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.d.ts +0 -13
- package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js +0 -510
- package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js.map +0 -1
- package/dist/esm/components/XAdkProvider/XAdkProvider.stories.d.ts +0 -10
- package/dist/esm/components/XAdkProvider/XAdkProvider.stories.js +0 -338
- package/dist/esm/components/XAdkProvider/XAdkProvider.stories.js.map +0 -1
- package/dist/esm/components/XAdkSender/XAdkSender.stories.d.ts +0 -6
- package/dist/esm/components/XAdkSender/XAdkSender.stories.js +0 -128
- package/dist/esm/components/XAdkSender/XAdkSender.stories.js.map +0 -1
- package/dist/esm/components/XAiChatbot/XAiChatbot.stories.d.ts +0 -10
- package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js +0 -636
- package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js.map +0 -1
- package/dist/esm/components/XAiConversations/XAiConversations.stories.d.ts +0 -6
- package/dist/esm/components/XAiConversations/XAiConversations.stories.js +0 -42
- package/dist/esm/components/XAiConversations/XAiConversations.stories.js.map +0 -1
- package/dist/esm/components/XAiProvider/XAiProvider.stories.d.ts +0 -8
- package/dist/esm/components/XAiProvider/XAiProvider.stories.js +0 -208
- package/dist/esm/components/XAiProvider/XAiProvider.stories.js.map +0 -1
- package/dist/esm/components/XAiSender/XAiSender.stories.d.ts +0 -6
- package/dist/esm/components/XAiSender/XAiSender.stories.js +0 -87
- package/dist/esm/components/XAiSender/XAiSender.stories.js.map +0 -1
- package/dist/esm/components/XAiThoughtChain/XAiThoughtChain.stories.d.ts +0 -6
- package/dist/esm/components/XAiThoughtChain/XAiThoughtChain.stories.js +0 -159
- 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,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,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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"}
|