跳到主要内容

编码.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

(实验性)停止代码执行器。