mirror of
https://github.com/mistralai/mistral-vibe
synced 2026-04-25 17:14:55 +02:00
Co-authored-by: Quentin Torroba <quentin.torroba@mistral.ai> Co-authored-by: Clément Siriex <clement.sirieix@mistral.ai> Co-authored-by: Kim-Adeline Miguel <kimadeline.miguel@mistral.ai> Co-authored-by: Michel Thomazo <michel.thomazo@mistral.ai> Co-authored-by: Clément Drouin <clement.drouin@mistral.ai>
25 lines
877 B
Python
25 lines
877 B
Python
from __future__ import annotations
|
|
|
|
from vibe.core.types import LLMMessage, Role
|
|
|
|
|
|
def merge_consecutive_user_messages(messages: list[LLMMessage]) -> list[LLMMessage]:
|
|
"""Merge consecutive user messages into a single message.
|
|
|
|
This handles cases where middleware injects messages resulting in
|
|
consecutive user messages before sending to the API.
|
|
"""
|
|
result: list[LLMMessage] = []
|
|
for msg in messages:
|
|
if result and result[-1].role == Role.user and msg.role == Role.user:
|
|
prev_content = result[-1].content or ""
|
|
curr_content = msg.content or ""
|
|
merged_content = f"{prev_content}\n\n{curr_content}".strip()
|
|
result[-1] = LLMMessage(
|
|
role=Role.user, content=merged_content, message_id=result[-1].message_id
|
|
)
|
|
else:
|
|
result.append(msg)
|
|
|
|
return result
|