Docker+Ollama+WebUI+AnythingLLM,构建企业当地AI大模型

打印 上一主题 下一主题

主题 675|帖子 675|积分 2025

概要

Ollama 是一个强大的大模型提供者,它通过开源的方式,为开发者和企业提供了先进的大型语言模型(LLM)。这些模型拥有处理处罚和天生复杂语言任务的本领,为各种应用场景提供了强大的基础。
Open WebUI 则进一步增强了用户体验,它提供了一个高度可视化和用户友爱的对话界面。这个界面不仅美观,而且功能丰富,使用户可以或许轻松地与背后的大模型举行交互,无论是通过文本聊天照旧其他交互方式。
AnythingLLM 则是在这个基础上的一个创新工具,它允许用户使用 Ollama 提供的大模型本领,并结合当地数据,构建和定制符合个人或企业特定需求的 AI 大模型。AnythingLLM 的灵活性和定制性意味着用户可以根据本身的特定业务场景和需求,创建和优化 AI 解决方案,从而在保证数据安全和隐私的同时,实现更加个性化和高效的服务。
通过 AnythingLLM,用户可以轻松地将当地文档、资料和数据集成到 AI 模型中,实现智能检索、内容天生、问答体系等多样化功能。这不仅进步了工作效率,还增强了决策支持的本领。AnythingLLM 的多用户支持和精细的权限管理,使得团队协作变得更加简单和安全。
总的来说,Ollama、Open WebUI 和 AnythingLLM 的结合,为用户提供了一个从模型提供到界面交互,再到个性化定制的完整解决方案,使得构建和部署 AI 大模型变得更加轻易、高效和安全。
Ollama部署


  • 获取Ollama镜像:

    • 使用Docker从镜像仓库拉取Ollama镜像:
      1. docker pull ollama/ollama
      复制代码

  • 创建Ollama宿主机挂载目录:

    • 在宿主机上创建一个目录用于Ollama数据的持久化存储:
      1. mkdir -p /data/docker/ollama/data
      复制代码
    • 修改目录权限
      1. chmod  -R 777 /data/docker/ollama
      复制代码

  • 启动Ollama容器

    • 使用以下命令启动Ollama容器,并将数据目录挂载到容器中:
      1. docker run \
      2.   -d \
      3.   --restart always \
      4.   --name ollama \
      5.   --privileged=true \
      6.   -p 11434:11434 \
      7.   -v /data/docker/ollama/data:/root/.ollama \
      8.   ollama/ollama
      复制代码
      其中:

      • -d 表现后台运行容器。
      • --restart always 设置容器的重启策略。
      • --name ollama  为容器指定一个名称。
      • --privileged=true  使容器以特权模式运行,这将给予容器险些类似于宿主机的权限。
      • -p 11434:11434 \ 将容器的11434端口映射到宿主机的11434端口。
      • -v /data/docker/ollama/data:/root/.ollama 将宿主机的数据目录挂载到容器中。
      • ollama/ollama 指定要使用的ollama镜像和版本(latest)。


  • 测试Ollama服务:

    • 进入Ollama容器:
      1. docker exec -it ollama /bin/bash
      复制代码
    • 从Ollama仓库拉取gemma模型, 可从官网查看有哪些模型
      1. ollama pull gemma:2b
      复制代码
    • 查看当地有哪些模型
      1. ollma list
      复制代码
    • 使用gemma:2b大模型, 然后与开启对话
      1. ollama run gemma:2b
      复制代码

WebUI部署


  • 获取open-webui镜像:

    • 使用Docker从镜像仓库拉取open-webui镜像:
      1. docker pull m.daocloud.io/ghcr.io/open-webui/open-webui:main
      复制代码

  • 创建open-webui宿主机挂载目录:

    • 在宿主机上创建一个目录用于open-webui数据的持久化存储:
      1. mkdir -p /data/docker/open-webui/data
      复制代码
    • 修改目录权限
      1. chmod  -R 777 /data/docker/open-webui         
      复制代码

  • 启动AnythingLLM容器

    • 使用以下命令启动open-webui容器,并将数据目录挂载到容器中:
      1. docker run \
      2.   -d \
      3.   --restart always \
      4.   --name open-webui \
      5.   --privileged=true \
      6.   -p 3000:8080 \
      7.   -e OLLAMA_BASE_URL="http://{ollma服务IP}:11434"
      8.   -v /data/docker/open-webui/data:/app/backend/data \
      9.    m.daocloud.io/ghcr.io/open-webui/open-webui:main
      复制代码
      其中:

      • -d 表现后台运行容器。
      • --restart always 设置容器的重启策略。
      • --name open-webui 为容器指定一个名称。
      • --privileged=true  使容器以特权模式运行,这将给予容器险些类似于宿主机的权限。
      • -p 3000:8080 \ 将容器的3000端口映射到宿主机的8080端口。
      • -v /data/docker/open-webui/data:/app/backend/data 将宿主机的数据目录挂载到容器中。
      • m.daocloud.io/ghcr.io/open-webui/open-webui:main 指定要使用的open-webui镜像


  • 测试open-webui服务:

    • 通过欣赏器输入http://{宿主机IP}:3000/auth即可开始访问

