跳至主要内容

All-in-One Docker Image

本文档将向您展示如何使用All-in-One Docker镜像运行TaskWeaver。

danger

请注意,All-in-One Docker镜像仅用于开发和测试目的。它运行在本地模式下,这意味着代码片段的执行是在同一个容器中完成的。恶意代码可能会在容器中执行,因此运行All-in-One Docker镜像时请务必谨慎。

先决条件

您的机器上需要安装Docker。

对于Windows和macOS用户,您可以使用Docker Desktop。您可以从Docker官网下载。

对于Linux用户,您可以按照Docker官网上的说明进行安装。 请根据您使用的具体Linux发行版查找相应的安装指南。

使用一体化Docker镜像运行TaskWeaver

TaskWeaver 一体化 Docker 镜像有两个版本:

  • taskweavercontainers/taskweaver-all-in-one:latest: 此版本仅包含规划器和代码解释器角色。 您可以使用此容器进行代码生成和执行任务。
  • taskweavercontainers/taskweaver-all-in-one:latest-ws: 此版本包含额外的网页搜索角色,可以搜索网络信息。 由于需要依赖sentence-transformers库,因此体积较大。

打开终端并运行以下命令以获取TaskWeaver镜像:

docker pull taskweavercontainers/taskweaver-all-in-one:latest
# if you want to use the version with the WebSearch role
# docker pull taskweavercontainers/taskweaver-all-in-one:latest-ws

拉取镜像后,您可以使用以下命令运行TaskWeaver容器:

docker run -it -e LLM_API_BASE=<API_BASE> \
-e LLM_API_KEY=<API_KEY> \
-e LLM_API_TYPE=<API_TYPE> \
-e LLM_MODEL=<MODEL> \
taskweavercontainers/taskweaver-all-in-one:latest

如果想在UI界面模式下运行TaskWeaver,可以使用以下命令:

docker run -it -e LLM_API_BASE=<API_BASE> \
-e LLM_API_KEY=<API_KEY> \
-e LLM_API_TYPE=<API_TYPE> \
-e LLM_MODEL=<MODEL> \
-p 8000:8000 \
--entrypoint /app/entrypoint_chainlit.sh \
taskweavercontainers/taskweaver-all-in-one:latest

然后您可以通过在网页浏览器中访问http://localhost:8000来使用TaskWeaver Web界面。

如何在您自己的项目目录中运行TaskWeaver

您可以将本地的project目录挂载到容器中。例如,可以使用以下命令:

docker run -it -e LLM_API_BASE=<API_BASE> \
-e LLM_API_KEY=<API_KEY> \
-e LLM_API_TYPE=<API_TYPE> \
-e LLM_MODEL=<MODEL> \
# -e TASKWEAVER_UID=$(id -u) \ # uncomment if your host OS is not Windows
# -e TASKWEAVER_GID=$(id -g) \ # uncomment if your host OS is not Windows
--mount type=bind,source=<your_local_project_dir>,target=/app/TaskWeaver/project/ \
taskweavercontainers/taskweaver-all-in-one:latest

然后你可以在本地的project目录中编辑taskweaver_config.json文件来配置TaskWeaver。 此外,你也可以在本地project目录中自定义插件和示例。 project目录的结构可以参考taskweaver/project目录。

如何在容器中访问您的本地文件

您可以将本地目录挂载到容器中。例如,可以使用以下命令:

docker run -it -e LLM_API_BASE=<API_BASE> \
-e LLM_API_KEY=<API_KEY> \
-e LLM_API_TYPE=<API_TYPE> \
-e LLM_MODEL=<MODEL> \
# -e TASKWEAVER_UID=$(id -u) \ # uncomment if your host OS is not Windows
# -e TASKWEAVER_GID=$(id -g) \ # uncomment if your host OS is not Windows
--mount type=bind,source=<your_local_dir>,target=/app/TaskWeaver/local/ \
taskweavercontainers/taskweaver-all-in-one:latest

然后您可以通过访问/app/TaskWeaver/local/目录来访问容器中的本地文件。 您可以在TaskWeaver CLI中使用/load命令加载/app/TaskWeaver/local/目录下的文件。 例如,您可以通过运行以下命令加载名为example.csv的文件:

 TaskWeaver ▶  I am TaskWeaver, an AI assistant. To get started, could you please enter your request?
Human ▶ /load /app/TaskWeaver/local/example.csv
Human ▶ display the column names of the loaded file