@kweaver-ai/chatkit 0.1.17 → 0.1.19

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.
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  /**
3
3
  * 角色类型枚举
4
- * 发送该消息的角色
4
+ * 发送该消息的角�?
5
5
  */
6
6
  export declare enum RoleType {
7
7
  /** 用户 */
@@ -11,7 +11,7 @@ export declare enum RoleType {
11
11
  }
12
12
  /**
13
13
  * 消息类型枚举
14
- * 消息的类型
14
+ * 消息的类�?
15
15
  */
16
16
  export declare enum ChatMessageType {
17
17
  /** Markdown 文本类型 */
@@ -22,7 +22,7 @@ export declare enum ChatMessageType {
22
22
  WIDGET = "Widget"
23
23
  }
24
24
  /**
25
- * 消息块类型枚举
25
+ * 消息块类型枚�?
26
26
  * 消息块的类型,不同类型的消息块使用不同的组件进行渲染
27
27
  */
28
28
  export declare enum BlockType {
@@ -36,6 +36,8 @@ export declare enum BlockType {
36
36
  TOOL = "Tool",
37
37
  /** JSON2Plot 图表类型 */
38
38
  JSON2PLOT = "Json2Plot",
39
+ /** WebProcessor 页面预览类型 */
40
+ WEB_PROCESSOR = "WebProcessor",
39
41
  /** Text2SQL 类型 */
40
42
  Text2Sql = "Text2Sql"
41
43
  }
@@ -45,17 +47,17 @@ export declare enum BlockType {
45
47
  */
46
48
  export interface Role {
47
49
  /** 角色的名称:
48
- * - 如果 type Assistant,则名称为 "AI 助手"
49
- * - 如果 type User,则名称为用户的昵称/显示名
50
+ * - 如果 type �?Assistant,则名称�?"AI 助手"
51
+ * - 如果 type �?User,则名称为用户的昵称/显示�?
50
52
  */
51
53
  name: string;
52
- /** 发送该消息的角色 */
54
+ /** 发送该消息的角�?*/
53
55
  type: RoleType;
54
- /** 角色的头像,可以是 URL、Base64 SVG */
56
+ /** 角色的头像,可以�?URL、Base64 �?SVG */
55
57
  avatar: string;
56
58
  }
57
59
  /**
58
- * 消息块基类
60
+ * 消息块基�?
59
61
  * 一条消息可以由许多不同类型的消息块组成
60
62
  */
61
63
  export interface ContentBlock<T extends BlockType, K> {
@@ -63,7 +65,7 @@ export interface ContentBlock<T extends BlockType, K> {
63
65
  type: T;
64
66
  /** 消息块的内容 */
65
67
  content: K;
66
- /** 耗时(毫秒),可选字段 */
68
+ /** 耗时(毫秒),可选字�?*/
67
69
  consumeTime?: number;
68
70
  }
69
71
  /**
@@ -96,8 +98,8 @@ export interface ToolBlockRegistration {
96
98
  /** 工具图标,React 元素 */
97
99
  Icon?: React.ReactNode;
98
100
  /** 工具点击事件
99
- * @param block 工具块数据,类型为 Record<string, any>
100
- * @returns 可选返回关闭函数;切换工具块时 SDK 会先调用该函数,用于关闭本次打开的外层内容
101
+ * @param block 工具块数据,类型�?Record<string, any>
102
+ * @returns 可选返回关闭函数;切换工具块时 SDK 会先调用该函数,用于关闭本次打开的外层内�?
101
103
  */
102
104
  onClick?: (block: Record<string, any>) => void | (() => void);
103
105
  }
@@ -106,58 +108,74 @@ export interface ToolBlockRegistration {
106
108
  */
107
109
  export interface Json2PlotBlock extends ContentBlock<BlockType.JSON2PLOT, ChartDataSchema> {
108
110
  }
111
+ /**
112
+ * WebProcessor 页面预览数据 Schema
113
+ */
114
+ export interface WebProcessorDataSchema {
115
+ /** 页面标题 */
116
+ title?: string;
117
+ /** 页面 URL */
118
+ url: string;
119
+ /** 页面尺寸,[width, height] */
120
+ size?: [number, number];
121
+ }
122
+ /**
123
+ * WebProcessor 页面预览类型的消息块
124
+ */
125
+ export interface WebProcessorBlock extends ContentBlock<BlockType.WEB_PROCESSOR, WebProcessorDataSchema> {
126
+ }
109
127
  /**
110
128
  * 单条消息的扩展上下文(不参与流式内容渲染,用于相关问题、耗时、Token 等)
111
129
  */
112
130
  export interface MessageContext {
113
- /** 相关推荐问题列表,来自 message.ext.related_queries */
131
+ /** 相关推荐问题列表,来�?message.ext.related_queries */
114
132
  relatedQuestions?: string[];
115
- /** 本次回答耗时(秒),用于展示「耗时: xx.xxs」 */
133
+ /** 本次回答耗时(秒),用于展示「耗时: xx.xxs�?*/
116
134
  elapsedSeconds?: number;
117
- /** Token 总数,用于展示「Token: x,xxx」 */
135
+ /** Token 总数,用于展示「Token: x,xxx�?*/
118
136
  totalTokens?: number;
119
137
  }
120
138
  /**
121
139
  * 消息接口
122
- * 展示在消息区消息列表中的一条消息
140
+ * 展示在消息区消息列表中的一条消�?
123
141
  */
124
142
  export interface ChatMessage {
125
143
  /** 一条消息的 ID */
126
144
  messageId: string;
127
- /** 发送该消息的角色 */
145
+ /** 发送该消息的角�?*/
128
146
  role: Role;
129
- /** 该条消息的类型(已废弃,保留用于向后兼容) */
147
+ /** 该条消息的类型(已废弃,保留用于向后兼容�?*/
130
148
  type?: ChatMessageType;
131
149
  /** 该条消息的内容。一条消息可以由许多不同类型的消息块组成 */
132
- content: Array<TextBlock | MarkdownBlock | WebSearchBlock | ToolBlock | Json2PlotBlock>;
133
- /** 与该消息关联的应用上下文(可选),仅用户消息可能包含此字段 */
150
+ content: Array<TextBlock | MarkdownBlock | WebSearchBlock | ToolBlock | Json2PlotBlock | WebProcessorBlock>;
151
+ /** 与该消息关联的应用上下文(可选),仅用户消息可能包含此字�?*/
134
152
  applicationContext?: ApplicationContext;
135
153
  /** 消息扩展上下文:相关问题、耗时、Token 等,仅助手消息在流结束后可能包含 */
136
154
  messageContext?: MessageContext;
137
155
  }
138
156
  /**
139
- * 应用上下文接口
157
+ * 应用上下文接�?
140
158
  * 与用户输入的文本相关的应用上下文
141
159
  */
142
160
  export interface ApplicationContext {
143
161
  /** 显示在输入框上方的应用上下文标题 */
144
162
  title: string;
145
- /** 该应用上下文实际包含的数据 */
163
+ /** 该应用上下文实际包含的数�?*/
146
164
  data: any;
147
165
  }
148
166
  /**
149
167
  * EventStream 消息接口
150
- * 表示从 SSE 接收到的一条流式消息
168
+ * 表示�?SSE 接收到的一条流式消�?
151
169
  */
152
170
  export interface EventStreamMessage {
153
171
  /** 事件类型 */
154
172
  event: string;
155
- /** 消息数据,通常是 JSON 字符串 */
173
+ /** 消息数据,通常�?JSON 字符�?*/
156
174
  data: string;
157
175
  }
158
176
  /**
159
177
  * 开场白信息接口
160
- * 包含开场白文案和预置问题
178
+ * 包含开场白文案和预置问�?
161
179
  */
162
180
  export interface OnboardingInfo {
163
181
  /** 开场白文案 */
@@ -167,23 +185,23 @@ export interface OnboardingInfo {
167
185
  }
168
186
  /**
169
187
  * Web 搜索结果接口
170
- * 单条 Web 搜索的结果
188
+ * 单条 Web 搜索的结�?
171
189
  */
172
190
  export interface WebSearchResult {
173
- /** 搜索结果的内容摘要 */
191
+ /** 搜索结果的内容摘�?*/
174
192
  content: string;
175
- /** 搜索结果的来源网站图标 URL */
193
+ /** 搜索结果的来源网站图�?URL */
176
194
  icon: string;
177
195
  /** 搜索结果的来源地址 */
178
196
  link: string;
179
- /** 搜索结果的来源网站名称 */
197
+ /** 搜索结果的来源网站名�?*/
180
198
  media: string;
181
- /** 搜索结果的来源文章标题 */
199
+ /** 搜索结果的来源文章标�?*/
182
200
  title: string;
183
201
  }
184
202
  /**
185
203
  * Web 搜索查询接口
186
- * 调用 Web 搜索的详情
204
+ * 调用 Web 搜索的详�?
187
205
  */
188
206
  export interface WebSearchQuery {
189
207
  /** 搜索查询 */
@@ -196,20 +214,20 @@ export interface WebSearchQuery {
196
214
  * 代码执行的输入和输出信息
197
215
  */
198
216
  export interface ExecuteCodeResult {
199
- /** 执行的代码,以 Markdown 的代码格式显示 */
217
+ /** 执行的代码,�?Markdown 的代码格式显�?*/
200
218
  input: string;
201
- /** 代码执行后转为自然语言的输出结果,以 Markdown 格式显示 */
219
+ /** 代码执行后转为自然语言的输出结果,�?Markdown 格式显示 */
202
220
  output: string;
203
221
  }
204
222
  /**
205
223
  * Text2SQL 结果接口
206
224
  * Text2SQL 工具的输入和输出信息
207
- * 根据 OpenAPI 规范,answer 包含 result full_result
208
- * - result: Text2SqlResultData(包含 data_desc,但可能只有数据样本)
209
- * - full_result: Text2SqlFullResultData(包含完整数据,但没有 data_desc
225
+ * 根据 OpenAPI 规范,answer 包含 result �?full_result
226
+ * - result: Text2SqlResultData(包�?data_desc,但可能只有数据样本�?
227
+ * - full_result: Text2SqlFullResultData(包含完整数据,但没�?data_desc�?
210
228
  */
211
229
  export interface Text2SqlResult {
212
- /** 输入的查询文本 */
230
+ /** 输入的查询文�?*/
213
231
  title: string;
214
232
  data: Array<Record<string, any>>;
215
233
  sql: string;
@@ -217,16 +235,16 @@ export interface Text2SqlResult {
217
235
  /**
218
236
  * Text2Metric 结果接口
219
237
  * Text2Metric 工具的输入和输出信息
220
- * 根据 OpenAPI 规范,answer 包含 result full_result
221
- * - result: Text2MetricResultData(包含 data_desc,但可能只有数据样本)
222
- * - full_result: Text2MetricFullResultData(包含完整数据,但没有 data_desc
238
+ * 根据 OpenAPI 规范,answer 包含 result �?full_result
239
+ * - result: Text2MetricResultData(包�?data_desc,但可能只有数据样本�?
240
+ * - full_result: Text2MetricFullResultData(包含完整数据,但没�?data_desc�?
223
241
  */
224
242
  export interface Text2MetricResult {
225
243
  /** 结果标题 */
226
244
  title: string;
227
245
  /** 查询结果数据 */
228
246
  data: Array<Record<string, any>>;
229
- /** 查询参数(args) */
247
+ /** 查询参数(args�?*/
230
248
  args: any;
231
249
  }
232
250
  /**
@@ -248,7 +266,7 @@ export interface DataCatalogCite {
248
266
  /**
249
267
  * AfSailor 结果接口
250
268
  * AfSailor 工具的输入和输出信息
251
- * 根据 ChatKit.pdf 4.24 AfSailorResult OpenAPI 规范定义
269
+ * 根据 ChatKit.pdf 4.24 AfSailorResult �?OpenAPI 规范定义
252
270
  */
253
271
  export interface AfSailorResult {
254
272
  /** 查询结果数据 */
@@ -273,13 +291,13 @@ export interface DataCatalogMatch {
273
291
  id: string;
274
292
  /** 匹配原因 */
275
293
  reason?: string;
276
- /** 匹配的列信息,键为字段技术名称,值为字段值 */
294
+ /** 匹配的列信息,键为字段技术名称,值为字段�?*/
277
295
  matched_columns?: Array<Record<string, string>>;
278
296
  }
279
297
  /**
280
298
  * DatasourceFilter 结果接口
281
299
  * DatasourceFilter 工具的输入和输出信息
282
- * 根据 OpenAPI 规范和设计文档定义
300
+ * 根据 OpenAPI 规范和设计文档定�?
283
301
  */
284
302
  export interface DatasourceFilterResult {
285
303
  /** 数据目录匹配结果列表 */
@@ -289,7 +307,7 @@ export interface DatasourceFilterResult {
289
307
  }
290
308
  /**
291
309
  * DatasourceRerank 结果接口
292
- * DatasourceRerank 工具的输入和输出信息,与 DatasourceFilter 处理方式一致
310
+ * DatasourceRerank 工具的输入和输出信息,与 DatasourceFilter 处理方式一�?
293
311
  */
294
312
  export interface DatasourceRerankResult {
295
313
  /** 数据目录重排结果列表 */
@@ -316,18 +334,18 @@ export interface DefaultToolResult {
316
334
  export interface ToolCallData {
317
335
  /** 工具名称 */
318
336
  name: string;
319
- /** 工具图标 URL React 元素 */
337
+ /** 工具图标 URL �?React 元素 */
320
338
  icon?: string | React.ReactNode;
321
339
  /** 工具标题 */
322
340
  title: string;
323
- /** 工具调用的输入参数 */
341
+ /** 工具调用的输入参�?*/
324
342
  input?: any;
325
- /** 工具调用的输出结果 */
343
+ /** 工具调用的输出结�?*/
326
344
  output?: any;
327
345
  }
328
346
  /**
329
347
  * 历史会话记录接口
330
- * 一条历史会话记录
348
+ * 一条历史会话记�?
331
349
  */
332
350
  export interface ConversationHistory {
333
351
  /** 会话 ID */
@@ -338,99 +356,99 @@ export interface ConversationHistory {
338
356
  created_at: number;
339
357
  /** 会话最后更新时间(Unix 时间戳) */
340
358
  updated_at: number;
341
- /** 最新会话消息下标 */
359
+ /** 最新会话消息下�?*/
342
360
  message_index?: number;
343
361
  /** 最新已读的会话消息下标 */
344
362
  read_message_index?: number;
345
363
  }
346
364
  /**
347
365
  * ChatKit 接口
348
- * 定义了 ChatKit 的一些抽象方法
366
+ * 定义�?ChatKit 的一些抽象方�?
349
367
  */
350
368
  export interface ChatKitInterface {
351
369
  /**
352
- * 获取开场白和预置问题
353
- * 该方法需要由子类继承并重写,以适配扣子、Dify LLMOps 平台的接口
354
- * 返回开场白信息结构体
370
+ * 获取开场白和预置问�?
371
+ * 该方法需要由子类继承并重写,以适配扣子、Dify �?LLMOps 平台的接�?
372
+ * 返回开场白信息结构�?
355
373
  * 注意:该方法是一个无状态无副作用的函数,不允许修改 state
356
- * @returns 返回开场白信息,包含开场白文案和预置问题
374
+ * @returns 返回开场白信息,包含开场白文案和预置问�?
357
375
  */
358
376
  getOnboardingInfo(): Promise<OnboardingInfo>;
359
377
  /**
360
378
  * 新建会话
361
- * 该方法需要由子类继承并重写,以适配扣子、Dify LLMOps 平台的接口
379
+ * 该方法需要由子类继承并重写,以适配扣子、Dify �?LLMOps 平台的接�?
362
380
  * 成功返回会话 ID
363
381
  * 注意:该方法是一个无状态无副作用的函数,不允许修改 state
364
- * @param title 会话标题,通常是用户发送的第一条消息内容
382
+ * @param title 会话标题,通常是用户发送的第一条消息内�?
365
383
  * @returns 返回新创建的会话 ID
366
384
  */
367
385
  generateConversation(title?: string): Promise<string>;
368
386
  /**
369
- * 向后端发送消息
370
- * 该方法需要由开发者实现,以适配扣子、DifyLLMOps 平台的接口
387
+ * 向后端发送消�?
388
+ * 该方法需要由开发者实现,以适配扣子、Dify�?LLMOps 平台的接�?
371
389
  * 发送成功后,返回发送的消息结构
372
390
  * @param text 发送给后端的用户输入的文本
373
- * @param ctx 随用户输入文本一起发送的应用上下文
391
+ * @param ctx 随用户输入文本一起发送的应用上下�?
374
392
  * @param conversationID 发送的对话消息所属的会话 ID
375
- * @param regenerateMessageId 需要重新生成的助手消息 ID(可选,用于重新生成功能)
393
+ * @param regenerateMessageId 需要重新生成的助手消息 ID(可选,用于重新生成功能�?
376
394
  * 注意:该方法是一个无状态无副作用的函数,不允许修改 state
377
395
  * @param text 发送给后端的用户输入的文本
378
- * @param ctx 随用户输入文本一起发送的应用上下文
396
+ * @param ctx 随用户输入文本一起发送的应用上下�?
379
397
  * @param conversationID 发送的对话消息所属的会话 ID
380
398
  * @returns 返回发送的消息结构
381
399
  */
382
400
  sendMessage(text: string, ctx: ApplicationContext, conversationID?: string, regenerateMessageId?: string): Promise<ChatMessage>;
383
401
  /**
384
- * API 接口返回的 EventStream 增量解析成完整的 AssistantMessage 对象
402
+ * �?API 接口返回�?EventStream 增量解析成完整的 AssistantMessage 对象
385
403
  * 当接收到 SSE 消息时触发,该方法需要由子类实现
386
- * 子类在该方法中应该调用 appendMarkdownBlock()、appendWebSearchBlock()、appendToolBlock() 等来更新消息内容
387
- * 注意:该方法应该只处理数据解析逻辑,通过调用 append*Block 方法来更新界面
388
- * @param eventMessage 接收到的一条 Event Message
389
- * @param prev 上一次增量更新后的 AssistantMessage 对象
390
- * @param messageId 当前正在更新的消息 ID,用于调用 append*Block 方法
404
+ * 子类在该方法中应该调�?appendMarkdownBlock()、appendWebSearchBlock()、appendToolBlock() 等来更新消息内容
405
+ * 注意:该方法应该只处理数据解析逻辑,通过调用 append*Block 方法来更新界�?
406
+ * @param eventMessage 接收到的一�?Event Message
407
+ * @param prev 上一次增量更新后�?AssistantMessage 对象
408
+ * @param messageId 当前正在更新的消�?ID,用于调�?append*Block 方法
391
409
  * @returns 返回更新后的 AssistantMessage 对象
392
410
  */
393
411
  reduceAssistantMessage<T = any, K = any>(eventMessage: T, prev: K, messageId: string): K;
394
412
  /**
395
- * 检查是否需要刷新 token
396
- * 当发生异常时检查是否需要刷新 token。返回 true 表示需要刷新 token,返回 false 表示无需刷新 token
397
- * 该方法需要由子类继承并重写,以适配扣子、Dify LLMOps 平台的接口。
398
- * 注意:该方法是一个无状态无副作用的函数,不允许修改 state
413
+ * 检查是否需要刷�?token
414
+ * 当发生异常时检查是否需要刷�?token。返�?true 表示需要刷�?token,返�?false 表示无需刷新 token�?
415
+ * 该方法需要由子类继承并重写,以适配扣子、Dify �?LLMOps 平台的接口�?
416
+ * 注意:该方法是一个无状态无副作用的函数,不允许修改 state�?
399
417
  * @param status HTTP 状态码
400
- * @param error 错误响应体
401
- * @returns 返回是否需要刷新 token
418
+ * @param error 错误响应�?
419
+ * @returns 返回是否需要刷�?token
402
420
  */
403
421
  shouldRefreshToken(status: number, error: any): boolean;
404
422
  /**
405
423
  * 终止会话
406
- * 该方法需要由子类继承并重写,以适配扣子、Dify LLMOps 平台的接口。
407
- * 注意:该方法是一个无状态无副作用的函数,不允许修改 state
424
+ * 该方法需要由子类继承并重写,以适配扣子、Dify �?LLMOps 平台的接口�?
425
+ * 注意:该方法是一个无状态无副作用的函数,不允许修改 state�?
408
426
  * @param conversationId 要终止的会话 ID
409
427
  * @returns 返回 Promise,成功时 resolve,失败时 reject
410
428
  */
411
429
  terminateConversation(conversationId: string): Promise<void>;
412
430
  /**
413
431
  * 获取历史会话列表
414
- * 该方法需要由子类继承并重写,以适配扣子、Dify LLMOps 平台的接口。
415
- * 注意:该方法是一个无状态无副作用的函数,不允许修改 state
432
+ * 该方法需要由子类继承并重写,以适配扣子、Dify �?LLMOps 平台的接口�?
433
+ * 注意:该方法是一个无状态无副作用的函数,不允许修改 state�?
416
434
  * @param page 分页页码,默认为 1
417
435
  * @param size 每页返回条数,默认为 10
418
436
  * @returns 返回历史会话列表
419
437
  */
420
438
  getConversations(page?: number, size?: number): Promise<ConversationHistory[]>;
421
439
  /**
422
- * 获取指定会话 ID 的对话消息列表
423
- * 该方法需要由子类继承并重写,以适配扣子、Dify LLMOps 平台的接口。
424
- * 如果对话消息是 AI 助手消息,则需要调用 reduceAssistantMessage() 解析消息。
425
- * 注意:该方法是一个无状态无副作用的函数,不允许修改 state
440
+ * 获取指定会话 ID 的对话消息列�?
441
+ * 该方法需要由子类继承并重写,以适配扣子、Dify �?LLMOps 平台的接口�?
442
+ * 如果对话消息�?AI 助手消息,则需要调�?reduceAssistantMessage() 解析消息�?
443
+ * 注意:该方法是一个无状态无副作用的函数,不允许修改 state�?
426
444
  * @param conversationId 会话 ID
427
445
  * @returns 返回对话消息列表
428
446
  */
429
447
  getConversationMessages(conversationId: string): Promise<ChatMessage[]>;
430
448
  /**
431
- * 删除指定 ID 的会话
432
- * 该方法需要由子类继承并重写,以适配扣子、Dify LLMOps 平台的接口。
433
- * 注意:该方法是一个无状态无副作用的函数,不允许修改 state
449
+ * 删除指定 ID 的会�?
450
+ * 该方法需要由子类继承并重写,以适配扣子、Dify �?LLMOps 平台的接口�?
451
+ * 注意:该方法是一个无状态无副作用的函数,不允许修改 state�?
434
452
  * @param conversationID 会话 ID
435
453
  * @returns 返回 Promise,成功时 resolve,失败时 reject
436
454
  */
@@ -438,18 +456,18 @@ export interface ChatKitInterface {
438
456
  }
439
457
  /**
440
458
  * 图表类型枚举
441
- * 支持的图表类型
459
+ * 支持的图表类�?
442
460
  */
443
461
  export type ChartType = 'Line' | 'Column' | 'Pie' | 'Circle';
444
462
  /**
445
- * 数据行
463
+ * 数据�?
446
464
  */
447
465
  export type DataRow = Record<string, any>;
448
466
  /**
449
467
  * 维度接口
450
468
  */
451
469
  export interface Dimension {
452
- /** 字段名 */
470
+ /** 字段�?*/
453
471
  name: string;
454
472
  /** 显示名称 */
455
473
  displayName: string;
@@ -460,7 +478,7 @@ export interface Dimension {
460
478
  * 度量接口
461
479
  */
462
480
  export interface Measure {
463
- /** 字段名 */
481
+ /** 字段�?*/
464
482
  name: string;
465
483
  /** 显示名称 */
466
484
  displayName: string;
@@ -481,7 +499,7 @@ export interface ChartDataSchema {
481
499
  dimensions: Dimension[];
482
500
  /** 度量列表 */
483
501
  measures: Measure[];
484
- /** 数据行列表 */
502
+ /** 数据行列�?*/
485
503
  rows: DataRow[];
486
504
  }
487
505
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kweaver-ai/chatkit",
3
- "version": "0.1.17",
3
+ "version": "0.1.19",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },