This commit is contained in:
Chester Curme 2025-07-11 15:25:07 -04:00
parent 7e740e5e1f
commit 3460c48af6
2 changed files with 15 additions and 23 deletions

View File

@ -213,31 +213,23 @@ class AIMessage(BaseMessage):
otherwise, does best-effort parsing to standard types.
"""
blocks: list[types.ContentBlock] = []
if isinstance(self.content, str):
if self.content:
blocks.append({"type": "text", "text": self.content})
content = [self.content] if isinstance(self.content, str) else self.content
for item in content:
if isinstance(item, str):
blocks.append({"type": "text", "text": item})
elif isinstance(item, dict):
item_type = item.get("type")
if item_type not in types.KNOWN_BLOCK_TYPES:
msg = (
f"Non-standard content block type '{item_type}'. Ensure "
"the model supports `output_version='v1'` or higher and "
"that this attribute is set on initialization."
)
raise ValueError(msg)
else:
pass
elif isinstance(self.content, list):
for item in self.content:
if isinstance(item, str):
blocks.append({"type": "text", "text": item})
elif isinstance(item, dict):
item_type = item.get("type")
if item_type not in types.KNOWN_BLOCK_TYPES:
msg = (
f"Non-standard content block type '{item_type}'. Ensure "
"the model supports `output_version='v1'` or higher and "
"that this attribute is set on initialization."
)
raise ValueError(msg)
else:
pass
else:
pass
# Add from tool_calls if missing from content
content_tool_call_ids = {
block.get("id")

View File

@ -156,7 +156,7 @@ _DataContentBlockAdapter: TypeAdapter[DataContentBlock] = TypeAdapter(DataConten
# Non-standard
class NonStandardContentBlock(TypedDict, total=False):
class NonStandardContentBlock(TypedDict):
"""Content block provider-specific data.
This block contains data for which there is not yet a standard type.