AnythingLLM部署


  • 获取AnythingLLM镜像:

    • 使用Docker从镜像仓库拉取AnythingLLM镜像:
      1. docker pull mintplexlabs/anythingllm
      复制代码

  • 创建AnythingLLM宿主机挂载目录:

    • 在宿主机上创建一个目录用于AnythingLLM数据的持久化存储:
      1. mkdir -p /data/docker/anythingllm/data
      复制代码
    • 在宿主机上创建一个目录用于存放AnythingLLM的环境变量信息
      1. mkdir -p /data/docker/anythingllm/env
      复制代码
    • 修改目录权限
      1. chmod  -R 777 /data/docker/anythingllm
      复制代码

  • 创建环境变量文件

    • 创建配置文件env.txt
      1. cd /data/docker/anythingllm/env
      2. touch env.txt
      复制代码
    • 增加环境变量信息
      1. SERVER_PORT=3001
      2. STORAGE_DIR="/app/server/storage"
      3. UID='1000'
      4. GID='1000'
      复制代码

  • 启动AnythingLLM容器

    • 使用以下命令启动AnythingLLM容器,并将数据目录挂载到容器中:
      1. docker run \
      2.   -d \
      3.   --restart always \
      4.   --name anythingllm \
      5.   --cap-add SYS_ADMIN \
      6.   --privileged=true \
      7.   -p 3014:3001 \
      8.   -v /data/docker/anythingllm/data:/app/server/storage \
      9.   -v /data/docker/anythingllm/env/env.txt:/app/server/.env \
      10.   mintplexlabs/anythingllm
      复制代码
      其中:

      • -d 表现后台运行容器。
      • --restart always 设置容器的重启策略。
      • --name anythingllm  为容器指定一个名称。
      • --cap-add SYS_ADMIN 添加SYS_ADMIN本领给容器,这意味着容器将获得更多的体系管理权限,比如举行磁盘管理、网络配置等
      • --privileged=true  使容器以特权模式运行,这将给予容器险些类似于宿主机的权限。
      • -p 3014:3001 \ 将容器的3014端口映射到宿主机的3001端口。
      • -v /data/docker/anythingllm/data:/app/server/storage 将宿主机的数据目录挂载到容器中。
      • /data/docker/anythingllm/env/env.txt:/app/server/.env 将宿主机的配置文件挂载到容器中。
      • mintplexlabs/anythingllm 指定要使用的AnythingLLM镜像和版本(latest)。


  • 测试AnythingLLM服务:

    • 通过欣赏器输入http://{宿主机IP}:3041即可开始访问

Docker-Compose部署管理全部容器

将上面的docker run命令转换为docker-compose.yml文件,并设置open-webui和anythingllm服务依赖于ollama服务,方便管理
  1. version: '3.8'
  2. services:
  3.   ollama:
  4.     image: ollama/ollama
  5.     container_name: ollama
  6.     restart: always
  7.     privileged: true
  8.     ports:
  9.       - "11434:11434"
  10.     volumes:
  11.       - /data/docker/ollama/data:/root/.ollama
  12.     networks:
  13.       - llm_network
  14.   open-webui:
  15.     image: m.daocloud.io/ghcr.io/open-webui/open-webui:main
  16.     container_name: open-webui
  17.     restart: always
  18.     privileged: true
  19.     ports:
  20.       - "3000:8080"
  21.     environment:
  22.       OLLAMA_BASE_URL: "http://ollama:11434"
  23.     volumes:
  24.       - /data/docker/open-webui/data:/app/backend/data
  25.     depends_on:
  26.       - ollama
  27.     networks:
  28.       - llm_network
  29.   anythingllm:
  30.     image: mintplexlabs/anythingllm
  31.     container_name: anythingllm
  32.     restart: always
  33.     cap_add:
  34.       - SYS_ADMIN
  35.     privileged: true
  36.     ports:
  37.       - "3014:3001"
  38.     volumes:
  39.       - /data/docker/anythingllm/data:/app/server/storage
  40.       - /data/docker/anythingllm/env/env.txt:/app/server/.env
  41.     depends_on:
  42.       - ollama
  43.     networks:
  44.       - llm_network
  45. networks:
  46.   llm_network:
  47.     driver: bridge
复制代码
这个docker-compose.yml文件中定义了三个服务:ollama、open-webui和anythingllm。每个服务都有本身的配置,包括镜像、容器名称、重启策略、特权模式、端口映射和卷挂载。


  • environment: 用于设置环境变量,这里open-webui服务设置了OLLAMA_BASE_URL环境变量,指向ollama服务。
  • depends_on: 此选项用于指定服务依赖,确保open-webui和anythingllm服务在ollama服务启动后再启动。
请确保将/data/docker/...路径替换为实际的宿主机路径,大概根据必要创建这些目录。
要使用此docker-compose.yml文件启动服务,你必要在包罗该文件的目录中打开终端,然后运行:
  1. docker-compose up -d
复制代码
这将按照文件中定义的配置启动全部服务。如果你想停止服务,可以使用:
  1. docker-compose down
复制代码
这将停止并移除容器,但不会删除卷。如果你必要重新构建服务大概对配置举行了更改,可以使用:
  1. docker-compose up --build
复制代码
这将重建任何已更改的服务的镜像。
小结

参考文章

ollam官网

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

飞不高

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表