aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author苏向夜 <fu050409@163.com>2024-02-24 21:52:46 +0800
committer苏向夜 <fu050409@163.com>2024-02-24 21:52:46 +0800
commit916917a9bf4927eea8abd0e85ad12e3203121bdc (patch)
treee99e736fd3eace3db440a286dde3eea749b858dc
parent82bbfc63ab85e9253b70955cc37d34c3d3d20332 (diff)
downloadinfini-916917a9bf4927eea8abd0e85ad12e3203121bdc.tar.gz
infini-916917a9bf4927eea8abd0e85ad12e3203121bdc.zip
feat(input): add output method for input
-rw-r--r--src/infini/input.py24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/infini/input.py b/src/infini/input.py
index 682e1037..30683a4b 100644
--- a/src/infini/input.py
+++ b/src/infini/input.py
@@ -1,14 +1,21 @@
-from infini.typing import Dict, Any, Generic, T
+from infini.typing import Literal, Optional
+from infini.typing import Dict, Any, Generic, T, Optional
+from infini.output import Output
class Input(Generic[T]):
plain_data: T
variables: Dict[str, Any]
- def __init__(self, plain_data: T, variables: Dict[str, Any] | None = None) -> None:
+ def __init__(
+ self, plain_data: T, variables: Optional[Dict[str, Any]] = None
+ ) -> None:
self.plain_data = plain_data
self.variables = variables or {}
+ def get_user_id(self) -> Optional[str]:
+ return self.variables.get("user_id")
+
def get_session_id(self) -> str:
if session_id := self.variables.get("session_id"):
return session_id
@@ -19,3 +26,16 @@ class Input(Generic[T]):
def get_plain_text(self) -> str:
return str(self.plain_data)
+
+ def output(
+ self,
+ type: Literal["text", "workflow"],
+ name: str,
+ *,
+ status: int = 0,
+ block: bool = False,
+ variables: Dict[str, Any] = {},
+ ):
+ vars = self.variables.copy()
+ vars.update(variables)
+ return Output(type, name, status=status, block=block, variables=vars)