CoACT initialize (#292)
This commit is contained in:
47
mm_agents/coact/autogen/coding/factory.py
Normal file
47
mm_agents/coact/autogen/coding/factory.py
Normal file
@@ -0,0 +1,47 @@
|
||||
# Copyright (c) 2023 - 2025, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# Portions derived from https://github.com/microsoft/autogen are under the MIT License.
|
||||
# SPDX-License-Identifier: MIT
|
||||
from ..doc_utils import export_module
|
||||
from .base import CodeExecutionConfig, CodeExecutor
|
||||
|
||||
__all__ = ("CodeExecutorFactory",)
|
||||
|
||||
|
||||
@export_module("autogen.coding")
|
||||
class CodeExecutorFactory:
|
||||
"""(Experimental) A factory class for creating code executors."""
|
||||
|
||||
@staticmethod
|
||||
def create(code_execution_config: CodeExecutionConfig) -> CodeExecutor:
|
||||
"""(Experimental) Get a code executor based on the code execution config.
|
||||
|
||||
Args:
|
||||
code_execution_config (Dict): The code execution config,
|
||||
which is a dictionary that must contain the key "executor".
|
||||
The value of the key "executor" can be either a string
|
||||
or an instance of CodeExecutor, in which case the code
|
||||
executor is returned directly.
|
||||
|
||||
Returns:
|
||||
CodeExecutor: The code executor.
|
||||
|
||||
Raises:
|
||||
ValueError: If the code executor is unknown or not specified.
|
||||
"""
|
||||
executor = code_execution_config.get("executor")
|
||||
if isinstance(executor, CodeExecutor):
|
||||
# If the executor is already an instance of CodeExecutor, return it.
|
||||
return executor
|
||||
if executor == "ipython-embedded":
|
||||
from .jupyter.embedded_ipython_code_executor import EmbeddedIPythonCodeExecutor
|
||||
|
||||
return EmbeddedIPythonCodeExecutor(**code_execution_config.get("ipython-embedded", {}))
|
||||
elif executor == "commandline-local":
|
||||
from .local_commandline_code_executor import LocalCommandLineCodeExecutor
|
||||
|
||||
return LocalCommandLineCodeExecutor(**code_execution_config.get("commandline-local", {}))
|
||||
else:
|
||||
raise ValueError(f"Unknown code executor {executor}")
|
||||
Reference in New Issue
Block a user