加载中...

使用Docker部署常见的webui


前言

目前常用的webui如下:

下面简单归纳下这四个项目的主要区别和侧重点:

  • AnythingLLM
    • 定位与特点:这是一个开箱即用的一体化 AI 应用,集成了 RAG(检索增强生成)、多模型支持(如 OpenAI、LocalAI 等)以及多向量数据库支持。
    • 优势:无需大量代码配置,适合快速搭建私有知识库问答系统,支持多用户协作和灵活部署(云端、本地、自托管)。
    • 适用场景:企业内部快速搭建知识问答系统,特别适用于对接外部和自带大语言模型场景。
  • Open WebUI
    • 定位与特点:该项目以直观的 Web 界面为核心,主要用于管理和调用 LLM 模型,提供了一个前端交互平台。
    • 优势:界面友好、易于上手,能快速接入外部模型,同时也支持自带模型部署,重点在于用户体验和操作简便。
    • 适用场景:适合需要可视化管理 LLM 调用、对接外部 API 或自建模型的团队,帮助非技术人员也能轻松使用。
  • Dify
    • 定位与特点:Dify 更专注于知识库问答系统的构建,提供管理员上传文档、文档自动分段、向量化处理和对话问答等功能;同时支持分享知识库接口供其它应用使用。
    • 优势:流程较完整,对文档预处理、分段和自定义工作区管理支持较好,同时支持外部模型接入和内置模型调用。
    • 适用场景:适用于需要精细化管理文档内容、定制化知识库工作区的企业,尤其在数据安全和内容整理方面表现突出。
  • RagFlow
    • 定位与特点:RagFlow 基于 Retrieval-Augmented Generation(RAG)思路,着重于打通文档检索与生成回答的各个环节。
    • 优势:模块化设计、灵活扩展,能够自定义检索策略和生成流程,提升答案的相关性和准确性。
    • 适用场景:适合对问答系统有较高定制需求的企业,比如需要根据不同业务场景调整检索、排序和生成流程的场景。

总体来说,四者都是开源且可自部署的免费方案:

  • 如果你追求一站式、快速上线,AnythingLLM 可能是个好选择;
  • 如果更看重界面体验和操作便捷,Open-webui 能带来更直观的管理体验;
  • 如果需要完善的文档处理流程和自定义工作区,Dify 在细节上更贴合企业级需求;
  • 如果你需要极致定制的检索生成流程,RagFlow 的模块化设计会让你更灵活地搭建系统。

应用基本部署

AnythingLLM

  1. 拉取镜像

    docker pull mintplexlabs/anythingllm:1.7.4
  2. 创建工作目录

    export STORAGE_LOCATION=$HOME/anythingllm && \
    mkdir -p $STORAGE_LOCATION && \
    touch "$STORAGE_LOCATION/.env" && \
    chown -R 1000:1000 ${STORAGE_LOCATION}
    # anythingllm 1.7.4 需要设置挂载目录属主为1000,因为这是容器内的userid
  3. 启动容器

    docker run -d -p 3001:3001  --cap-add SYS_ADMIN -v ${STORAGE_LOCATION}:/app/server/storage -v ${STORAGE_LOCATION}/.env:/app/server/.env -e STORAGE_DIR="/app/server/storage" docker.io/mintplexlabs/anythingllm:1.7.4
  4. 即可通过 http://localhost:3001 访问anytingllm。

Open WebUI

  1. 拉取镜像

    docker pull ghcr.io/open-webui/open-webui:v0.5.18-cuda
  2. 创建挂载目录(可忽略,在容器启动时会自动创建)

    docker volume create open-webui
  3. 启动容器

    docker run -d -p 3000:8080 -e PORT=8080 -e OLLAMA_BASE_URL=https://example.com -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:v0.5.18-cuda
    
    # PORT 是open webui的服务端口
    # OLLAMA_BASE_URL 是外部的ollama服务地址,没有可不写

Dify

这里我们需要使用 docker-compose 来部署。如需下载 docker-compose 请点击这里:https://docs.docker.com/compose/install/

  1. clone仓库

    git clone https://github.com/langgenius/dify.git --branch 1.0.0
  2. 导航到 Dify 源代码中的 Docker 目录

    cd dify/docker
  3. 复制环境配置文件

    cp .env.example .env
  4. 启动 Docker 容器

    docker compose up -d   # docker compose -f docker-compose.yaml up -d
    # 或
    docker-compose up -d

    初次启动可能会报错,原因是.env中的变量不能有空格,根据提示修改即可。

    比如错误unexpected character "%" in variable name near "%H:%M:%S\n# Log Timezone......,是因为 LOG_DATEFORMAT=%Y-%m-%d %H:%M:%S 这个变量有空格,修改为 LOG_DATEFORMAT="%Y-%m-%d %H:%M:%S" 即可。

启动成功后即通过80端口访问Dify。如果想修改默认端口号,可以通过修改 .env 配置文件来自定义访问端口。

需要修改Nginx配置:

EXPOSE_NGINX_PORT=80
EXPOSE_NGINX_SSL_PORT=443

RagFlow

待补充


文章作者: 无夜
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 无夜 !
评论
  目录