Files
mistral-vibe/vibe/core/llm/message_utils.py
Mathias Gesbert ec7f3b25ea v2.2.0 (#395)
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>
2026-02-17 16:23:28 +01:00

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