跟着AI 学AI开发二,本地部署自己的Chat GPT
这里要安装的是Open Web UI ,用一张架构图说明AI 前端与后端的关系。
之前的Python 的方法已经做过多次介绍,这里不做赘述。
顺序:1,Ollama。 2,Docker。 3,Open WebUI。
- Ollama 安装下载地址:Ollama,
直接安装即可,安全成功之后别忘了安装大语言模型。
2. 安装Docker
安装地址: https://www.docker.com/,
在打开的页面里直接单击: Download Docker Desktop 即可安装。
附注:由于有人问Docker,这里做点延申,
Docker 是一个开源的平台,用于开发、交付和运行应用程序。它通过使用**容器(Container)**技术,使应用程序可以在任何环境中一致地运行,无论是在开发者的笔记本电脑上,还是在生产服务器上。容器是一种轻量级、可移植的虚拟化形式,能够将应用程序和它的所有依赖项打包在一起,从而确保运行环境的独立性和一致性。
Docker 的核心概念
-
镜像(Image):
- Docker 镜像是一个轻量级、独立的、可执行的软件包,其中包含运行应用程序所需的所有内容(代码、运行时、库、环境变量等)。
- 类似于一个模板,用于创建 Docker 容器。
-
容器(Container):
- 容器是镜像的一个运行实例,是一个隔离的环境,确保应用程序的运行不会受到外界的干扰。
- 容器可以轻松启动、停止、删除,并且运行非常高效。
-
Docker 引擎(Docker Engine):
- Docker 的核心组件,用于构建、运行和管理容器。
-
Docker Hub:
- 一个官方的在线仓库,存储和共享 Docker 镜像。
- 开发者可以从 Docker Hub 下载现成的镜像,也可以上传自己的镜像。
Docker 的主要优势
-
跨平台一致性:
- "一次构建,到处运行"。Docker 容器在任何支持 Docker 的系统上都能以相同的方式运行。
-
轻量级:
- Docker 容器使用共享的主机操作系统,比传统虚拟机更加高效,占用资源更少。
-
快速部署:
- 使用镜像启动容器的速度非常快,几乎是即时的。
-
隔离性:
- 每个容器是独立的,拥有自己的文件系统、网络和运行时环境,互相隔离,避免冲突。
-
高效的资源利用:
- 多个容器可以共享主机操作系统资源,减少硬件开销。
Docker 的工作流程
- 开发阶段:开发者通过编写
Dockerfile
来定义应用程序的构建过程。 - 构建镜像:使用 Docker 命令构建镜像,例如:
docker build -t myapp .
。 - 运行容器:从镜像启动容器,例如:
docker run -d myapp
。 - 分发镜像:将镜像上传到 Docker Hub 或其他镜像仓库,供团队或生产环境使用。
Docker 的典型应用场景
-
开发环境标准化:
- 为团队创建一致的开发和测试环境。
-
微服务架构:
- 每个微服务运行在自己的容器中,简化部署和扩展。
-
持续集成与持续交付(CI/CD):
- 通过容器化,确保代码从开发到生产环境的流畅过渡。
-
快速实验:
- 试验新技术或框架,而不会影响主机系统。
- 安装步骤与方法:
Dockers,安装后的效果是:在命令行执行 Docker,
它的 url 是 localhost:3000,
开始使用:当发生选择模型,未找到结果时,要加载它的大语言模型,例如在命令行录入 ollama run lama3。。。。就会有模型共提供选择。
- 确认 ollama 安装成功
- 安装Open web UI
打开: https://github.com/open-webui/open-webui 后下面有安装说明,这里要仔细看。
运行代码和结果:
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
- To run Open WebUI with Nvidia GPU support,
docker run -d -p 3000:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:cuda
以上三个步骤完成之后:测试效果如下: