vibe.llm_providers.message_converter¶
MessageConverter - Visitor pattern for converting Message objects to provider formats.
Each LLM provider has a different message format. This module provides the abstract base class that all converters implement. Concrete converters are defined in their respective provider modules (e.g., OpenAIChatConverter in openai.py).
Design principles: - Message classes remain pure data containers - Each provider defines its own converter in its module - New providers add converters without touching Message classes - Conversion logic is co-located with provider code - Uses singledispatch for type-based dispatch (replaces isinstance chains)
MessageConverter ¶
Abstract base for message converters.
Each provider implements this to convert our internal Message types to their specific API format.
convert_system ¶
convert_system(msg: SystemMessage) -> object
Convert a system message to provider format.
convert_assistant ¶
convert_assistant(msg: AssistantMessage) -> object
Convert an assistant message to provider format.
convert_tool_result ¶
convert_tool_result(msg: ToolResult) -> object
Convert a tool result to provider format.
convert ¶
convert(msg: Message) -> object
Convert a single message by dispatching to the appropriate method.
This is the main entry point for single message conversion. Uses singledispatch for type-based dispatch instead of isinstance chains.
convert_all ¶
convert_all(messages: list[Message]) -> object
Convert a list of messages to provider format.
Default implementation converts each message individually. Subclasses may override for providers that need special handling (e.g., Anthropic requiring alternating roles, or batching tool results).
InternalFormatConverter ¶
Converter that uses message_to_dict() for internal dict format.
Used by providers that work with our internal dict format (like Ollama).
convert_system ¶
convert_system(msg: SystemMessage) -> dict[str, Any]
Serialize system message to internal dict format.
convert_user ¶
convert_user(msg: UserMessage) -> dict[str, Any]
Serialize user message to internal dict format.
convert_assistant ¶
convert_assistant(msg: AssistantMessage) -> dict[str, Any]
Serialize assistant message to internal dict format.
convert_tool_result ¶
convert_tool_result(msg: ToolResult) -> dict[str, Any]
Serialize tool result to internal dict format.
IdentityConverter ¶
Converter that returns Message objects unchanged.
Used by providers that work with Message objects natively (like MockProvider).
convert_system ¶
convert_system(msg: SystemMessage) -> SystemMessage
Return system message unchanged.
convert_assistant ¶
convert_assistant(msg: AssistantMessage) -> AssistantMessage
Return assistant message unchanged.
convert_tool_result ¶
convert_tool_result(msg: ToolResult) -> ToolResult
Return tool result unchanged.