Skip to content

Commit b53a2ad

Browse files
authored
Merge pull request #749 from narengogi/chore/bedrock/combine-successive-user-messages
feat: combine successive user messages in bedrock
2 parents eaff911 + a32042a commit b53a2ad

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

src/providers/bedrock/chatComplete.ts

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,14 +149,31 @@ export const BedrockConverseChatCompleteConfig: ProviderConfig = {
149149
required: true,
150150
transform: (params: BedrockChatCompletionsParams) => {
151151
if (!params.messages) return [];
152-
return params.messages
152+
const transformedMessages = params.messages
153153
.filter((msg) => msg.role !== 'system')
154154
.map((msg) => {
155155
return {
156156
role: msg.role === 'assistant' ? 'assistant' : 'user',
157157
content: getMessageContent(msg),
158158
};
159159
});
160+
let prevRole = '';
161+
// combine user messages in succession
162+
const combinedMessages = transformedMessages.reduce(
163+
(acc: typeof transformedMessages, msg) => {
164+
if (msg.role === 'user' && prevRole === 'user') {
165+
const lastMessage = acc[acc.length - 1];
166+
const newContent = [...lastMessage.content, ...msg.content];
167+
lastMessage.content = newContent as typeof lastMessage.content;
168+
} else {
169+
acc.push(msg);
170+
}
171+
prevRole = msg.role;
172+
return acc;
173+
},
174+
[]
175+
);
176+
return combinedMessages;
160177
},
161178
},
162179
{

0 commit comments

Comments
 (0)