in aidial_adapter_vertexai/utils/json.py [0:0]
def _truncate_strings(obj: Any, limit: int) -> Any:
def rec(val):
return _truncate_strings(val, limit)
if isinstance(obj, dict):
return {key: rec(value) for key, value in obj.items()}
if isinstance(obj, list):
return [rec(element) for element in obj]
if isinstance(obj, tuple):
return tuple(rec(element) for element in obj)
if isinstance(obj, str) and len(obj) > limit:
skip = len(obj) - limit
return (
obj[: limit // 2] + f"...({skip:_} skipped)..." + obj[-limit // 2 :]
)
return obj