@ai-group/chat-sdk 3.0.9 → 3.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dist/cjs/components/FileGallery/index.js +7 -5
  2. package/dist/cjs/components/FileGallery/index.js.map +2 -2
  3. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.d.ts +3 -0
  4. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js +74 -2
  5. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js.map +3 -3
  6. package/dist/cjs/components/XAdkChatbot/index.js +10 -7
  7. package/dist/cjs/components/XAdkChatbot/index.js.map +2 -2
  8. package/dist/cjs/types/FileGallery.d.ts +2 -0
  9. package/dist/cjs/types/FileGallery.js.map +1 -1
  10. package/dist/cjs/types/XAdkChatbot.d.ts +3 -0
  11. package/dist/cjs/types/XAdkChatbot.js.map +1 -1
  12. package/dist/esm/components/FileGallery/index.js +12 -5
  13. package/dist/esm/components/FileGallery/index.js.map +1 -1
  14. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.d.ts +3 -0
  15. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js +81 -2
  16. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js.map +1 -1
  17. package/dist/esm/components/XAdkChatbot/index.js +14 -8
  18. package/dist/esm/components/XAdkChatbot/index.js.map +1 -1
  19. package/dist/esm/types/FileGallery.d.ts +2 -0
  20. package/dist/esm/types/FileGallery.js.map +1 -1
  21. package/dist/esm/types/XAdkChatbot.d.ts +3 -0
  22. package/dist/esm/types/XAdkChatbot.js.map +1 -1
  23. package/dist/umd/chat-sdk.min.js +1 -1
  24. package/package.json +2 -3
  25. package/dist/cjs/components/FileGallery/FileGallery.stories.d.ts +0 -6
  26. package/dist/cjs/components/FileGallery/FileGallery.stories.js +0 -143
  27. package/dist/cjs/components/FileGallery/FileGallery.stories.js.map +0 -7
  28. package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.d.ts +0 -13
  29. package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.js +0 -633
  30. package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.js.map +0 -7
  31. package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.d.ts +0 -10
  32. package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.js +0 -394
  33. package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.js.map +0 -7
  34. package/dist/cjs/components/XAdkSender/XAdkSender.stories.d.ts +0 -6
  35. package/dist/cjs/components/XAdkSender/XAdkSender.stories.js +0 -121
  36. package/dist/cjs/components/XAdkSender/XAdkSender.stories.js.map +0 -7
  37. package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.d.ts +0 -10
  38. package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js +0 -773
  39. package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js.map +0 -7
  40. package/dist/cjs/components/XAiConversations/XAiConversations.stories.d.ts +0 -6
  41. package/dist/cjs/components/XAiConversations/XAiConversations.stories.js +0 -83
  42. package/dist/cjs/components/XAiConversations/XAiConversations.stories.js.map +0 -7
  43. package/dist/cjs/components/XAiProvider/XAiProvider.stories.d.ts +0 -8
  44. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +0 -206
  45. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +0 -7
  46. package/dist/cjs/components/XAiSender/XAiSender.stories.d.ts +0 -6
  47. package/dist/cjs/components/XAiSender/XAiSender.stories.js +0 -102
  48. package/dist/cjs/components/XAiSender/XAiSender.stories.js.map +0 -7
  49. package/dist/cjs/components/XAiThoughtChain/XAiThoughtChain.stories.d.ts +0 -6
  50. package/dist/cjs/components/XAiThoughtChain/XAiThoughtChain.stories.js +0 -180
  51. package/dist/cjs/components/XAiThoughtChain/XAiThoughtChain.stories.js.map +0 -7
  52. package/dist/esm/components/FileGallery/FileGallery.stories.d.ts +0 -6
  53. package/dist/esm/components/FileGallery/FileGallery.stories.js +0 -48
  54. package/dist/esm/components/FileGallery/FileGallery.stories.js.map +0 -1
  55. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.d.ts +0 -13
  56. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js +0 -510
  57. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js.map +0 -1
  58. package/dist/esm/components/XAdkProvider/XAdkProvider.stories.d.ts +0 -10
  59. package/dist/esm/components/XAdkProvider/XAdkProvider.stories.js +0 -338
  60. package/dist/esm/components/XAdkProvider/XAdkProvider.stories.js.map +0 -1
  61. package/dist/esm/components/XAdkSender/XAdkSender.stories.d.ts +0 -6
  62. package/dist/esm/components/XAdkSender/XAdkSender.stories.js +0 -128
  63. package/dist/esm/components/XAdkSender/XAdkSender.stories.js.map +0 -1
  64. package/dist/esm/components/XAiChatbot/XAiChatbot.stories.d.ts +0 -10
  65. package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js +0 -636
  66. package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js.map +0 -1
  67. package/dist/esm/components/XAiConversations/XAiConversations.stories.d.ts +0 -6
  68. package/dist/esm/components/XAiConversations/XAiConversations.stories.js +0 -42
  69. package/dist/esm/components/XAiConversations/XAiConversations.stories.js.map +0 -1
  70. package/dist/esm/components/XAiProvider/XAiProvider.stories.d.ts +0 -8
  71. package/dist/esm/components/XAiProvider/XAiProvider.stories.js +0 -208
  72. package/dist/esm/components/XAiProvider/XAiProvider.stories.js.map +0 -1
  73. package/dist/esm/components/XAiSender/XAiSender.stories.d.ts +0 -6
  74. package/dist/esm/components/XAiSender/XAiSender.stories.js +0 -87
  75. package/dist/esm/components/XAiSender/XAiSender.stories.js.map +0 -1
  76. package/dist/esm/components/XAiThoughtChain/XAiThoughtChain.stories.d.ts +0 -6
  77. package/dist/esm/components/XAiThoughtChain/XAiThoughtChain.stories.js +0 -159
  78. package/dist/esm/components/XAiThoughtChain/XAiThoughtChain.stories.js.map +0 -1
