生成式 AI 应用创新引擎dify.ai部署并集成ollama大模型详细图文教程

引言

        Dify 是一个开源 LLM 应用开发平台,拥有直观的界面结合了 AI 工作流、RAG 管道、代理功能、模型管理、可观察性功能等,可以快速从原型开发到生产。
        Ollama 是一个本地推理框架,允许开发人员轻松地在本地部署和运行 LLM,例如 Llama 3、Mistral 和 Gemma。Dify 是一个 AI 应用开发平台,提供了一套完整的工具和 API,用于构建、管理和部署 AI 应用。

1、环境准备

  1.1 虚拟机环境

        Ubuntu24.04 

安装教程请见:VMware安装ubuntu-24.04-live-server服务版超详细教程

  1.2 Docker&Docker-compose环境:

        Docker27.3.1
        docker-compose version 1.29.2

安装教程请见:Ubuntu正确安装Docker和Docker Compose详细讲解

 1.3 克隆dify

        将 Dify 源代码克隆到opt目录下:

​cd /opt

git clone https://github.com/langgenius/dify.git

2、安装dify

2.1、启动Dify

导航到 Dify 源代码中的 Docker 目录

cd /opt/dify/docker

cp  .env.example  .env

2.2、启动 Docker 容器

进入/opt/dify/docker 执行

docker compose up -d 

此时docker报错,错误如下:

root@ubuntu-database:/opt/dify/docker# docker compose up -d
[+] Running 9/9
 ✘ api Error        context canceled                                                                                                                                                                            15.1s 
 ✘ db Error         context canceled                                                                                                                                                                            15.1s 
 ✘ nginx Error      context canceled                                                                                                                                                                            15.1s 
 ✘ redis Error      Get "https://registry-1.docker.io/v2/": context deadline exceeded (Client.Timeout exceeded while awaiting headers)                                                                          15.1s 
 ✘ ssrf_proxy Error context canceled                                                                                                                                                                            15.1s 
 ✘ worker Error     context canceled                                                                                                                                                                            15.1s 
 ✘ weaviate Error   context canceled                                                                                                                                                                            15.1s 
 ✘ sandbox Error    context canceled                                                                                                                                                                            15.1s 
 ✘ web Error        context canceled                                                                                                                                                                            15.1s 
Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

此问题解决,请见:完美解决Docker pull时报错:https://registry-1.docker.io/v2/

这个过程有点长,但值得等待。

执行命令后,您应该看到类似于以下内容的输出,显示所有容器的状态和端口映射:

最后检查所有容器是否运行成功:

docker compose ps

 这包括 3 个核心服务:api / worker / web和​​ 6 个依赖组件:weaviate / db / redis / nginx / ssrf_proxy / sandbox

root@ubuntu-database:/opt/dify/docker# docker compose ps
NAME                  IMAGE                              COMMAND                  SERVICE      CREATED          STATUS                    PORTS
docker-api-1          langgenius/dify-api:0.12.1         "/bin/bash /entrypoi…"   api          11 minutes ago   Up 11 minutes             5001/tcp
docker-db-1           postgres:15-alpine                 "docker-entrypoint.s…"   db           11 minutes ago   Up 11 minutes (healthy)   5432/tcp
docker-nginx-1        nginx:latest                       "sh -c 'cp /docker-e…"   nginx        11 minutes ago   Up 11 minutes             0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp
docker-redis-1        redis:6-alpine                     "docker-entrypoint.s…"   redis        11 minutes ago   Up 11 minutes (healthy)   6379/tcp
docker-sandbox-1      langgenius/dify-sandbox:0.2.10     "/main"                  sandbox      11 minutes ago   Up 11 minutes (healthy)   
docker-ssrf_proxy-1   ubuntu/squid:latest                "sh -c 'cp /docker-e…"   ssrf_proxy   11 minutes ago   Up 11 minutes             3128/tcp
docker-weaviate-1     semitechnologies/weaviate:1.19.0   "/bin/weaviate --hos…"   weaviate     11 minutes ago   Up 11 minutes             
docker-web-1          langgenius/dify-web:0.12.1         "/bin/sh ./entrypoin…"   web          11 minutes ago   Up 11 minutes             3000/tcp
docker-worker-1       langgenius/dify-api:0.12.1         "/bin/bash /entrypoi…"   worker       11 minutes ago   Up 11 minutes             5001/tcp

