From 22ebaf3b166909f8c77f6ceb5c51eda59df6af6d Mon Sep 17 00:00:00 2001 From: Deepak K <89829542+Deepak-Kesavan@users.noreply.github.com> Date: Mon, 13 Jan 2025 17:05:23 +0530 Subject: [PATCH] [FIX] Pass ENV from backend to tool (#1064) Pass ENV from backend to tool Signed-off-by: Deepak <89829542+Deepak-Kesavan@users.noreply.github.com> --- .../src/unstract/workflow_execution/constants.py | 4 ++++ .../src/unstract/workflow_execution/tools_utils.py | 12 +++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/unstract/workflow-execution/src/unstract/workflow_execution/constants.py b/unstract/workflow-execution/src/unstract/workflow_execution/constants.py index c00145620..e570a3f00 100644 --- a/unstract/workflow-execution/src/unstract/workflow_execution/constants.py +++ b/unstract/workflow-execution/src/unstract/workflow_execution/constants.py @@ -23,6 +23,10 @@ class ToolRuntimeVariable: EXECUTION_BY_TOOL = "EXECUTION_BY_TOOL" WORKFLOW_EXECUTION_DIR_PREFIX = "WORKFLOW_EXECUTION_DIR_PREFIX" API_EXECUTION_DIR_PREFIX = "API_EXECUTION_DIR_PREFIX" + REDIS_HOST = "REDIS_HOST" + REDIS_PORT = "REDIS_PORT" + REDIS_USER = "REDIS_USER" + REDIS_PASSWORD = "REDIS_PASSWORD" class WorkflowFileType: diff --git a/unstract/workflow-execution/src/unstract/workflow_execution/tools_utils.py b/unstract/workflow-execution/src/unstract/workflow_execution/tools_utils.py index ba7287f19..60ffccb85 100644 --- a/unstract/workflow-execution/src/unstract/workflow_execution/tools_utils.py +++ b/unstract/workflow-execution/src/unstract/workflow_execution/tools_utils.py @@ -52,6 +52,12 @@ def __init__( self.llmw_max_polls = ToolsUtils.get_env( ToolRV.ADAPTER_LLMW_MAX_POLLS, raise_exception=False ) + self.redis_host = ToolsUtils.get_env(ToolRV.REDIS_HOST, raise_exception=True) + self.redis_port = ToolsUtils.get_env(ToolRV.REDIS_PORT, raise_exception=True) + self.redis_user = ToolsUtils.get_env(ToolRV.REDIS_USER, raise_exception=True) + self.redis_password = ToolsUtils.get_env( + ToolRV.REDIS_PASSWORD, raise_exception=True + ) def set_messaging_channel(self, messaging_channel: str) -> None: self.messaging_channel = messaging_channel @@ -219,6 +225,10 @@ def get_tool_environment_variables(self) -> dict[str, Any]: ToolRV.X2TEXT_HOST: self.x2text_host, ToolRV.X2TEXT_PORT: self.x2text_port, ToolRV.EXECUTION_BY_TOOL: True, + ToolRV.REDIS_HOST: self.redis_host, + ToolRV.REDIS_PORT: self.redis_port, + ToolRV.REDIS_USER: self.redis_user, + ToolRV.REDIS_PASSWORD: self.redis_password, } # For async LLM Whisperer extraction if self.llmw_poll_interval: @@ -243,6 +253,6 @@ def get_env(env_key: str, raise_exception: bool = False) -> Optional[str]: Optional[str]: Value for the env variable """ env_value = os.environ.get(env_key) - if (env_value is None or env_value == "") and raise_exception: + if (env_value is None) and raise_exception: raise MissingEnvVariable(f"Env variable {env_key} is required") return env_value