python_exec 用于对已查询的健康记录进行计算,也可比较多次查询得到的健康指标、用药、基因型和药物基因组数据。工具会自动传入原始数据,模型无需从展示表格中复制数值。代码可以由云端模型编写,但始终在本地 Docker 容器中执行。
输入与输出
代码可以使用:data:最近一次成功且非空的记录查询返回的原始数据行。results:当前轮次内的成功查询结果,包含元数据、假设、来源和工具调用 ID。/workspace/data.json:计算容器中的同一份data和results,不可作为文档上传或读取路径。
stats 和时间分桶视图已能提供的统计,直接使用对应视图即可。
代码应打印计算结果及来源 rid。工具会报告退出状态、源查询 ID,以及输入或输出是否完整。输出上限为 40,000 字节,超过部分会明确标记为不完整。
本地配置
源码安装时,先安装应用依赖并下载计算镜像:PYTHON_SANDBOX_DOCKER_HOST、DOCKER_HOST、/var/run/docker.sock 和当前 Docker CLI context,只接受本地 Unix socket,拒绝 TCP 和 SSH 地址。
默认镜像仅提供 Python 标准库。如需其他分析包,请预先构建本地镜像,并通过 PYTHON_SANDBOX_IMAGE 指定。依赖必须提前安装,因为计算容器不能访问网络。
应用本身也在 Docker 中运行时
应用需要连接主机的 Docker 服务,才能创建计算容器。可选配置 compose-python.yaml 会将管理 socket 挂载给应用,授予其管理容器的权限,因此需要主动启用;主 Compose 配置不会默认挂载。计算容器不会获得该 socket。 将PYTHON_DOCKER_SOCKET 设为 Docker 主机上的 socket 路径,将 PYTHON_DOCKER_GID 设为所属组 ID,然后执行:
DISALLOWED_TOOLS: [python_exec]。