3、访问Dify

        进入管理员初始化页面设置管理员账户:

# Local environment
http://localhost/install

# Server environment
http://192.168.x.18/install

正确打开,如下图:

设置管理员账户/密码。

使用设置的管理员账户/密码登录,如下图:

登录成功进入后,页面效果如下图:

dify提供的模型提供商,可以根据需要定制自己的服务,如下图:

4、dify配置Ollama大语言模型

4.1、部署ollama

       1、下载后并解压至/usr目录下

mkdir /soft
cd /soft
curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz
sudo tar -C /usr -xzf ollama-linux-amd64.tgz

     

  2、运行安装包

cd /usr/lib/ollama/

ollama serve

3、查看ollama版本

        需要另外打开一个窗口,执行ollama -v
 

ollama -v

 4、修改配置文件

        使其他主机也可以访问,修改/etc/systemd/system/ollama.service文件

        第一步:设置ollama用户和组

sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama
sudo usermod -a -G ollama $(whoami)
vi  /etc/systemd/system/ollama.service

         第二步:在/etc/systemd/system/ollama.service文件内添加:

[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_HOST=192.168.x.18:11434/:11434"
[Install]
WantedBy=default.target

 5、重载并重启服务

systemctl daemon-reload 
systemctl restart ollama.service

6、验证是否正常运行

curl localhost:11434

执行后显示Ollama is running说明服务运行正常

7、安装&运行llava

ollama  run  llava

这个过程有点长,但值得等待。

安装完成,并运行成功,如下图:

8、dify集成ollama大模型

第一步:点击右上角的账号,在账号下拉菜单中点击设置,如下图:

第二步:打开设置后,点击模型提供商,向下滑动,选择ollama大模型,点击添加模型,如下图:

第三步:输入相应的数据,如下图:

        9、llava对话窗口,如下图

        至此,完成。

Docker部署应用时,如果你想通过修改网络配置Dify能够访问部署在其中的Ollama应用,首先需要了解几个关键点: 1. **Dify** 和 **Ollama** 是两个独立的应用程序,通常Dify可能是提供服务管理的容器平台,而Ollama可能是你需要部署的具体业务应用。 2. **Docker网络**:Docker使用的是内建的网络模式,包括bridge、host、overlay等,以及自定义networks。默认的bridge模式下,容器之间是隔离的,可以使用`-p`或端口映射来暴露外部网络。 3. **修改网桥**:如果想让Dify访问到Ollama,你可能需要将Ollama容器连接到Dify所在网络,或者直接在Dify的网络上运行Ollama。这通常涉及到创建一个新的network,通过`docker network connect`命令将它们关联起来。 4. **访问规则**:确保从Dify容器能访问到Ollama容器的服务端口。可以通过设置防火墙规则、安全组或更新Dify容器的端口映射来实现。 具体的步骤可能会因环境和需求的不同而有所变化,以下是大致流程: - 创建DifyOllama所需的网络: ``` docker network create --driver bridge my-network ``` - 部署Ollama链接到新网络: ``` docker run -d --name ollama --network my-network -p <port>:<service-port> ollama-image ``` - 如果Dify也在这个网络中,确保它的网络配置也包含对my-network的连接: ``` docker run -d --name dify --network my-network dify-image ``` - 如果Dify不在my-network,你可以使用`docker exec`或`docker network connect`来允许它访问Ollama: ``` docker network connect my-network dify-container-id ollama-container-id ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值