refactor(api/core/app/segments): implement to_object in ObjectVariable and ArrayVariable. (#6671)

Signed-off-by: -LAN- <laipz8200@outlook.com>
This commit is contained in:
-LAN- 2024-07-25 17:06:38 +08:00 committed by GitHub
parent 0b4c26578e
commit 75e6576c67
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 6 additions and 6 deletions

View File

@ -34,12 +34,6 @@ class Segment(BaseModel):
return str(self.value) return str(self.value)
def to_object(self) -> Any: def to_object(self) -> Any:
if isinstance(self.value, Segment):
return self.value.to_object()
if isinstance(self.value, list):
return [v.to_object() for v in self.value]
if isinstance(self.value, dict):
return {k: v.to_object() for k, v in self.value.items()}
return self.value return self.value

View File

@ -56,6 +56,9 @@ class ObjectVariable(Variable):
# TODO: Use markdown code block # TODO: Use markdown code block
return json.dumps(self.model_dump()['value'], ensure_ascii=False, indent=2) return json.dumps(self.model_dump()['value'], ensure_ascii=False, indent=2)
def to_object(self):
return {k: v.to_object() for k, v in self.value.items()}
class ArrayVariable(Variable): class ArrayVariable(Variable):
value_type: SegmentType = SegmentType.ARRAY value_type: SegmentType = SegmentType.ARRAY
@ -65,6 +68,9 @@ class ArrayVariable(Variable):
def markdown(self) -> str: def markdown(self) -> str:
return '\n'.join(['- ' + item.markdown for item in self.value]) return '\n'.join(['- ' + item.markdown for item in self.value])
def to_object(self):
return [v.to_object() for v in self.value]
class FileVariable(Variable): class FileVariable(Variable):
value_type: SegmentType = SegmentType.FILE value_type: SegmentType = SegmentType.FILE