mirror of
https://github.com/agentscope-ai/ReMe.git
synced 2026-09-22 00:32:49 +00:00
26 lines
826 B
Python
26 lines
826 B
Python
"""Helpers for serializing Step output onto `RuntimeContext.response`.
|
|
|
|
Lives next to `runtime_context.py` because both are about the BaseStep
|
|
interface — the response side, specifically. Used by every Step that
|
|
returns a JSON-shaped payload (memory_*, sync, the three memory
|
|
services).
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import json
|
|
from datetime import date, datetime
|
|
|
|
|
|
def _to_jsonable(value):
|
|
if isinstance(value, (datetime, date)):
|
|
return value.isoformat()
|
|
if isinstance(value, dict):
|
|
return {k: _to_jsonable(v) for k, v in value.items()}
|
|
if isinstance(value, (list, tuple, set)):
|
|
return [_to_jsonable(v) for v in value]
|
|
return value
|
|
|
|
|
|
def _set_answer(context, payload) -> None:
|
|
context.response.answer = json.dumps(_to_jsonable(payload), ensure_ascii=False, indent=2)
|