"""Converts between AIMessage output formats, governed by `output_version`.""" from __future__ import annotations from langchain_core.messages import AIMessage def _convert_from_v1_to_chat_completions(message: AIMessage) -> AIMessage: """Convert a v1 message to the Chat Completions format.""" if isinstance(message.content, list): new_content: list = [] for block in message.content: if isinstance(block, dict): block_type = block.get("type") if block_type == "text": # Strip annotations new_content.append({"type": "text", "text": block["text"]}) elif block_type in ("reasoning", "tool_call"): pass else: new_content.append(block) else: new_content.append(block) return message.model_copy(update={"content": new_content}) return message