@@ -1,773 +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/XAiChatbot/XAiChatbot.stories.tsx
30
- var XAiChatbot_stories_exports = {};
31
- __export(XAiChatbot_stories_exports, {
32
- default: () => XAiChatbot_stories_default,
33
- 在Provider中使用: () => 在Provider中使用,
34
- 基础用法: () => 基础用法,
35
- 多个Provider实例: () => 多个Provider实例,
36
- 新架构演示: () => 新架构演示,
37
- 架构对比演示: () => 架构对比演示
38
- });
39
- module.exports = __toCommonJS(XAiChatbot_stories_exports);
40
- var import_react = require("react");
41
- var import_antd = require("antd");
42
- var import_XAiMessage = require("../../types/XAiMessage");
43
- var import_document = __toESM(require("../../assets/document.svg"));
44
- var import_XAiProvider = __toESM(require("../XAiProvider"));
45
- var import__ = __toESM(require("."));
46
- var import_useProviderContext = require("../../hooks/useProviderContext");
47
- var import_jsx_runtime = require("react/jsx-runtime");
48
- var meta = {
49
- title: "AI组件/XAiChatbot 聊天框【下线】",
50
- component: import__.default,
51
- parameters: {
52
- layout: "centered"
53
- },
54
- tags: ["autodocs"],
55
- argTypes: {
56
- navbar: {
57
- description: "导航栏配置"
58
- },
59
- messages: {
60
- description: "消息列表"
61
- }
62
- }
63
- };
64
- var XAiChatbot_stories_default = meta;
65
- var mockMessages = [
66
- {
67
- id: "1",
68
- type: "TextMessage",
69
- createdAt: /* @__PURE__ */ new Date(),
70
- status: import_XAiMessage.MessageStatus.done,
71
- role: import_XAiMessage.MessageRole.assistant,
72
- content: {
73
- text: "你好,有什么我能帮助你的吗?"
74
- }
75
- },
76
- {
77
- id: "2",
78
- type: "TextMessage",
79
- createdAt: /* @__PURE__ */ new Date(),
80
- status: import_XAiMessage.MessageStatus.done,
81
- role: import_XAiMessage.MessageRole.user,
82
- content: {
83
- text: "检索从北京到上海的车票数据给我",
84
- files: [
85
- {
86
- fileName: "4250105220774925bfaeb3ca2a3350fe.jpg",
87
- fileId: 334,
88
- fileUrl: "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",
89
- fileType: "image",
90
- fileSize: 28118
91
- },
92
- {
93
- fileName: "4250105220774925bfaeb3ca2a3350fe.pdf",
94
- fileId: 334,
95
- fileUrl: "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",
96
- fileType: "pdf",
97
- fileSize: 28118
98
- }
99
- ]
100
- },
101
- parentMessageId: "1"
102
- },
103
- {
104
- id: "22",
105
- type: "TextMessage",
106
- createdAt: /* @__PURE__ */ new Date(),
107
- status: import_XAiMessage.MessageStatus.done,
108
- role: import_XAiMessage.MessageRole.assistant,
109
- content: {
110
- text: ""
111
- },
112
- thinks: "",
113
- // execute: [
114
- // // 工具库调用(MCP_TOOL)
115
- // {
116
- // type: 'ActionExecutionMessage',
117
- // createdAt: new Date(),
118
- // id: 'tool-1',
119
- // name: '已调用MCP智能工具',
120
- // arguments: { param1: 'foo' },
121
- // extra: {
122
- // action: 'INVOKE_AGENT_TOOL_START',
123
- // icon: documentIcon,
124
- // type: 'MCP_TOOL',
125
- // cost: '3.9',
126
- // },
127
- // },
128
- // // // 工具库调用(PLUGIN_TOOL)
129
- // {
130
- // type: 'ActionExecutionMessage',
131
- // createdAt: new Date(),
132
- // id: 'tool-2',
133
- // name: '已调用插件工具',
134
- // arguments: { param1: 'foo' },
135
- // extra: {
136
- // action: 'INVOKE_AGENT_TOOL_START',
137
- // icon: documentIcon,
138
- // type: 'MCP_TOOL',
139
- // cost: '3.9',
140
- // },
141
- // },
142
- // // // 工具库调用(SKILL)
143
- // // {
144
- // // action: 'INVOKE_AGENT_TOOL_START',
145
- // // id: 'tool-3',
146
- // // toolType: 'SKILL',
147
- // // agentToolName: '技能工具',
148
- // // args: { param3: 'baz' },
149
- // // },
150
- // // // 知识库调用(FAQ)
151
- // // {
152
- // // action: 'RECALL_KNOWLEDGE_START',
153
- // // uniqueId: 'kb-1',
154
- // // processStatus: 'START',
155
- // // args: { question: '什么是FAQ?' },
156
- // // knowledgeType: 'FAQ',
157
- // // },
158
- // {
159
- // type: 'ActionExecutionMessage',
160
- // createdAt: new Date(),
161
- // id: 'tool-3',
162
- // name: '已调用文档知识库',
163
- // arguments: { param1: 'foo' },
164
- // extra: {
165
- // action: 'RECALL_KNOWLEDGE_START',
166
- // icon: documentIcon,
167
- // type: 'MCP_TOOL',
168
- // cost: '3.9',
169
- // },
170
- // },
171
- // // // 知识库调用(DOCUMENT)
172
- // // {
173
- // // action: 'RECALL_KNOWLEDGE_START',
174
- // // uniqueId: 'kb-2',
175
- // // processStatus: 'START',
176
- // // args: { question: '文档库介绍' },
177
- // // knowledgeType: 'DOCUMENT',
178
- // // },
179
- // // 运行完毕
180
- // ],
181
- extra: {
182
- noFooter: true
183
- }
184
- },
185
- {
186
- id: "4",
187
- type: "TextMessage",
188
- createdAt: /* @__PURE__ */ new Date(),
189
- status: import_XAiMessage.MessageStatus.done,
190
- role: import_XAiMessage.MessageRole.user,
191
- content: {
192
- text: "能否生成一段明年的产品计划开发计划文档给我"
193
- }
194
- },
195
- {
196
- id: "0",
197
- type: "TextMessage",
198
- createdAt: /* @__PURE__ */ new Date(),
199
- status: import_XAiMessage.MessageStatus.done,
200
- role: import_XAiMessage.MessageRole.assistant,
201
- content: {
202
- text: `
203
- # 项目开发计划
204
-
205
- 本文档概述了 2025 年第三季度的产品开发计划,包括目标、里程碑、团队分工和风险预案。
206
-
207
- ---
208
-
209
- ## 🎯 核心目标
210
-
211
- - 提升用户留存率至 **45%**
212
- - 完成 Web 端新版上线
213
- - 建立 AI 推荐模块 MVP
214
- - 优化数据库访问性能
215
-
216
- ---
217
-
218
- ## 📅 关键时间节点
219
-
220
- | 里程碑 | 截止日期 | 负责人 | 代理人 | 截止日期 | 负责人 |
221
- |------------------|--------------|----------|------------------|--------------|----------|
222
- | 产品需求冻结 | 2025-08-01 | Alice | 产品需求冻结 | 2025-08-01 | Alice |
223
- | UI 设计定稿 | 2025-08-10 | Bob | 产品需求冻结 | 2025-08-01 | Alice |
224
- | 开发完成(内测) | 2025-09-15 | Charlie | 产品需求冻结 | 2025-08-01 | Alice |
225
- | 正式上线 | 2025-09-30 | Diana | 产品需求冻结 | 2025-08-01 | Alice |
226
-
227
- ---
228
-
229
- ## 🛠️ 技术方案简述
230
-
231
- 我们将使用以下技术栈:
232
-
233
- - 前端:React + Vite + Zustand
234
- - 后端:Node.js + PostgreSQL
235
- - 数据分析:Python + Pandas
236
- - 部署环境:Kubernetes on AWS
237
-
238
- ---
239
-
240
- ## 💡 示例代码片段
241
-
242
- 以下是一个用于生成唯一 ID 的函数示例:
243
-
244
- ~~~ts
245
- import { nanoid } from 'nanoid'
246
-
247
- export function generateSessionId() {
248
- return \`sess-\${nanoid()}\`
249
- }
250
- ~~~
251
- `
252
- },
253
- extra: {
254
- noFooter: true
255
- }
256
- },
257
- {
258
- id: "11",
259
- type: "SuggestionMessage",
260
- createdAt: /* @__PURE__ */ new Date(),
261
- status: import_XAiMessage.MessageStatus.done,
262
- role: import_XAiMessage.MessageRole.suggestion,
263
- content: [
264
- {
265
- key: "1",
266
- description: "我要查看 AI 文档"
267
- },
268
- {
269
- key: "2",
270
- description: "我如何看待 AI"
271
- },
272
- {
273
- key: "3",
274
- description: "你是谁?"
275
- }
276
- ]
277
- }
278
- ];
279
- var BasicUsageStory = (args) => {
280
- const [messages, setMessages] = (0, import_react.useState)(mockMessages);
281
- const [loading, setLoading] = (0, import_react.useState)(false);
282
- const handleSendMessage = () => {
283
- setLoading(true);
284
- const stream = [
285
- "我",
286
- "正在",
287
- "为",
288
- "你",
289
- "生成",
290
- "内容",
291
- "我",
292
- "正在",
293
- "为",
294
- "你",
295
- "生成",
296
- "内容",
297
- "我",
298
- "正在",
299
- "为",
300
- "你",
301
- "生成",
302
- "内容",
303
- "我",
304
- "正在",
305
- "为",
306
- "你",
307
- "生成",
308
- "内容",
309
- "我",
310
- "正在",
311
- "为",
312
- "你",
313
- "生成",
314
- "内容",
315
- "我",
316
- "正在",
317
- "为",
318
- "你",
319
- "生成",
320
- "内容",
321
- "我",
322
- "正在",
323
- "为",
324
- "你",
325
- "生成",
326
- "内容",
327
- "我",
328
- "正在",
329
- "为",
330
- "你",
331
- "生成",
332
- "内容",
333
- "我",
334
- "正在",
335
- "为",
336
- "你",
337
- "生成",
338
- "内容",
339
- "我",
340
- "正在",
341
- "为",
342
- "你",
343
- "生成",
344
- "内容",
345
- "我",
346
- "正在",
347
- "为",
348
- "你",
349
- "生成",
350
- "内容",
351
- "好",
352
- "多",
353
- "好",
354
- "多",
355
- "好",
356
- "多",
357
- "好",
358
- "多",
359
- "好",
360
- "多",
361
- "好",
362
- "多",
363
- "好",
364
- "多",
365
- "好",
366
- "多",
367
- "好",
368
- "多",
369
- "好",
370
- "多",
371
- "好",
372
- "多",
373
- "……"
374
- ];
375
- stream.forEach((chunk, idx) => {
376
- setTimeout(
377
- () => {
378
- setMessages((prev) => {
379
- var _a;
380
- const updated = [...prev];
381
- const targetIndex = 2;
382
- const targetMsg = updated[targetIndex];
383
- if (targetMsg && targetMsg.type === "TextMessage") {
384
- if ("text" in targetMsg.content) {
385
- updated[targetIndex] = {
386
- ...targetMsg,
387
- content: {
388
- ...targetMsg.content
389
- // 模拟随机字符串流式拼接
390
- // text: targetMsg.content.text + chunk + Math.random().toString(36).slice(2, 5),
391
- },
392
- thinks: targetMsg.thinks + chunk + Math.random().toString(36).slice(2, 5),
393
- status: import_XAiMessage.MessageStatus.pending
394
- };
395
- }
396
- }
397
- if (idx === stream.length - 1) {
398
- (_a = updated[targetIndex].execute) == null ? void 0 : _a.push({
399
- id: "5",
400
- type: "ActionExecutionMessage",
401
- extra: {
402
- icon: import_document.default
403
- },
404
- name: "运行完毕",
405
- createdAt: /* @__PURE__ */ new Date()
406
- });
407
- setLoading(false);
408
- updated[targetIndex] = {
409
- ...updated[targetIndex],
410
- status: import_XAiMessage.MessageStatus.done
411
- };
412
- }
413
- return updated;
414
- });
415
- },
416
- 200 * (idx + 1)
417
- );
418
- });
419
- };
420
- (0, import_react.useEffect)(() => {
421
- if (messages) {
422
- handleSendMessage();
423
- }
424
- }, []);
425
- const handleClear = () => {
426
- setMessages([]);
427
- };
428
- const handleActions = (index, data) => {
429
- console.log(index, data);
430
- };
431
- const handleSuggestMessageClick = (_item, id) => {
432
- setMessages((prev) => prev.filter((m) => m.id !== id));
433
- };
434
- const ToolTip = (data) => {
435
- const { cost, token } = (data == null ? void 0 : data.extra) || {};
436
- if (!cost && !token)
437
- return null;
438
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
439
- "div",
440
- {
441
- style: {
442
- display: "flex",
443
- alignItems: "center",
444
- fontSize: "12px",
445
- color: "#949494",
446
- flex: 1,
447
- paddingRight: "40px"
448
- },
449
- children: [
450
- cost && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
451
- cost,
452
- "s"
453
- ] }),
454
- token && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_antd.Divider, { type: "vertical" }),
455
- token && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
456
- token,
457
- " tokens"
458
- ] })
459
- ]
460
- }
461
- );
462
- };
463
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
464
- "div",
465
- {
466
- style: {
467
- height: "600px",
468
- width: "400px",
469
- border: "1px solid #e7e7e7",
470
- borderRadius: "8px"
471
- },
472
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
473
- import__.default,
474
- {
475
- ...args,
476
- messages,
477
- loading,
478
- messageTooltip: ToolTip,
479
- onClear: handleClear,
480
- onSuggestMessageClick: handleSuggestMessageClick,
481
- onSend: handleSendMessage,
482
- onMessagesActionsCallback: handleActions,
483
- enableUpload: true,
484
- uploadRequest: ({ file, onProgress, onSuccess }) => {
485
- onProgress == null ? void 0 : onProgress({
486
- percent: 50
487
- });
488
- setTimeout(() => {
489
- onSuccess == null ? void 0 : onSuccess({
490
- fileName: "4250105220774925bfaeb3ca2a3350fe.jpg",
491
- fileId: 334,
492
- fileUrl: "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",
493
- fileType: "image",
494
- fileSize: 28118,
495
- mimeType: "image/jpeg",
496
- tempUrl: "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",
497
- type: "image"
498
- });
499
- }, 1e3);
500
- }
501
- }
502
- )
503
- }
504
- );
505
- };
506
- var 基础用法 = {
507
- render: BasicUsageStory,
508
- args: {
509
- navbar: {
510
- title: "智能助手"
511
- },
512
- // messages: mockMessages,
513
- emptyStateText: "众安智能体"
514
- }
515
- };
516
- var 在Provider中使用 = {
517
- decorators: [
518
- (Story) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_XAiProvider.default, { token: "test-token", url: "https://api.example.com", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Story, {}) })
519
- ],
520
- args: {
521
- navbar: {
522
- title: "智能助手"
523
- }
524
- }
525
- };
526
- var 多个Provider实例 = {
527
- decorators: [
528
- (Story) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", gap: "50px", height: "600px" }, children: [
529
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
530
- import_XAiProvider.default,
531
- {
532
- providerId: "chat1",
533
- token: "token1",
534
- url: "https://api1.example.com",
535
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { width: "300px", marginRight: "40px" }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Story, {}) })
536
- }
537
- ),
538
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
539
- import_XAiProvider.default,
540
- {
541
- providerId: "chat2",
542
- token: "token2",
543
- url: "https://api2.example.com",
544
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { width: "300px" }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Story, {}) })
545
- }
546
- )
547
- ] })
548
- ],
549
- args: {
550
- navbar: {
551
- title: "智能助手"
552
- }
553
- }
554
- };
555
- var ArchitectureDemoComponent = ({ title }) => {
556
- var _a;
557
- const { mergedProps, isInProvider, getProviderValue } = (0, import_useProviderContext.useProviderContext)({
558
- props: { title },
559
- mergeLogic: (props, context) => {
560
- var _a2;
561
- if (!(context == null ? void 0 : context.isInProvider)) {
562
- return props;
563
- }
564
- return {
565
- ...props,
566
- messages: context.messages,
567
- loading: context.loading,
568
- customData: ((_a2 = context.messages) == null ? void 0 : _a2.length) || 0
569
- };
570
- }
571
- });
572
- const providerMethods = (0, import_useProviderContext.useProviderMethods)();
573
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
574
- "div",
575
- {
576
- style: {
577
- padding: "15px",
578
- border: "1px solid #e7e7e7",
579
- borderRadius: "8px",
580
- marginBottom: "10px",
581
- backgroundColor: "#fafafa"
582
- },
583
- children: [
584
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h4", { style: { margin: "0 0 10px 0" }, children: mergedProps.title }),
585
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { fontSize: "12px", color: "#666" }, children: [
586
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("p", { children: [
587
- "Provider 状态: ",
588
- isInProvider ? "✅ 已连接" : "❌ 未连接"
589
- ] }),
590
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("p", { children: [
591
- "消息数量: ",
592
- ((_a = getProviderValue("messages")) == null ? void 0 : _a.length) || 0
593
- ] }),
594
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("p", { children: [
595
- "加载状态: ",
596
- getProviderValue("loading") ? "🔄 加载中" : "✅ 就绪"
597
- ] }),
598
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
599
- "button",
600
- {
601
- onClick: () => {
602
- var _a2;
603
- return (_a2 = providerMethods.sendMessage) == null ? void 0 : _a2.call(providerMethods, { text: "来自架构演示组件的消息" });
604
- },
605
- disabled: !isInProvider,
606
- style: {
607
- fontSize: "12px",
608
- padding: "4px 8px",
609
- backgroundColor: isInProvider ? "#1890ff" : "#d9d9d9",
610
- color: "white",
611
- border: "none",
612
- borderRadius: "4px",
613
- cursor: isInProvider ? "pointer" : "not-allowed"
614
- },
615
- children: isInProvider ? "发送消息" : "需要 Provider"
616
- }
617
- )
618
- ] })
619
- ]
620
- }
621
- );
622
- };
623
- var 新架构演示 = {
624
- render: (args) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { width: "500px", height: "700px" }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
625
- import_XAiProvider.default,
626
- {
627
- token: "demo-token",
628
- url: "https://api.example.com",
629
- providerId: "architecture-demo",
630
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { padding: "20px" }, children: [
631
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", { style: { marginBottom: "20px" }, children: "新架构演示" }),
632
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { style: { marginBottom: "20px", color: "#666" }, children: "展示如何使用 useProviderContext 和 useProviderMethods Hook" }),
633
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { marginBottom: "20px" }, children: [
634
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ArchitectureDemoComponent, { title: "演示组件 A" }),
635
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ArchitectureDemoComponent, { title: "演示组件 B" }),
636
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ArchitectureDemoComponent, { title: "演示组件 C" })
637
- ] }),
638
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
639
- import__.default,
640
- {
641
- ...args,
642
- navbarShow: true,
643
- navbar: {
644
- title: "架构演示聊天机器人",
645
- subtitle: "展示新 Hook 的使用"
646
- },
647
- enableUpload: true,
648
- uploadRequest: ({ file, onProgress, onSuccess }) => {
649
- console.info(file);
650
- onProgress == null ? void 0 : onProgress({
651
- percent: 50
652
- });
653
- setTimeout(() => {
654
- onSuccess == null ? void 0 : onSuccess({});
655
- }, 1e3);
656
- }
657
- }
658
- )
659
- ] })
660
- }
661
- ) }),
662
- args: {
663
- navbar: {
664
- title: "智能助手"
665
- }
666
- }
667
- };
668
- var 架构对比演示 = {
669
- render: (args) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", gap: "20px", padding: "20px" }, children: [
670
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { width: "300px" }, children: [
671
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h4", { children: "独立使用模式" }),
672
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
673
- "div",
674
- {
675
- style: {
676
- border: "1px solid #e7e7e7",
677
- borderRadius: "8px",
678
- padding: "15px"
679
- },
680
- children: [
681
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ArchitectureDemoComponent, { title: "独立组件" }),
682
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
683
- import__.default,
684
- {
685
- ...args,
686
- navbarShow: true,
687
- navbar: {
688
- title: "独立聊天机器人",
689
- subtitle: "不依赖 Provider"
690
- },
691
- onSend: (content) => {
692
- console.log("独立模式发送:", content);
693
- },
694
- onClear: () => {
695
- console.log("独立模式清空");
696
- },
697
- enableUpload: true,
698
- uploadRequest: ({ file, onProgress, onSuccess }) => {
699
- console.info(file);
700
- onProgress == null ? void 0 : onProgress({
701
- percent: 50
702
- });
703
- setTimeout(() => {
704
- onSuccess == null ? void 0 : onSuccess({});
705
- }, 1e3);
706
- }
707
- }
708
- )
709
- ]
710
- }
711
- )
712
- ] }),
713
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { width: "300px" }, children: [
714
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h4", { children: "Provider 模式" }),
715
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
716
- import_XAiProvider.default,
717
- {
718
- token: "demo-token",
719
- url: "https://api.example.com",
720
- providerId: "comparison-demo",
721
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
722
- "div",
723
- {
724
- style: {
725
- border: "1px solid #e7e7e7",
726
- borderRadius: "8px",
727
- padding: "15px"
728
- },
729
- children: [
730
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ArchitectureDemoComponent, { title: "Provider 组件" }),
731
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
732
- import__.default,
733
- {
734
- ...args,
735
- navbarShow: true,
736
- navbar: {
737
- title: "Provider 聊天机器人",
738
- subtitle: "由 Provider 管理"
739
- },
740
- enableUpload: true,
741
- uploadRequest: ({ file, onProgress, onSuccess }) => {
742
- console.info(file);
743
- onProgress == null ? void 0 : onProgress({
744
- percent: 50
745
- });
746
- setTimeout(() => {
747
- onSuccess == null ? void 0 : onSuccess({});
748
- }, 1e3);
749
- }
750
- }
751
- )
752
- ]
753
- }
754
- )
755
- }
756
- )
757
- ] })
758
- ] }),
759
- args: {
760
- navbar: {
761
- title: "智能助手"
762
- }
763
- }
764
- };
765
- // Annotate the CommonJS export names for ESM import in node:
766
- 0 && (module.exports = {
767
- 在Provider中使用,
768
- 基础用法,
769
- 多个Provider实例,
770
- 新架构演示,
771
- 架构对比演示
772
- });
773
- //# sourceMappingURL=XAiChatbot.stories.js.map