dify/api/fields/raws.py

18 lines
502 B
Python

from flask_restful import fields
from core.file import File
class FilesContainedField(fields.Raw):
def format(self, value):
return self._format_file_object(value)
def _format_file_object(self, v):
if isinstance(v, File):
return v.model_dump()
if isinstance(v, dict):
return {k: self._format_file_object(vv) for k, vv in v.items()}
if isinstance(v, list):
return [self._format_file_object(vv) for vv in v]
return v