Refactor OmniRequestOutput to encapsulate multimodal output
- Changed the multimodal_output field to a private attribute _multimodal_output for better encapsulation. - Added a property method to access multimodal_output, allowing for a clearer interface and improved handling of request outputs. Signed-off-by: [Your Name] <[Your Email]> Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
This commit is contained in:
1 parent
2b009b3cef
commit
3208afd82b
1 file changed
+14
-3
+14
-3
@@ -59,7 +59,7 @@ class OmniRequestOutput:
|
||||
prompt: OmniPromptType | None = None
|
||||
latents: torch.Tensor | None = None
|
||||
metrics: dict[str, Any] = field(default_factory=dict)
|
||||
multimodal_output: dict[str, Any] = field(default_factory=dict)
|
||||
_multimodal_output: dict[str, Any] = field(default_factory=dict)
|
||||
|
||||
@classmethod
|
||||
def from_pipeline(
|
||||
@@ -116,10 +116,21 @@ class OmniRequestOutput:
|
||||
prompt=prompt,
|
||||
latents=latents,
|
||||
metrics=metrics or {},
|
||||
multimodal_output=multimodal_output or {},
|
||||
_multimodal_output=multimodal_output or {},
|
||||
finished=True,
|
||||
)
|
||||
|
||||
@property
|
||||
def multimodal_output(self) -> dict[str, Any]:
|
||||
"""Return multimodal output from the underlying request output or local field.
|
||||
|
||||
For pipeline outputs, this proxies to request_output.multimodal_output.
|
||||
For diffusion outputs, this returns the local _multimodal_output field.
|
||||
"""
|
||||
if self.request_output is not None:
|
||||
return getattr(self.request_output, "multimodal_output", {})
|
||||
return self._multimodal_output
|
||||
|
||||
@property
|
||||
def num_images(self) -> int:
|
||||
"""Return the number of generated images."""
|
||||
@@ -229,7 +240,7 @@ class OmniRequestOutput:
|
||||
f"prompt={self.prompt!r}",
|
||||
f"latents={self.latents}",
|
||||
f"metrics={self.metrics}",
|
||||
f"multimodal_output={self.multimodal_output}",
|
||||
f"multimodal_output={self._multimodal_output}",
|
||||
]
|
||||
|
||||
return f"OmniRequestOutput({', '.join(parts)})"
|
||||
Reference in new issue
Block a user