@@ -1170,9 +1170,9 @@ def _parse_stream_event(event: Dict[str, Any]) -> Optional[BaseMessageChunk]:
1170
1170
if "messageStart" in event :
1171
1171
# TODO: needed?
1172
1172
return (
1173
- AIMessageChunk (content = [] )
1173
+ AIMessageChunk (content = "" )
1174
1174
if event ["messageStart" ]["role" ] == "assistant"
1175
- else HumanMessageChunk (content = [] )
1175
+ else HumanMessageChunk (content = "" )
1176
1176
)
1177
1177
elif "contentBlockStart" in event :
1178
1178
block = {
@@ -1189,7 +1189,9 @@ def _parse_stream_event(event: Dict[str, Any]) -> Optional[BaseMessageChunk]:
1189
1189
index = event ["contentBlockStart" ]["contentBlockIndex" ],
1190
1190
)
1191
1191
)
1192
- return AIMessageChunk (content = [block ], tool_call_chunks = tool_call_chunks )
1192
+ # Keep content as list during streaming to preserve merging compatibility
1193
+ content = [block ]
1194
+ return AIMessageChunk (content = content , tool_call_chunks = tool_call_chunks )
1193
1195
elif "contentBlockDelta" in event :
1194
1196
block = {
1195
1197
** _bedrock_to_lc ([event ["contentBlockDelta" ]["delta" ]])[0 ],
@@ -1205,19 +1207,19 @@ def _parse_stream_event(event: Dict[str, Any]) -> Optional[BaseMessageChunk]:
1205
1207
index = event ["contentBlockDelta" ]["contentBlockIndex" ],
1206
1208
)
1207
1209
)
1208
- return AIMessageChunk (content = [block ], tool_call_chunks = tool_call_chunks )
1210
+ # Keep content as list during streaming to preserve merging compatibility
1211
+ content = [block ]
1212
+ return AIMessageChunk (content = content , tool_call_chunks = tool_call_chunks )
1209
1213
elif "contentBlockStop" in event :
1210
1214
# TODO: needed?
1211
- return AIMessageChunk (
1212
- content = [{"index" : event ["contentBlockStop" ]["contentBlockIndex" ]}]
1213
- )
1215
+ return AIMessageChunk (content = "" )
1214
1216
elif "messageStop" in event :
1215
1217
# TODO: snake case response metadata?
1216
- return AIMessageChunk (content = [] , response_metadata = event ["messageStop" ])
1218
+ return AIMessageChunk (content = "" , response_metadata = event ["messageStop" ])
1217
1219
elif "metadata" in event :
1218
1220
usage = _extract_usage_metadata (event ["metadata" ])
1219
1221
return AIMessageChunk (
1220
- content = [] , response_metadata = event ["metadata" ], usage_metadata = usage
1222
+ content = "" , response_metadata = event ["metadata" ], usage_metadata = usage
1221
1223
)
1222
1224
elif "Exception" in list (event .keys ())[0 ]:
1223
1225
name , info = list (event .items ())[0 ]
0 commit comments