@next-bricks/ai 1.32.14 → 1.32.15

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.
@@ -0,0 +1,117 @@
1
+ ---
2
+ tagName: ai.chat-agent
3
+ displayName: WrappedAiChatAgent
4
+ description: 用于与 AI 机器人进行对话的代理构件,处理通信并整合消息。
5
+ category: ai
6
+ source: "@next-bricks/ai"
7
+ ---
8
+
9
+ # ai.chat-agent
10
+
11
+ > 用于与 AI 机器人进行对话的代理构件,处理通信并整合消息。
12
+
13
+ ## Props
14
+
15
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
16
+ | ------------------------ | --------- | ---- | ------ | ---------------------------------------------------------------- |
17
+ | agentId | `string` | 否 | - | 智能体 ID |
18
+ | robotId | `string` | 否 | - | 机器人 ID |
19
+ | conversationId | `string` | 否 | - | 会话 ID,用于延续历史会话 |
20
+ | alwaysUseNewConversation | `boolean` | 否 | - | 是否每次请求都使用新会话,设为 true 时每次发消息不会延续历史会话 |
21
+
22
+ ## Events
23
+
24
+ | 事件 | detail | 说明 |
25
+ | --------------------- | --------------------------------------------------- | ----------------------------------------------------------------- |
26
+ | messages.update | `Message[]` — 当前全部消息列表 | 消息列表更新时触发 |
27
+ | busy.change | `boolean` — 当前忙碌状态 | 忙碌状态变化时触发,true 表示正在等待 AI 响应,false 表示响应完成 |
28
+ | conversationId.change | `string \| null` — 新的会话 ID,开启新会话时为 null | 会话 ID 变化时触发 |
29
+
30
+ ## Methods
31
+
32
+ | 方法 | 参数 | 返回值 | 说明 |
33
+ | ------------------- | ------------------------------------------------------------------------------------------------- | ------ | -------------------------------------------------------------------------------- |
34
+ | postMessage | `(content: string) => void` | `void` | 发送消息到默认的聊天 API |
35
+ | sendRequest | `(leadingMessages: string \| BaseMessage[], url: string, options: Options<MessageChunk>) => void` | `void` | 发送聊天请求到指定的 URL |
36
+ | lowLevelSendRequest | `(leadingMessages: string \| BaseMessage[], url: string, options: Options<MessageChunk>) => void` | `void` | 发送底层聊天请求到指定的 URL。接口的请求和响应的数据结构和 OpenAI 聊天接口一致。 |
37
+ | newConversation | `() => void` | `void` | 开启新会话,清空当前消息列表并重置会话状态 |
38
+
39
+ ## Examples
40
+
41
+ ### Basic
42
+
43
+ 使用默认聊天接口发送消息,监听消息列表更新和忙碌状态变化。
44
+
45
+ ```yaml preview
46
+ brick: ai.chat-agent
47
+ properties:
48
+ id: chat-agent
49
+ agentId: my-agent-id
50
+ robotId: my-robot-id
51
+ events:
52
+ messages.update:
53
+ - action: console.log
54
+ args:
55
+ - messages
56
+ - <% EVENT.detail %>
57
+ busy.change:
58
+ - action: console.log
59
+ args:
60
+ - busy
61
+ - <% EVENT.detail %>
62
+ ```
63
+
64
+ ### Conversation Management
65
+
66
+ 通过方法调用控制会话,包括发送消息和开启新会话。
67
+
68
+ ```yaml preview
69
+ - brick: ai.chat-agent
70
+ properties:
71
+ id: chat-agent
72
+ agentId: my-agent-id
73
+ robotId: my-robot-id
74
+ events:
75
+ messages.update:
76
+ - action: console.log
77
+ args:
78
+ - <% EVENT.detail %>
79
+ conversationId.change:
80
+ - action: console.log
81
+ args:
82
+ - conversationId changed
83
+ - <% EVENT.detail %>
84
+ - brick: eo-button
85
+ properties:
86
+ textContent: 发送消息
87
+ events:
88
+ click:
89
+ - target: "#chat-agent"
90
+ method: postMessage
91
+ args:
92
+ - 你好,请介绍一下自己
93
+ - brick: eo-button
94
+ properties:
95
+ textContent: 开启新会话
96
+ events:
97
+ click:
98
+ - target: "#chat-agent"
99
+ method: newConversation
100
+ ```
101
+
102
+ ### Always New Conversation
103
+
104
+ 每次发送消息都使用新会话,不延续历史上下文。
105
+
106
+ ```yaml preview
107
+ brick: ai.chat-agent
108
+ properties:
109
+ agentId: my-agent-id
110
+ robotId: my-robot-id
111
+ alwaysUseNewConversation: true
112
+ events:
113
+ messages.update:
114
+ - action: console.log
115
+ args:
116
+ - <% EVENT.detail %>
117
+ ```
@@ -0,0 +1,95 @@
1
+ ---
2
+ tagName: ai.chat-agent
3
+ displayName: WrappedAiChatAgent
4
+ description: 用于与 AI 机器人进行对话的代理构件,处理通信并整合消息。
5
+ category: ai
6
+ source: "@next-bricks/ai"
7
+ ---
8
+
9
+ # WrappedAiChatAgent
10
+
11
+ > 用于与 AI 机器人进行对话的代理构件,处理通信并整合消息。
12
+
13
+ ## 导入
14
+
15
+ ```tsx
16
+ import { WrappedAiChatAgent } from "@easyops/wrapped-components";
17
+ ```
18
+
19
+ ## Props
20
+
21
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
22
+ | ------------------------ | --------- | ---- | ------ | ---------------------------------------------------------------- |
23
+ | agentId | `string` | 否 | - | 智能体 ID |
24
+ | robotId | `string` | 否 | - | 机器人 ID |
25
+ | conversationId | `string` | 否 | - | 会话 ID,用于延续历史会话 |
26
+ | alwaysUseNewConversation | `boolean` | 否 | - | 是否每次请求都使用新会话,设为 true 时每次发消息不会延续历史会话 |
27
+
28
+ ## Events
29
+
30
+ | 事件 | detail | 说明 |
31
+ | ---------------------- | --------------------------------------------------- | ----------------------------------------------------------------- |
32
+ | onMessagesUpdate | `Message[]` — 当前全部消息列表 | 消息列表更新时触发 |
33
+ | onBusyChange | `boolean` — 当前忙碌状态 | 忙碌状态变化时触发,true 表示正在等待 AI 响应,false 表示响应完成 |
34
+ | onConversationIdChange | `string \| null` — 新的会话 ID,开启新会话时为 null | 会话 ID 变化时触发 |
35
+
36
+ ## Methods
37
+
38
+ | 方法 | 参数 | 返回值 | 说明 |
39
+ | ------------------- | ------------------------------------------------------------------------------------------------- | ------ | -------------------------------------------------------------------------------- |
40
+ | postMessage | `(content: string) => void` | `void` | 发送消息到默认的聊天 API |
41
+ | sendRequest | `(leadingMessages: string \| BaseMessage[], url: string, options: Options<MessageChunk>) => void` | `void` | 发送聊天请求到指定的 URL |
42
+ | lowLevelSendRequest | `(leadingMessages: string \| BaseMessage[], url: string, options: Options<MessageChunk>) => void` | `void` | 发送底层聊天请求到指定的 URL。接口的请求和响应的数据结构和 OpenAI 聊天接口一致。 |
43
+ | newConversation | `() => void` | `void` | 开启新会话,清空当前消息列表并重置会话状态 |
44
+
45
+ ## Examples
46
+
47
+ ### Basic
48
+
49
+ 使用默认聊天接口发送消息,监听消息列表更新和忙碌状态变化。
50
+
51
+ ```tsx
52
+ <WrappedAiChatAgent
53
+ agentId="my-agent-id"
54
+ robotId="my-robot-id"
55
+ onMessagesUpdate={(e) => console.log("messages", e.detail)}
56
+ onBusyChange={(e) => console.log("busy", e.detail)}
57
+ />
58
+ ```
59
+
60
+ ### Conversation Management
61
+
62
+ 通过方法调用控制会话,包括发送消息和开启新会话。
63
+
64
+ ```tsx
65
+ const ref = useRef<any>();
66
+
67
+ <>
68
+ <WrappedAiChatAgent
69
+ ref={ref}
70
+ agentId="my-agent-id"
71
+ robotId="my-robot-id"
72
+ onMessagesUpdate={(e) => console.log(e.detail)}
73
+ onConversationIdChange={(e) =>
74
+ console.log("conversationId changed", e.detail)
75
+ }
76
+ />
77
+ <button onClick={() => ref.current?.postMessage("你好,请介绍一下自己")}>
78
+ 发送消息
79
+ </button>
80
+ <button onClick={() => ref.current?.newConversation()}>开启新会话</button>
81
+ </>;
82
+ ```
83
+
84
+ ### Always New Conversation
85
+
86
+ 每次发送消息都使用新会话,不延续历史上下文。
87
+
88
+ ```tsx
89
+ <WrappedAiChatAgent
90
+ agentId="my-agent-id"
91
+ robotId="my-robot-id"
92
+ alwaysUseNewConversation={true}
93
+ onMessagesUpdate={(e) => console.log(e.detail)}
94
+ />
95
+ ```
@@ -0,0 +1,132 @@
1
+ ---
2
+ tagName: ai.chat-view
3
+ displayName: WrappedAiChatView
4
+ description: AI 对话终端
5
+ category: ai
6
+ source: "@next-bricks/ai"
7
+ ---
8
+
9
+ # ai.chat-view
10
+
11
+ > AI 对话终端
12
+
13
+ ## Props
14
+
15
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
16
+ | ----------------- | ------------------- | ---- | ------- | ------------------------------------------------------------------ |
17
+ | agentId | `string` | 是 | - | 智能体id |
18
+ | robotId | `string` | 是 | - | 机器人id |
19
+ | sessionId | `string` | 否 | - | 当前会话 ID |
20
+ | answerLanguage | `string` | 否 | - | 指定智能体回答代码时所使用的语言 |
21
+ | debug | `boolean` | 否 | - | 是否为debug模式 |
22
+ | showAvatar | `boolean` | 否 | `true` | 是否展示对话用户头像 |
23
+ | showSessionList | `boolean` | 否 | `true` | 是否展示历史会话信息 |
24
+ | readonly | `boolean` | 否 | - | 只读模式 |
25
+ | showLike | `boolean` | 否 | `true` | 是否展示点赞能力 |
26
+ | showShare | `boolean` | 否 | `true` | 是否展示分享能力 |
27
+ | useSpiltWord | `boolean` | 否 | `false` | 是否开启前端分词 |
28
+ | enterInterval | `number` | 否 | `50` | 输入间隔,设置为 -1 使用新的方式对大段消息进行模拟打字效果节流输出 |
29
+ | quickAnswerConfig | `QuickAnswerConfig` | 否 | - | 快速入口列表 |
30
+ | snippetList | `snippet[]` | 否 | - | 常用语列表 |
31
+ | commandBricks | `commandBrickConf` | 否 | - | 自定义语言配置 |
32
+ | inputToolbarBrick | `InputToolbarBrick` | 否 | - | 输入框工具栏 useBrick |
33
+ | showToolCalls | `boolean` | 否 | - | 是否显示工具调用过程 |
34
+
35
+ ## Events
36
+
37
+ | 事件 | detail | 说明 |
38
+ | ---------------- | ----------------------------------------------- | ---------------------------------------------------- |
39
+ | sessionId.change | `string \| undefined` — 当前激活的会话 ID | 会话 ID 变化时触发 |
40
+ | robotId.change | `string \| undefined` — 当前会话对应的机器人 ID | 机器人 ID 变化时触发(切换会话时可能切换对应机器人) |
41
+ | qa.finish | `string \| undefined` — 当前激活的会话 ID | 一次问答完成时触发(chatting 从 true 变为 false 时) |
42
+
43
+ ## Methods
44
+
45
+ | 方法 | 参数 | 返回值 | 说明 |
46
+ | -------------- | ---------------------------------------------------------- | ------ | ------------------------------------------ |
47
+ | setConfig | `(config: Record<string, unknown> \| undefined) => void` | `void` | 设置接口 config |
48
+ | setFormData | `(formData: Record<string, unknown> \| undefined) => void` | `void` | 设置接口 formData |
49
+ | insertQuestion | `(args: { value: string }) => void` | `void` | 调用方法进行提问,将内容插入输入框并发送 |
50
+ | sendMsg | `(msg: string \| ChatBody) => void` | `void` | 外部发起提问,直接发送消息不经过输入框交互 |
51
+
52
+ ## Examples
53
+
54
+ ### Basic
55
+
56
+ 基础对话终端,展示历史会话列表和对话消息。
57
+
58
+ ```yaml preview
59
+ brick: ai.chat-view
60
+ properties:
61
+ agentId: my-agent-id
62
+ robotId: my-robot-id
63
+ showAvatar: true
64
+ showSessionList: true
65
+ showLike: true
66
+ showShare: true
67
+ events:
68
+ sessionId.change:
69
+ - action: console.log
70
+ args:
71
+ - sessionId changed
72
+ - <% EVENT.detail %>
73
+ qa.finish:
74
+ - action: console.log
75
+ args:
76
+ - qa finished
77
+ - <% EVENT.detail %>
78
+ ```
79
+
80
+ ### Readonly Mode
81
+
82
+ 只读模式,隐藏输入框,仅展示历史消息内容。
83
+
84
+ ```yaml preview
85
+ brick: ai.chat-view
86
+ properties:
87
+ agentId: my-agent-id
88
+ robotId: my-robot-id
89
+ readonly: true
90
+ sessionId: existing-session-id
91
+ ```
92
+
93
+ ### External Send Message
94
+
95
+ 通过外部按钮触发提问,直接发送消息到对话终端。
96
+
97
+ ```yaml preview
98
+ - brick: ai.chat-view
99
+ properties:
100
+ id: chat-view
101
+ agentId: my-agent-id
102
+ robotId: my-robot-id
103
+ showSessionList: false
104
+ events:
105
+ robotId.change:
106
+ - action: console.log
107
+ args:
108
+ - <% EVENT.detail %>
109
+ - brick: eo-button
110
+ properties:
111
+ textContent: 外部提问
112
+ events:
113
+ click:
114
+ - target: "#chat-view"
115
+ method: sendMsg
116
+ args:
117
+ - 请介绍一下产品功能
118
+ ```
119
+
120
+ ### With Tool Calls
121
+
122
+ 显示工具调用过程,适合调试智能体工具链场景。
123
+
124
+ ```yaml preview
125
+ brick: ai.chat-view
126
+ properties:
127
+ agentId: my-agent-id
128
+ robotId: my-robot-id
129
+ showToolCalls: true
130
+ debug: true
131
+ enterInterval: -1
132
+ ```
@@ -0,0 +1,123 @@
1
+ ---
2
+ tagName: ai.chat-view
3
+ displayName: WrappedAiChatView
4
+ description: AI 对话终端
5
+ category: ai
6
+ source: "@next-bricks/ai"
7
+ ---
8
+
9
+ # WrappedAiChatView
10
+
11
+ > AI 对话终端
12
+
13
+ ## 导入
14
+
15
+ ```tsx
16
+ import { WrappedAiChatView } from "@easyops/wrapped-components";
17
+ ```
18
+
19
+ ## Props
20
+
21
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
22
+ | ----------------- | ------------------- | ---- | ------- | ------------------------------------------------------------------ |
23
+ | agentId | `string` | 是 | - | 智能体id |
24
+ | robotId | `string` | 是 | - | 机器人id |
25
+ | sessionId | `string` | 否 | - | 当前会话 ID |
26
+ | answerLanguage | `string` | 否 | - | 指定智能体回答代码时所使用的语言 |
27
+ | debug | `boolean` | 否 | - | 是否为debug模式 |
28
+ | showAvatar | `boolean` | 否 | `true` | 是否展示对话用户头像 |
29
+ | showSessionList | `boolean` | 否 | `true` | 是否展示历史会话信息 |
30
+ | readonly | `boolean` | 否 | - | 只读模式 |
31
+ | showLike | `boolean` | 否 | `true` | 是否展示点赞能力 |
32
+ | showShare | `boolean` | 否 | `true` | 是否展示分享能力 |
33
+ | useSpiltWord | `boolean` | 否 | `false` | 是否开启前端分词 |
34
+ | enterInterval | `number` | 否 | `50` | 输入间隔,设置为 -1 使用新的方式对大段消息进行模拟打字效果节流输出 |
35
+ | quickAnswerConfig | `QuickAnswerConfig` | 否 | - | 快速入口列表 |
36
+ | snippetList | `snippet[]` | 否 | - | 常用语列表 |
37
+ | commandBricks | `commandBrickConf` | 否 | - | 自定义语言配置 |
38
+ | inputToolbarBrick | `InputToolbarBrick` | 否 | - | 输入框工具栏 useBrick |
39
+ | showToolCalls | `boolean` | 否 | - | 是否显示工具调用过程 |
40
+
41
+ ## Events
42
+
43
+ | 事件 | detail | 说明 |
44
+ | ----------------- | ----------------------------------------------- | ---------------------------------------------------- |
45
+ | onSessionIdChange | `string \| undefined` — 当前激活的会话 ID | 会话 ID 变化时触发 |
46
+ | onRobotIdChange | `string \| undefined` — 当前会话对应的机器人 ID | 机器人 ID 变化时触发(切换会话时可能切换对应机器人) |
47
+ | onQaFinish | `string \| undefined` — 当前激活的会话 ID | 一次问答完成时触发(chatting 从 true 变为 false 时) |
48
+
49
+ ## Methods
50
+
51
+ | 方法 | 参数 | 返回值 | 说明 |
52
+ | -------------- | ---------------------------------------------------------- | ------ | ------------------------------------------ |
53
+ | setConfig | `(config: Record<string, unknown> \| undefined) => void` | `void` | 设置接口 config |
54
+ | setFormData | `(formData: Record<string, unknown> \| undefined) => void` | `void` | 设置接口 formData |
55
+ | insertQuestion | `(args: { value: string }) => void` | `void` | 调用方法进行提问,将内容插入输入框并发送 |
56
+ | sendMsg | `(msg: string \| ChatBody) => void` | `void` | 外部发起提问,直接发送消息不经过输入框交互 |
57
+
58
+ ## Examples
59
+
60
+ ### Basic
61
+
62
+ 基础对话终端,展示历史会话列表和对话消息。
63
+
64
+ ```tsx
65
+ <WrappedAiChatView
66
+ agentId="my-agent-id"
67
+ robotId="my-robot-id"
68
+ showAvatar={true}
69
+ showSessionList={true}
70
+ showLike={true}
71
+ showShare={true}
72
+ onSessionIdChange={(e) => console.log("sessionId changed", e.detail)}
73
+ onQaFinish={(e) => console.log("qa finished", e.detail)}
74
+ />
75
+ ```
76
+
77
+ ### Readonly Mode
78
+
79
+ 只读模式,隐藏输入框,仅展示历史消息内容。
80
+
81
+ ```tsx
82
+ <WrappedAiChatView
83
+ agentId="my-agent-id"
84
+ robotId="my-robot-id"
85
+ readonly={true}
86
+ sessionId="existing-session-id"
87
+ />
88
+ ```
89
+
90
+ ### External Send Message
91
+
92
+ 通过外部按钮触发提问,直接发送消息到对话终端。
93
+
94
+ ```tsx
95
+ const ref = useRef<any>();
96
+
97
+ <>
98
+ <WrappedAiChatView
99
+ ref={ref}
100
+ agentId="my-agent-id"
101
+ robotId="my-robot-id"
102
+ showSessionList={false}
103
+ onRobotIdChange={(e) => console.log(e.detail)}
104
+ />
105
+ <button onClick={() => ref.current?.sendMsg("请介绍一下产品功能")}>
106
+ 外部提问
107
+ </button>
108
+ </>;
109
+ ```
110
+
111
+ ### With Tool Calls
112
+
113
+ 显示工具调用过程,适合调试智能体工具链场景。
114
+
115
+ ```tsx
116
+ <WrappedAiChatView
117
+ agentId="my-agent-id"
118
+ robotId="my-robot-id"
119
+ showToolCalls={true}
120
+ debug={true}
121
+ enterInterval={-1}
122
+ />
123
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-bricks/ai",
3
- "version": "1.32.14",
3
+ "version": "1.32.15",
4
4
  "homepage": "https://github.com/easyops-cn/next-advanced-bricks/tree/master/bricks/ai",
5
5
  "repository": {
6
6
  "type": "git",
@@ -52,5 +52,5 @@
52
52
  "@next-bricks/form": "*",
53
53
  "@next-bricks/icons": "*"
54
54
  },
55
- "gitHead": "53186cc54c9c1599b8677eedd6ea0825310bbe37"
55
+ "gitHead": "2670992c377a46bcaed4f3ed70431bb5441c4bb7"
56
56
  }