菜单

Docker 部署

相关源文件

本文档详细介绍了如何使用 Docker 部署 GPT Academic 系统。它涵盖了从仅使用云端 LLM 的轻量级配置到包含本地模型、LaTeX 支持和附加功能的全面设置的各种部署选项。有关不使用 Docker 的配置选项,请参阅配置选项

部署架构

下图展示了 GPT Academic 的 Docker 部署架构

来源:docker-compose.yml Dockerfile

部署选项

GPT Academic 在其docker-compose.yml文件中提供了六种不同的部署方案,每种方案都针对特定的用例进行了定制

来源:docker-compose.yml27-201

方案详情

方案图片特性要求用例
0: 完整功能ghcr.io/binary-husky/gpt_academic_with_all_capacity:master所有功能(CUDA + LaTeX)更多磁盘空间和带宽当您需要所有功能时
1: 仅限在线模型ghcr.io/binary-husky/gpt_academic_nolocal:master支持在线模型最小当您只需要云端 LLM 时
2: 本地模型ghcr.io/binary-husky/gpt_academic_chatglm_moss:masterChatGLM、Qwen、MOSS、在线模型NVIDIA GPU当您需要本地 LLM 支持时
3: 高级本地模型ghcr.io/binary-husky/gpt_academic_jittorllms:masterLLAMA、Pangu Alpha、RWKVNVIDIA GPU当您需要高级本地 LLM 时
4: LaTeX 支持ghcr.io/binary-husky/gpt_academic_with_latex:masterChatGPT + LaTeX最小学术写作和研究
5: 语音助手ghcr.io/binary-husky/gpt_academic_audio_assistant:masterChatGPT + 音频功能最小语音交互

来源:docker-compose.yml27-201 docs/GithubAction+NoLocal+Latex docs/GithubAction+AllCapacity docs/GithubAction+ChatGLM+Moss

部署过程

先决条件

  • 已安装 Docker 和 Docker Compose
  • Git(用于克隆仓库)
  • NVIDIA Docker 运行时(仅适用于支持本地模型的 GPU)

步骤 1: 克隆仓库

步骤 2: 选择并配置部署方案

  1. 打开docker-compose.yml
  2. 选择六种部署方案之一
  3. 删除或注释掉其他方案
  4. 在您选择的方案中配置环境变量
    • 设置您的 API 密钥
    • 如有需要,配置代理设置
    • 设置网页端口
    • 配置可用模型

方案 1(仅限在线模型)的配置示例

来源:docker-compose.yml82-97

步骤 3: 配置网络模式

选择以下方法之一来暴露网页端口

对于 Linux(默认)

对于 Windows 和 macOS

注释掉network_mode: "host"并取消注释或添加

来源:docker-compose.yml66-71 docker-compose.yml98-99

步骤 4: 配置 GPU 支持(如果需要)

对于需要 GPU 支持的方案(方案 2 和 3)

  1. 确保已安装 NVIDIA Container Toolkit
  2. 取消注释或添加以下内容
  1. 在环境变量中设置LOCAL_MODEL_DEVICE: 'cuda'

来源:docker-compose.yml56-64 docker-compose.yml127-129

步骤 5: 启动容器

在后台运行

步骤 6: 访问网页界面

打开您的浏览器并访问

  • Linux 主机网络模式: http://:<WEB_PORT>
  • Windows/macOS 端口映射模式: http://:<host_port>

其中 <WEB_PORT><host_port> 是您配置中指定的端口。

自定义 Docker 镜像构建

您可以根据提供的 Dockerfile 构建自定义 Docker 镜像

基础镜像(无本地模型)

来源:Dockerfile

包含 LaTeX 支持

来源:docs/GithubAction+NoLocal+Latex

包含完整功能

来源:docs/GithubAction+AllCapacity

包含向量数据库支持

来源:docs/GithubAction+NoLocal+Vectordb crazy_functions/vector_fns/vector_database.py

配置参考

关键环境变量

可变描述示例值
API_KEYLLM 服务的 API 密钥sk-xxxxxxxx
USE_PROXY是否使用代理True
proxies代理配置{ "http": "socks5h://:10880", ... }
LLM_MODEL默认 LLM 模型gpt-3.5-turbo
AVAIL_LLM_MODELS可用模型["gpt-3.5-turbo", "gpt-4"]
LOCAL_MODEL_DEVICE本地模型设备cuda
WEB_PORT网页界面端口12345
DEFAULT_WORKER_NUM工作线程数10
AUTHENTICATION认证凭据[("username", "passwd")]
ADD_WAIFU启用 waifu 角色True
THEMEUI 主题Chuanhu-Small-and-Beautiful

来源:docker-compose.yml34-54 docker-compose.yml86-96

特殊注意事项

ARM64 支持

对于 ARM64 设备(例如 Apple M1/M2、Raspberry Pi)

  • 对于 LaTeX 支持,请使用 ARM 专用镜像
  • 并非所有本地 LLM 都可能在 ARM 架构上受支持
  • 在 macOS 上始终使用端口映射模式,而不是主机网络模式

来源:docker-compose.yml183 .github/workflows/build-with-latex-arm.yml

向量数据库支持

用于知识库和 RAG 功能

  1. 使用向量数据库镜像或添加向量数据库依赖项
  2. 确保已为向量数据库文件配置存储

来源:docs/GithubAction+NoLocal+Vectordb crazy_functions/vector_fns/vector_database.py

测试 Docker 部署

您可以使用仓库中提供的测试工具来验证您的部署

来源:tests/test_utils.py tests/test_vector_plugins.py

故障排除

常见问题

  1. 无 GPU 访问:

    • 验证 NVIDIA Container Toolkit 安装
    • 检查 GPU 驱动(nvidia-smi应能在主机上运行)
    • 确保在docker-compose.yml中指定了正确的 GPU 设备
  2. 网络连接问题:

    • 如果使用代理,请验证代理设置
    • 如果一种网络方法不起作用,请尝试两种
    • 检查指定的端口是否未被占用
  3. 镜像下载失败:

    • 尝试在本地构建镜像,而不是从 ghcr.io 拉取
    • 检查网络连接和代理设置
  4. 权限问题:

    • 使用适当的权限运行 Docker 命令(如果需要,使用sudo
    • 检查挂载卷的文件权限