19 lines
554 B
Python
19 lines
554 B
Python
import json
|
|
from typing import Any
|
|
|
|
from django.conf import settings
|
|
|
|
from apps.utils.tools import MyJSONEncoder
|
|
|
|
|
|
def json_safe_result(value: Any) -> Any:
|
|
return json.loads(json.dumps(value, cls=MyJSONEncoder, ensure_ascii=False))
|
|
|
|
|
|
def validate_result_size(value: Any) -> None:
|
|
encoded = json.dumps(value, ensure_ascii=False, separators=(",", ":")).encode()
|
|
if len(encoded) > settings.MCP_MAX_RESULT_BYTES:
|
|
raise RuntimeError(
|
|
"工具结果超过 MCP 响应上限,请缩小查询范围或增加筛选参数"
|
|
)
|