编码.kubernetes.pod_命令行_代码执行器
PodCommandLineCodeExecutor
class PodCommandLineCodeExecutor(CodeExecutor)
__init__
def __init__(image: str = "python:3-slim",
pod_name: Optional[str] = None,
namespace: Optional[str] = None,
pod_spec: Optional[client.V1Pod] = None,
container_name: Optional[str] = "autogen-code-exec",
timeout: int = 60,
work_dir: Union[Path, str] = Path("/workspace"),
kube_config_file: Optional[str] = None,
stop_container: bool = True,
execution_policies: Optional[Dict[str, bool]] = None)
(实验性)一个通过命令行环境在kubernetes pod中执行代码的代码执行类。
执行器首先将每个代码块保存在工作目录中的一个文件中,然后在容器中执行该代码文件。执行器按照接收顺序执行代码块。目前,执行器仅支持Python和shell脚本。对于Python代码,请使用"python"作为代码块的语言。对于shell脚本,请使用"bash"、"shell"或"sh"作为代码块的语言。
参数:
image
类型, 可选 - 用于代码执行的Docker镜像。 默认为 "python:3-slim"。pod_name
Optional[str], optional - Kubernetes pod 的名称,如果不提供,将自动生成一个名称。默认为 None。namespace
Optional[str], optional - Kubernetes pod的命名空间 如果为空,将使用当前实例的命名空间pod_spec
Optional[client.V1Pod], optional - Kubernetes pod 的规范。 可以通过此参数提供自定义的 pod 规范。 如果提供了 pod_spec,则忽略上述参数(image、pod_name、namespace)。container_name
Optional[str], optional - 代码块执行所在的容器名称。如果提供了 pod_spec 参数,则也必须提供 container_name。timeout
int, 可选 - 代码执行的超时时间。默认为60。work_dir
Union[Path, str],可选 - 代码执行的工作目录。默认值为Path("/workspace")。kube_config_file
Optional[str], optional - kubernetes配置文件路径。 如果为None,将使用KUBECONFIG环境变量或服务账户令牌(集群内配置)stop_container
bool, 可选 - 如果为 true,当调用 stop 时,当上下文管理器退出时,或者当 Python 进程退出时,将自动停止容器。默认值为 True。execution_policies
dict[str, bool], 可选 - 定义支持的执行语言
引发:
ValueError
- 参数错误,或容器启动失败时。
超时
@property
def timeout() -> int
(实验性的)代码执行的超时时间。
工作目录
@property
def work_dir() -> Path
(实验性)代码执行的工作目录。
code_extractor
@property
def code_extractor() -> CodeExtractor
(实验性)导出一个可以被代理使用的代码提取器。
执行代码块
def execute_code_blocks(code_blocks: List[CodeBlock]) -> CommandLineCodeResult
(实验性)执行代码块并返回结果。
参数:
code_blocks
List[CodeBlock] - 要执行的代码块。
返回:
CommandlineCodeResult
- 代码执行的结果。
停止
def stop() -> None
(实验性)停止代码执行器。