Skip to content

Commit 4fb32c3

Browse files
committed
fix(bubble): refine message grouping logic based on user role
- Updated the grouping logic in `BubbleList.vue` to ensure that messages with an array content are only treated as independent groups if the message role is 'user'. - Adjusted the documentation in `index.type.ts` to reflect this new condition for message grouping, enhancing clarity on how messages are processed.
1 parent 03dc194 commit 4fb32c3

2 files changed

Lines changed: 3 additions & 3 deletions

File tree

packages/components/src/bubble/BubbleList.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ const groupByRole = (messages: BubbleMessage[]): BubbleMessageGroup[] => {
7777
7878
for (const [index, message] of messages.entries()) {
7979
const lastGroup = groups[groups.length - 1]
80-
const isArrayContent = Array.isArray(contentResolver(message))
80+
const isArrayContent = message.role === 'user' && Array.isArray(contentResolver(message))
8181
const messageRole = message.role || ''
8282
const isMessageHidden = isRoleHidden(message.role)
8383
@@ -134,7 +134,7 @@ const groupByDivider = (messages: BubbleMessage[], dividerRole: string): BubbleM
134134
for (const [index, message] of messages.entries()) {
135135
const lastGroup = groups[groups.length - 1]
136136
const isDivider = message.role === dividerRole
137-
const isArrayContent = Array.isArray(contentResolver(message))
137+
const isArrayContent = message.role === 'user' && Array.isArray(contentResolver(message))
138138
const messageRole = message.role || ''
139139
const isMessageHidden = isRoleHidden(message.role)
140140

packages/components/src/bubble/index.type.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ export interface BubbleListProps {
136136
* - 自定义函数: (messages, dividerRole) => BubbleMessageGroup[]
137137
*
138138
* 特殊情况:
139-
* - 当 message 的 content 为数组时,该 message 会被单独作为一个独立分组
139+
* - 当 message 的 content 为数组时,且 message.role === 'user',该 message 会被单独作为一个独立分组
140140
* - 该独立分组会被"密封",后续的消息(即使角色相同)也不会被添加到这个分组中
141141
*/
142142
groupStrategy?: 'consecutive' | 'divider' | BubbleGroupFunction

0 commit comments

Comments
 (0)