diff --git a/vision_agent/utils/execute.py b/vision_agent/utils/execute.py index d0a713cc..79048a8d 100644 --- a/vision_agent/utils/execute.py +++ b/vision_agent/utils/execute.py @@ -690,9 +690,8 @@ def new_instance( ) -> CodeInterpreter: if not code_sandbox_runtime: code_sandbox_runtime = os.getenv("CODE_SANDBOX_RUNTIME", "local") - openai_api_key = os.getenv("OPENAI_API_KEY", "") - envs = {"OPENAI_API_KEY": openai_api_key} if openai_api_key else None if code_sandbox_runtime == "e2b": + envs = _get_e2b_env() instance: CodeInterpreter = E2BCodeInterpreter( timeout=_SESSION_TIMEOUT, remote_path=remote_path, envs=envs ) @@ -707,6 +706,20 @@ def new_instance( return instance +def _get_e2b_env() -> Dict[str, str] | None: + openai_api_key = os.getenv("OPENAI_API_KEY", "") + anthropic_api_key = os.getenv("ANTHROPIC_API_KEY", "") + if openai_api_key or anthropic_api_key: + envs = {} + if openai_api_key: + envs["OPENAI_API_KEY"] = openai_api_key + if anthropic_api_key: + envs["ANTHROPIC_API_KEY"] = anthropic_api_key + else: + envs = None + return envs + + def _parse_local_code_interpreter_outputs(outputs: List[Dict[str, Any]]) -> Execution: """Parse notebook cell outputs to Execution object. Output types: https://nbformat.readthedocs.io/en/latest/format_description.html#code-cell-outputs