@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.
- package/dist/cjs/components/FileGallery/index.js +7 -5
- package/dist/cjs/components/FileGallery/index.js.map +2 -2
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js +34 -26
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js.map +2 -2
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.js +1 -1
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.js.map +1 -1
- 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 +12 -5
- package/dist/esm/components/FileGallery/index.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js +3 -0
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.js +1 -1
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/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,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/components/XAiChatbot/XAiChatbot.stories.tsx"],
|
|
4
|
-
"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"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["XAiChatbot", "documentIcon", "XAiProvider", "_a"]
|
|
7
|
-
}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
var __create = Object.create;
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
-
for (let key of __getOwnPropNames(from))
|
|
14
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
-
}
|
|
17
|
-
return to;
|
|
18
|
-
};
|
|
19
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
-
mod
|
|
26
|
-
));
|
|
27
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
-
|
|
29
|
-
// src/components/XAiConversations/XAiConversations.stories.tsx
|
|
30
|
-
var XAiConversations_stories_exports = {};
|
|
31
|
-
__export(XAiConversations_stories_exports, {
|
|
32
|
-
default: () => XAiConversations_stories_default,
|
|
33
|
-
基础用法: () => 基础用法
|
|
34
|
-
});
|
|
35
|
-
module.exports = __toCommonJS(XAiConversations_stories_exports);
|
|
36
|
-
var import__ = __toESM(require("."));
|
|
37
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
38
|
-
var meta = {
|
|
39
|
-
title: "AI组件/XAiConversations 对话记录管理",
|
|
40
|
-
component: import__.default,
|
|
41
|
-
parameters: {
|
|
42
|
-
layout: "centered"
|
|
43
|
-
},
|
|
44
|
-
tags: ["autodocs"],
|
|
45
|
-
argTypes: {}
|
|
46
|
-
};
|
|
47
|
-
var XAiConversations_stories_default = meta;
|
|
48
|
-
var BasicUsageStory = (args) => {
|
|
49
|
-
const items = Array.from({ length: 4 }).map((_, index) => ({
|
|
50
|
-
key: `item${index + 1}`,
|
|
51
|
-
label: `聊天记录 ${index + 1}`,
|
|
52
|
-
disabled: index === 3
|
|
53
|
-
}));
|
|
54
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
55
|
-
"div",
|
|
56
|
-
{
|
|
57
|
-
style: {
|
|
58
|
-
backgroundColor: "rgb(240, 242, 245)",
|
|
59
|
-
minHeight: "300px",
|
|
60
|
-
minWidth: "700px",
|
|
61
|
-
display: "flex",
|
|
62
|
-
alignItems: "center",
|
|
63
|
-
paddingInline: "50px"
|
|
64
|
-
},
|
|
65
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
66
|
-
import__.default,
|
|
67
|
-
{
|
|
68
|
-
...args,
|
|
69
|
-
sessionList: items
|
|
70
|
-
}
|
|
71
|
-
)
|
|
72
|
-
}
|
|
73
|
-
);
|
|
74
|
-
};
|
|
75
|
-
var 基础用法 = {
|
|
76
|
-
render: BasicUsageStory,
|
|
77
|
-
args: {}
|
|
78
|
-
};
|
|
79
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
80
|
-
0 && (module.exports = {
|
|
81
|
-
基础用法
|
|
82
|
-
});
|
|
83
|
-
//# sourceMappingURL=XAiConversations.stories.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/components/XAiConversations/XAiConversations.stories.tsx"],
|
|
4
|
-
"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"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,eAA6B;AAiCvB;AA/BN,IAAM,OAAsC;AAAA,EAC1C,OAAO;AAAA,EACP,WAAW,SAAAA;AAAA,EACX,YAAY;AAAA,IACV,QAAQ;AAAA,EACV;AAAA,EACA,MAAM,CAAC,UAAU;AAAA,EACjB,UAAU,CACV;AACF;AAEA,IAAO,mCAAQ;AAGf,IAAM,kBAAkB,CAAC,SAAc;AACrC,QAAM,QAA8C,MAAM,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,WAAW;AAAA,IAC/F,KAAK,OAAO,QAAQ;AAAA,IACpB,OAAO,QAAQ,QAAQ;AAAA,IACvB,UAAU,UAAU;AAAA,EACtB,EAAE;AAEF,SACE;AAAA,IAAC;AAAA;AAAA,MAAI,OAAO;AAAA,QACV,iBAAiB;AAAA,QACjB,WAAW;AAAA,QACX,UAAU;AAAA,QACV,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,eAAe;AAAA,MACjB;AAAA,MAEE;AAAA,QAAC,SAAAA;AAAA,QAAA;AAAA,UACE,GAAG;AAAA,UACJ,aAAa;AAAA;AAAA,MACf;AAAA;AAAA,EACF;AAEJ;AAEO,IAAM,OAAc;AAAA,EACzB,QAAQ;AAAA,EACR,MAAM,CACN;AACF;",
|
|
6
|
-
"names": ["XAiConversations"]
|
|
7
|
-
}
|
|
@@ -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,206 +0,0 @@
|
|
|
1
|
-
var __create = Object.create;
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
-
for (let key of __getOwnPropNames(from))
|
|
14
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
-
}
|
|
17
|
-
return to;
|
|
18
|
-
};
|
|
19
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
-
mod
|
|
26
|
-
));
|
|
27
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
-
|
|
29
|
-
// src/components/XAiProvider/XAiProvider.stories.tsx
|
|
30
|
-
var XAiProvider_stories_exports = {};
|
|
31
|
-
__export(XAiProvider_stories_exports, {
|
|
32
|
-
default: () => XAiProvider_stories_default,
|
|
33
|
-
单聊天窗口实例: () => 单聊天窗口实例,
|
|
34
|
-
多容器示例: () => 多容器示例,
|
|
35
|
-
携带历史记录示例: () => 携带历史记录示例
|
|
36
|
-
});
|
|
37
|
-
module.exports = __toCommonJS(XAiProvider_stories_exports);
|
|
38
|
-
var import_react = __toESM(require("react"));
|
|
39
|
-
var import_antd = require("antd");
|
|
40
|
-
var import_index = __toESM(require("./index"));
|
|
41
|
-
var import_XAiChatbot = __toESM(require("../XAiChatbot"));
|
|
42
|
-
var import_XAiConversations = __toESM(require("../XAiConversations"));
|
|
43
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
44
|
-
var meta = {
|
|
45
|
-
title: "AI组件/XAiProvider AI容器【下线】",
|
|
46
|
-
component: import_index.default,
|
|
47
|
-
parameters: {
|
|
48
|
-
layout: "centered",
|
|
49
|
-
docs: {
|
|
50
|
-
description: {
|
|
51
|
-
component: "AI 聊天机器人容器组件,提供全局上下文和消息管理功能。"
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
},
|
|
55
|
-
tags: ["autodocs"],
|
|
56
|
-
argTypes: {
|
|
57
|
-
config: {
|
|
58
|
-
description: "配置信息",
|
|
59
|
-
table: {
|
|
60
|
-
type: {
|
|
61
|
-
summary: "XAiProviderConfig",
|
|
62
|
-
detail: `{
|
|
63
|
-
appNo?: string; // 应用唯一编号
|
|
64
|
-
}`
|
|
65
|
-
},
|
|
66
|
-
category: "配置选项"
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
|
-
// 添加装饰器,确保组件有必要的上下文
|
|
71
|
-
decorators: [
|
|
72
|
-
(Story) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { padding: "20px" }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Story, {}) })
|
|
73
|
-
]
|
|
74
|
-
};
|
|
75
|
-
var XAiProvider_stories_default = meta;
|
|
76
|
-
var 单聊天窗口实例 = {
|
|
77
|
-
render: (args) => {
|
|
78
|
-
const providerRef = import_react.default.useRef(null);
|
|
79
|
-
const handleSendMessage = () => {
|
|
80
|
-
var _a;
|
|
81
|
-
if ((_a = providerRef.current) == null ? void 0 : _a.chat) {
|
|
82
|
-
providerRef.current.chat({ text: "你好,AI!" });
|
|
83
|
-
} else {
|
|
84
|
-
console.log("XAiProvider ref 未准备好或 chat 方法不存在");
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex" }, children: [
|
|
88
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
89
|
-
"div",
|
|
90
|
-
{
|
|
91
|
-
style: {
|
|
92
|
-
display: "flex",
|
|
93
|
-
flexDirection: "column",
|
|
94
|
-
gap: "12px",
|
|
95
|
-
marginRight: "24px",
|
|
96
|
-
justifyContent: "center"
|
|
97
|
-
},
|
|
98
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_antd.Button, { type: "primary", onClick: handleSendMessage, children: "发送消息" })
|
|
99
|
-
}
|
|
100
|
-
),
|
|
101
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { maxWidth: "800px", height: "600px" }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
102
|
-
import_index.default,
|
|
103
|
-
{
|
|
104
|
-
ref: providerRef,
|
|
105
|
-
...args,
|
|
106
|
-
onError: (providerError) => console.log(providerError),
|
|
107
|
-
onMessage: (data) => console.log(data),
|
|
108
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
109
|
-
import_XAiChatbot.default,
|
|
110
|
-
{
|
|
111
|
-
navbarShow: true,
|
|
112
|
-
navbar: {
|
|
113
|
-
title: "Provider 聊天机器人",
|
|
114
|
-
subtitle: "由 Provider 管理消息",
|
|
115
|
-
avatar: "https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg"
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
)
|
|
119
|
-
}
|
|
120
|
-
) })
|
|
121
|
-
] });
|
|
122
|
-
},
|
|
123
|
-
args: {
|
|
124
|
-
url: "https://m-poc-dev.zaxline.com",
|
|
125
|
-
token: "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiVjRTT0htSm8zWmVhNFJOdWc3WFgyQT09Iiwic2NvcGUiOlsiZ2JWemZPVjhTa1oxdGRMT3BYNWZyVXpMIl0sImV4cCI6MTc2NDY3MTc2MSwianRpIjoiRl9Zb0JBXzhIN01XempDZUxQenEzNTBXRnNrIiwiY2xpZW50X2lkIjoiZ2JWemZPVjhTa1oxdGRMT3BYNWZyVXpMIn0.mtGBQfwNtIkhcOumsOvzMj2BdYUxAPwZ9GcvNLuCNGVzFkqkLkfy_LALjYR2B-RaNj11_Cx7DcewtmLceG31KfnCiFY24BD_CbwoahdFh40SYRTFnjDf8XQI22E63h5NxTuldPx0itYLUPaUO6NAubnRON40eQPGZKygM0i72ULsQQAyRpJLYAaTjUxyPIW3JmMzQmYiRx641JeAYAup4-ZNw-Fqmd-8_xK3kN-a832xM-M_eqXgn8yMttn0uFv95lxPdJ1_-mp2zx8N4TBCYVkHo3u_PjM65S3_p4u1dFGXBDAsxtVMgmVGeUvubTLFuDM153rz9MZ7aOuu_c8K7w",
|
|
126
|
-
config: {
|
|
127
|
-
appNo: "PGlA63A1Gt9oZpxa6YCWMciH"
|
|
128
|
-
},
|
|
129
|
-
providerId: "demo-provider"
|
|
130
|
-
}
|
|
131
|
-
};
|
|
132
|
-
var 多容器示例 = {
|
|
133
|
-
render: (args) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", gap: "20px" }, children: [
|
|
134
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { width: "400px", height: "600px" }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_index.default, { ...args, providerId: "provider-1", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
135
|
-
import_XAiChatbot.default,
|
|
136
|
-
{
|
|
137
|
-
navbarShow: true,
|
|
138
|
-
navbar: {
|
|
139
|
-
title: "Provider 1",
|
|
140
|
-
subtitle: "第一个聊天机器人",
|
|
141
|
-
avatar: "https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg"
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
) }) }),
|
|
145
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { width: "400px", height: "600px" }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_index.default, { ...args, providerId: "provider-2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
146
|
-
import_XAiChatbot.default,
|
|
147
|
-
{
|
|
148
|
-
navbarShow: true,
|
|
149
|
-
navbar: {
|
|
150
|
-
title: "Provider 2",
|
|
151
|
-
subtitle: "第二个聊天机器人",
|
|
152
|
-
avatar: "https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg"
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
) }) })
|
|
156
|
-
] }),
|
|
157
|
-
args: {
|
|
158
|
-
url: "https://api.example.com/ai",
|
|
159
|
-
token: "your-token-here"
|
|
160
|
-
}
|
|
161
|
-
};
|
|
162
|
-
var 携带历史记录示例 = {
|
|
163
|
-
render: (args) => {
|
|
164
|
-
const providerRef = import_react.default.useRef(null);
|
|
165
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { width: "1080px", height: "600px", overflow: "hidden" }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
166
|
-
import_index.default,
|
|
167
|
-
{
|
|
168
|
-
ref: providerRef,
|
|
169
|
-
...args,
|
|
170
|
-
onError: (providerError) => console.log(providerError),
|
|
171
|
-
onMessage: (data) => console.log(data),
|
|
172
|
-
children: [
|
|
173
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_XAiConversations.default, {}),
|
|
174
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { flex: 1, display: "flex", justifyContent: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
175
|
-
import_XAiChatbot.default,
|
|
176
|
-
{
|
|
177
|
-
navbar: {
|
|
178
|
-
title: "Provider 聊天机器人",
|
|
179
|
-
subtitle: "由 Provider 管理消息",
|
|
180
|
-
avatar: "https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg"
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
) })
|
|
184
|
-
]
|
|
185
|
-
}
|
|
186
|
-
) });
|
|
187
|
-
},
|
|
188
|
-
args: {
|
|
189
|
-
url: "https://m-poc.zaxline.com",
|
|
190
|
-
token: "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiU0tUYkp6MDE5bWFVdnFqcC9OUGJEQT09Iiwic2NvcGUiOlsiMGhic2RXYkZVYktZRXkxMEsxNDM3WFhtIl0sImV4cCI6MTc2OTE2MzE5MCwianRpIjoiV1B4QTJrTzB0dlV5eW84MWdxSVlldlZRWUFRIiwiY2xpZW50X2lkIjoiMGhic2RXYkZVYktZRXkxMEsxNDM3WFhtIn0.f8tEHi-1Gokv09ce2YjO17yD4SL-KFNCiyFmVOLMvHnHltDh9g2BsxSEB9IreaEvqT70-nl9qgWjb8V2As9QTBNPvfdStXmvc1X4HYsWPDdX0YeLWBAgJ0clJufL62SzwRLNb-torvuLvQfqohF3Aqr7QUXt2x_ZOUA1G5jkG8K9_FZPYBBfUMf6JV8CejogqCSe-yjIKPhbh9dDcCGO6ibexTT1x8C1f2LwP-sMyYmPOIdEqelmzk5-m32yy2fINKz9zG8NWMRx8G4Sr1l-pZzxSGOQ3v6EKUe3M_I-W3pZc6G9gzIXb2Wq_lE7q_l91ee5dU8ex1To8X_PtFd8_g",
|
|
191
|
-
config: {
|
|
192
|
-
appNo: "0hbsdWbFUbKYEy10K1437XXm",
|
|
193
|
-
chatProps: {
|
|
194
|
-
clearBtnShow: false
|
|
195
|
-
}
|
|
196
|
-
},
|
|
197
|
-
providerId: "demo-provider"
|
|
198
|
-
}
|
|
199
|
-
};
|
|
200
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
201
|
-
0 && (module.exports = {
|
|
202
|
-
单聊天窗口实例,
|
|
203
|
-
多容器示例,
|
|
204
|
-
携带历史记录示例
|
|
205
|
-
});
|
|
206
|
-
//# sourceMappingURL=XAiProvider.stories.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/components/XAiProvider/XAiProvider.stories.tsx"],
|
|
4
|
-
"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"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["XAiProvider", "React", "XAiChatbot", "XAiConversations"]
|
|
7
|
-
}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
var __create = Object.create;
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
-
for (let key of __getOwnPropNames(from))
|
|
14
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
-
}
|
|
17
|
-
return to;
|
|
18
|
-
};
|
|
19
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
-
mod
|
|
26
|
-
));
|
|
27
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
-
|
|
29
|
-
// src/components/XAiSender/XAiSender.stories.tsx
|
|
30
|
-
var XAiSender_stories_exports = {};
|
|
31
|
-
__export(XAiSender_stories_exports, {
|
|
32
|
-
default: () => XAiSender_stories_default,
|
|
33
|
-
基础用法: () => 基础用法
|
|
34
|
-
});
|
|
35
|
-
module.exports = __toCommonJS(XAiSender_stories_exports);
|
|
36
|
-
var import_react = require("react");
|
|
37
|
-
var import__ = __toESM(require("."));
|
|
38
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
39
|
-
var meta = {
|
|
40
|
-
title: "AI组件/XAiSender 输入框【下线】",
|
|
41
|
-
component: import__.default,
|
|
42
|
-
parameters: {
|
|
43
|
-
layout: "centered"
|
|
44
|
-
},
|
|
45
|
-
tags: ["autodocs"],
|
|
46
|
-
argTypes: {}
|
|
47
|
-
};
|
|
48
|
-
var XAiSender_stories_default = meta;
|
|
49
|
-
var BasicUsageStory = () => {
|
|
50
|
-
const [files, setFiles] = (0, import_react.useState)([]);
|
|
51
|
-
const [content, setContent] = (0, import_react.useState)("");
|
|
52
|
-
const [loading, setLoading] = (0, import_react.useState)(false);
|
|
53
|
-
const handleClear = () => {
|
|
54
|
-
console.info("clear");
|
|
55
|
-
};
|
|
56
|
-
const handleChange = (text) => {
|
|
57
|
-
setContent(text);
|
|
58
|
-
};
|
|
59
|
-
const handleSendMessage = (obj) => {
|
|
60
|
-
console.log(obj);
|
|
61
|
-
setLoading(true);
|
|
62
|
-
setTimeout(() => {
|
|
63
|
-
setContent("");
|
|
64
|
-
setFiles([]);
|
|
65
|
-
setLoading(false);
|
|
66
|
-
}, 2e3);
|
|
67
|
-
};
|
|
68
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { width: 440, border: "1px solid #eee", padding: 20 }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
69
|
-
import__.default,
|
|
70
|
-
{
|
|
71
|
-
loading,
|
|
72
|
-
value: content,
|
|
73
|
-
enableUpload: true,
|
|
74
|
-
files,
|
|
75
|
-
clearBtnShow: true,
|
|
76
|
-
onChangeFiles: setFiles,
|
|
77
|
-
uploadRequest: ({ file, onProgress, onSuccess }) => {
|
|
78
|
-
console.info(file);
|
|
79
|
-
onProgress == null ? void 0 : onProgress({
|
|
80
|
-
percent: 50
|
|
81
|
-
});
|
|
82
|
-
setTimeout(() => {
|
|
83
|
-
onSuccess == null ? void 0 : onSuccess({});
|
|
84
|
-
}, 1e3);
|
|
85
|
-
},
|
|
86
|
-
onClear: handleClear,
|
|
87
|
-
onChange: handleChange,
|
|
88
|
-
onSubmit: handleSendMessage,
|
|
89
|
-
onStop: handleClear,
|
|
90
|
-
footerTips: "内容由AI生成,无法确保真实准确,仅供参考"
|
|
91
|
-
}
|
|
92
|
-
) });
|
|
93
|
-
};
|
|
94
|
-
var 基础用法 = {
|
|
95
|
-
render: BasicUsageStory,
|
|
96
|
-
args: {}
|
|
97
|
-
};
|
|
98
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
99
|
-
0 && (module.exports = {
|
|
100
|
-
基础用法
|
|
101
|
-
});
|
|
102
|
-
//# sourceMappingURL=XAiSender.stories.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/components/XAiSender/XAiSender.stories.tsx"],
|
|
4
|
-
"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"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAgC;AAGhC,eAAsB;AA4ChB;AA1CN,IAAM,OAA+B;AAAA,EACnC,OAAO;AAAA,EACP,WAAW,SAAAA;AAAA,EACX,YAAY;AAAA,IACV,QAAQ;AAAA,EACV;AAAA,EACA,MAAM,CAAC,UAAU;AAAA,EACjB,UAAU,CAAC;AACb;AAEA,IAAO,4BAAQ;AAIf,IAAM,kBAAkB,MAAM;AAC5B,QAAM,CAAC,OAAO,QAAQ,QAAI,uBAAuB,CAAC,CAAC;AACnD,QAAM,CAAC,SAAS,UAAU,QAAI,uBAAS,EAAE;AACzC,QAAM,CAAC,SAAS,UAAU,QAAI,uBAAS,KAAK;AAG5C,QAAM,cAAc,MAAM;AACxB,YAAQ,KAAK,OAAO;AAAA,EACtB;AAGA,QAAM,eAAe,CAAC,SAAiB;AACrC,eAAW,IAAI;AAAA,EACjB;AAGA,QAAM,oBAAoB,CAAC,QAAa;AACtC,YAAQ,IAAI,GAAG;AACf,eAAW,IAAI;AACf,eAAW,MAAM;AACf,iBAAW,EAAE;AACb,eAAS,CAAC,CAAC;AACX,iBAAW,KAAK;AAAA,IAClB,GAAG,GAAI;AAAA,EACT;AAEA,SACE,4CAAC,SAAI,OAAO,EAAE,OAAO,KAAK,QAAQ,kBAAkB,SAAS,GAAG,GAC9D;AAAA,IAAC,SAAAA;AAAA,IAAA;AAAA,MACC;AAAA,MACA,OAAO;AAAA,MACP,cAAY;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,MACd,eAAe;AAAA,MACf,eAAe,CAAC,EAAE,MAAM,YAAY,UAAU,MAAM;AAClD,gBAAQ,KAAK,IAAI;AACjB,iDAAa;AAAA,UACX,SAAS;AAAA,QACX;AACA,mBAAW,MAAM;AACf,iDAAY,CAAC;AAAA,QACf,GAAG,GAAI;AAAA,MACT;AAAA,MACA,SAAS;AAAA,MACT,UAAU;AAAA,MACV,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,YAAW;AAAA;AAAA,EACb,GACF;AAEJ;AAEO,IAAM,OAAc;AAAA,EACzB,QAAQ;AAAA,EACR,MAAM,CAAC;AACT;",
|
|
6
|
-
"names": ["XAiSender"]
|
|
7
|
-
}
|