Files
AstrBot/docs/zh/use/code-interpreter.md
Soulter fc33b3eb68 docs: transfer AstrBotDevs/AstrBot-docs to AstrBotDevs/AstrBot (#5960)
* docs: transfer AstrBotDevs/AstrBot-docs to AstrBotDevs/AstrBot
* refactor: reorder imports and improve type hints in sync_docs_to_wiki.py and upload_doc_images_to_r2.py
* feat: add GitHub Actions workflow to sync wiki with documentation

Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com>
Co-authored-by: anka-afk <110004162+anka-afk@users.noreply.github.com>
Co-authored-by: zouyonghe <62183434+zouyonghe@users.noreply.github.com>
Co-authored-by: shuiping233 <49360196+shuiping233@users.noreply.github.com>
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com>
Co-authored-by: Sjshi763 <179909421+Sjshi763@users.noreply.github.com>
Co-authored-by: xiewoc <70128845+xiewoc@users.noreply.github.com>
Co-authored-by: QingFeng-awa <151742581+QingFeng-awa@users.noreply.github.com>
Co-authored-by: PaloMiku <96452465+PaloMiku@users.noreply.github.com>
Co-authored-by: shangxueink <138397030+shangxueink@users.noreply.github.com>
Co-authored-by: IGCrystal-A <244300990+IGCrystal-A@users.noreply.github.com>
Co-authored-by: RC-CHN <67079377+RC-CHN@users.noreply.github.com>
Co-authored-by: MC090610 <113341105+MC090610@users.noreply.github.com>
Co-authored-by: Waterwzy <196913419+Waterwzy@users.noreply.github.com>
Co-authored-by: Lanhuace-Wan <186303160+Lanhuace-Wan@users.noreply.github.com>
Co-authored-by: LiAlH4qwq <61769640+LiAlH4qwq@users.noreply.github.com>
Co-authored-by: HSOS6 <209910899+HSOS6@users.noreply.github.com>
Co-authored-by: th-dd <162813557+th-dd@users.noreply.github.com>
Co-authored-by: miaoxutao123 <81676466+miaoxutao123@users.noreply.github.com>
Co-authored-by: nuomicici <143102889+nuomicici@users.noreply.github.com>
Co-authored-by: nasyt233 <210103278+nasyt233@users.noreply.github.com>
Co-authored-by: jlugjb <7426462+jlugjb@users.noreply.github.com>
Co-authored-by: Raven95676 <176760093+Raven95676@users.noreply.github.com>
Co-authored-by: Futureppo <180109455+Futureppo@users.noreply.github.com>
Co-authored-by: MliKiowa <61873808+MliKiowa@users.noreply.github.com>
Co-authored-by: Fridemn <150212937+Fridemn@users.noreply.github.com>
Co-authored-by: BakaCookie520 <138355736+BakaCookie520@users.noreply.github.com>
Co-authored-by: YumeYuka <125112916+YumeYuka@users.noreply.github.com>
Co-authored-by: xming521 <32786500+xming521@users.noreply.github.com>
Co-authored-by: ywh555hhh <121592812+ywh555hhh@users.noreply.github.com>
Co-authored-by: stevessr <89645372+stevessr@users.noreply.github.com>
Co-authored-by: roeseth <41995115+roeseth@users.noreply.github.com>
Co-authored-by: ikun-1145141 <265925499+ikun-1145141@users.noreply.github.com>
Co-authored-by: evpeople <54983536+evpeople@users.noreply.github.com>
Co-authored-by: Yue-bin <60509781+Yue-bin@users.noreply.github.com>
Co-authored-by: W1ndys <109416673+W1ndys@users.noreply.github.com>
Co-authored-by: TheFurina <218887821+TheFurina@users.noreply.github.com>
Co-authored-by: Seayon <12275933+Seayon@users.noreply.github.com>
Co-authored-by: OnlyblackTea <38585636+OnlyblackTea@users.noreply.github.com>
Co-authored-by: ocetars <74854972+ocetars@users.noreply.github.com>
Co-authored-by: railgun19457 <117180744+railgun19457@users.noreply.github.com>
Co-authored-by: JunieXD <107397009+JunieXD@users.noreply.github.com>
Co-authored-by: advent259141 <197440256+advent259141@users.noreply.github.com>
Co-authored-by: Doge2077 <91442300+Doge2077@users.noreply.github.com>
Co-authored-by: Bocity <23430545+Bocity@users.noreply.github.com>
Co-authored-by: Aurora-xk <192227833+Aurora-xk@users.noreply.github.com>
2026-03-09 23:38:21 +08:00

4.1 KiB
Raw Blame History

基于 Docker 的代码执行器

Warning

已过时,请参考最新的 Agent 沙盒环境 文档。在 v4.12.0 之后,该功能不可用。

v3.4.2 版本及之后AstrBot 支持代码执行器以强化 LLM 的能力,并实现一些自动化的操作。

Tip

此功能目前处于实验阶段,可能会有一些问题。如果您遇到了问题,请在 GitHub 上提交 issue。欢迎加群讨论322154837

如果您要使用此功能,请确保您的机器安装了 Docker。因为此功能需要启动专用的 Docker 沙箱环境以执行代码,以防止 LLM 生成恶意代码对您的机器造成损害。

Linux Docker 启动 AstrBot

如果您使用 Docker 部署了 AstrBot需要多做一些工作。

  1. 您需要在启动 Docker 容器时,请将 /var/run/docker.sock 挂载到容器内部。这样 AstrBot 才能够启动沙箱容器。
sudo docker run -itd -p 6180-6200:6180-6200 -p 11451:11451 -v $PWD/data:/AstrBot/data -v /var/run/docker.sock:/var/run/docker.sock --name astrbot soulter/astrbot:latest
  1. 在聊天时使用 /pi absdir <绝对路径地址> 设置您宿主机上 AstrBot 的 data 目录的所在目录的绝对路径。

例子:

image

Linux 手动源码 启动 AstrBot

如果你的 Docker 指令需要 sudo 权限来执行,那么你需要在启动 AstrBot 时,使用 sudo 来启动,否则代码执行器会因为权限不足而无法调用 Docker。

sudo —E python3 main.py

使用

本功能使用的镜像是 soulter/astrbot-code-interpreter-sandbox,您可以在 Docker Hub 上查看镜像的详细信息。

镜像中提供了常用的 Python 库:

  • Pillow
  • requests
  • numpy
  • matplotlib
  • scipy
  • scikit-learn
  • beautifulsoup4
  • pandas
  • opencv-python
  • python-docx
  • python-pptx
  • pymupdf
  • mplfonts

基本上能够实现的任务:

  • 图片编辑
  • 网页抓取等
  • 数据分析、简单的机器学习
  • 文档处理,如读写 Word、PPT、PDF 等
  • 数学计算,如画图、求解方程等

由于中国大陆无法访问 docker hub因此如果您的环境在中国大陆请使用 /pi mirror 来查看/设置镜像源。比如,截至本文档编写时,您可以使用 cjie.eu.org 作为镜像源。即设置 /pi mirror cjie.eu.org

在第一次触发代码执行器时AstrBot 会自动拉取镜像,这可能需要一些时间。请耐心等待。

镜像可能会不定时间更新以提供更多的功能,因此请定期查看镜像的更新。如果需要更新镜像,可以使用 /pi repull 命令重新拉取镜像。

Tip

如果一开始没有正常启动此功能,在启动成功之后,需要执行 /tool on python_interpreter 来开启此功能。 您可以通过 /tool ls 查看所有的工具以及它们的启用状态。

image

图片和文件的输入

代码执行器除了能够识别和处理图片、文字任务,还能够识别您发送的文件,并且能够发送文件。

v3.4.34 后,使用 /pi file 指令开始上传文件。上传文件后,您可以使用 /pi list 查看您上传的文件,使用 /pi clean 清空您上传的文件。

上传的文件将会用于代码执行器的输入。

比如您希望对一张图片添加圆角,您可以使用 /pi file 上传图片,然后再提问:请运行代码,对这张图片添加圆角

Demo

image

alt text

image

image