All-in-One Docker Image
本文档将向您展示如何使用All-in-One Docker镜像运行TaskWeaver。
请注意,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