diff --git a/llama_stack/apis/common/content_types.py b/llama_stack/apis/common/content_types.py index 121218a29..054ef2e18 100644 --- a/llama_stack/apis/common/content_types.py +++ b/llama_stack/apis/common/content_types.py @@ -27,6 +27,9 @@ class _URLOrData(BaseModel): return values return {"url": values} + class Config: + json_encoders = {bytes: lambda v: str("binary data")} + @json_schema_type class ImageContentItem(_URLOrData): diff --git a/llama_stack/providers/utils/telemetry/trace_protocol.py b/llama_stack/providers/utils/telemetry/trace_protocol.py index 7d1714576..31897c0ae 100644 --- a/llama_stack/providers/utils/telemetry/trace_protocol.py +++ b/llama_stack/providers/utils/telemetry/trace_protocol.py @@ -23,12 +23,7 @@ def serialize_value(value: Any) -> Any: elif hasattr(value, "_name_"): return value._name_ elif isinstance(value, BaseModel): - try: - return value.model_dump_json() - except Exception as e: - # We cannot serialize the binary bytes data, - # So we return the model dump as a string for logging - return str(value.model_dump()) + return value.model_dump_json() elif isinstance(value, (list, tuple, set)): return [serialize_value(item) for item in value] elif isinstance(value, dict):