速看!最新版 Dify 连接 Ollama 与 vLLM 全攻略

大模型向量数据库容器

一、Dify介绍

Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员,也能参与到 AI 应用的定义和数据运营过程中。

由于 Dify 内置了构建 LLM 应用所需的关键技术栈,包括对数百个模型的支持、直观的 Prompt 编排界面、高质量的 RAG 引擎、稳健的 Agent 框架、灵活的流程编排,并同时提供了一套易用的界面和 API。这为开发者节省了许多重复造轮子的时间,使其可以专注在创新和业务需求上。

官网:https://dify.ai/zh

官网文档地址:https://docs.dify.ai/zh-hans

github地址:

https://github.com/langgenius/dify

picture.image

二、Dify 能做什么?

Dify 一词源自 Define + Modify,意指定义并且持续的改进你的 AI 应用,它是为你而做的(Do it for you)。

  • 创业 ,快速的将你的 AI 应用创意变成现实,无论成功和失败都需要加速。在真实世界,已经有几十个团队通过 Dify 构建 MVP(最小可用产品)获得投资,或通过 POC(概念验证)赢得了客户的订单。
  • 将 LLM 集成至已有业务 ,通过引入 LLM 增强现有应用的能力,接入 Dify 的 RESTful API 从而实现 Prompt 与业务代码的解耦,在 Dify 的管理界面是跟踪数据、成本和用量,持续改进应用效果。
  • 作为企业级 LLM 基础设施 ,一些银行和大型互联网公司正在将 Dify 部署为企业内的 LLM 网关,加速 GenAI 技术在企业内的推广,并实现中心化的监管。
  • 探索 LLM 的能力边界 ,即使你是一个技术爱好者,通过 Dify 也可以轻松的实践 Prompt 工程和 Agent 技术,在 GPTs 推出以前就已经有超过 60,000 开发者在 Dify 上创建了自己的第一个应用。

picture.image

三、安装Dify最新版

一般采用DockerCompose来安装部署。

安装 Dify 之前, 请确保你的机器已满足最低安装要求:

  • CPU >= 2 Core
  • RAM >= 4 GiB

Dify支持各种操作系统,推荐使用Ubuntu操作系统来安装。

| 操作系统 | 软件 | 描述 | | --- | --- | --- | | macOS | Docker Desktop | 为 Docker 虚拟机(VM)至少分配 2 个虚拟 CPU(vCPU) 和 8GB 初始内存,否则安装可能会失败。有关更多信息,请参考 《在 Mac 内安装 Docker 桌面端》 | | Linux | Docker 19.03 or later Docker Compose 1.28 or later | 请参阅 安装 Docker 和 安装 Docker Compose 以获取更多信息。 | | Windows | Docker Desktop | 我们建议将源代码和其他数据绑定到 Linux 容器中时,将其存储在 Linux 文件系统中,而不是 Windows 文件系统中。有关更多信息,请参阅 使用 WSL 2 后端在 Windows 上安装 Docker Desktop 。 |

1、下载最新源码到本地

也可以指定分支代码。目前最新版本为1.3.0 。

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

2、复制配置文件

  
# 进入目录  
cd dify/docker  
# 复制 一份配置文件  
cp .env.example .env

3、启动容器

一定要在这个目录 dify/docker里执行如下命令:

  
docker compose up -d

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

  
[+] Running 11/11  
 ✔ Network docker_ssrf_proxy_network  Created                                                                 0.1s   
 ✔ Network docker_default             Created                                                                 0.0s   
 ✔ Container docker-redis-1           Started                                                                 2.4s   
 ✔ Container docker-ssrf_proxy-1      Started                                                                 2.8s   
 ✔ Container docker-sandbox-1         Started                                                                 2.7s   
 ✔ Container docker-web-1             Started                                                                 2.7s   
 ✔ Container docker-weaviate-1        Started                                                                 2.4s   
 ✔ Container docker-db-1              Started                                                                 2.7s   
 ✔ Container docker-api-1             Started                                                                 6.5s   
 ✔ Container docker-worker-1          Started                                                                 6.4s   
 ✔ Container docker-nginx-1           Started                                                                 7.1s

最后检查是否所有容器都正常运行:

  
docker compose ps

在这个输出中,你应该可以看到包括 3 个业务服务 api / worker / web,以及 6 个基础组件 weaviate / db / redis / nginx / ssrf_proxy / sandbox 。

  
NAME                  IMAGE                              COMMAND                   SERVICE      CREATED              STATUS                        PORTS  
docker-api-1          langgenius/dify-api:0.6.13         "/bin/bash /entrypoi…"   api          About a minute ago   Up About a minute             5001/tcp  
docker-db-1           postgres:15-alpine                 "docker-entrypoint.s…"   db           About a minute ago   Up About a minute (healthy)   5432/tcp  
docker-nginx-1        nginx:latest                       "sh -c 'cp /docker-e…"   nginx        About a minute ago   Up About a minute             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        About a minute ago   Up About a minute (healthy)   6379/tcp  
docker-sandbox-1      langgenius/dify-sandbox:0.2.1      "/main"                   sandbox      About a minute ago   Up About a minute               
docker-ssrf_proxy-1   ubuntu/squid:latest                "sh -c 'cp /docker-e…"   ssrf_proxy   About a minute ago   Up About a minute             3128/tcp  
docker-weaviate-1     semitechnologies/weaviate:1.19.0   "/bin/weaviate --hos…"   weaviate     About a minute ago   Up About a minute               
docker-web-1          langgenius/dify-web:0.6.13         "/bin/sh ./entrypoin…"   web          About a minute ago   Up About a minute             3000/tcp  
docker-worker-1       langgenius/dify-api:0.6.13         "/bin/bash /entrypoi…"   worker       About a minute ago   Up About a minute             5001/tcp

通过这些步骤,本地成功安装 Dify 。 端口号默认是80 。可以打开http://localhost 进行体验了。

第一次打开,需要设置管理员账号密码。

4、Dify的网络拓扑图

picture.image

四、安装Olama

1、安装Ollama

安装Ollama一般有2种方法,一键安装和手动安装。本次使用一键安装方式。

ubuntu服务器执行命令,安装和运行Ollama。

  
curl -fsSL https://ollama.com/install.sh | sh

这个命令需要科学上网,耗时较长。执行成功后,Ollama就会自动运行,随机自启。

2、下载LLM大模型

以DeepSeek-R1 1.5b为例,执行如下命令。

  
ollama run deepseek-r1:1.5b

就可以对大模型对话了。访问 127.0.0.1:11434查看Ollama的执行状态。也使用输入命令查看状态。

  
systemctl  status ollama

3、开放外部访问

这种方式安装的ollama, 绑定的地址是127.0.0.1,只能在本地访问,无法在其他服务器访问。为了让外网能访问,需要将地址改为0.0.0.0. 编辑ollama的服务配置:

  
sudo systemctl edit --full ollama.service

picture.image

需要在Environment里追加 "OLLAMA_HOST=0.0.0.0"。注意Envirinment的格式如下:

  
Environment="VAR1=value1" "VAR2=value2"

则我们在后面加空格,再加上键值对。

Ctrl+X, Y保存退出。重启服务

  
sudo systemctl daemon-reload  
  
sudo systemctl restart ollama.service

这样ollama就可以在外网访问了。

五、安装vLLM

操作步骤看这篇文章:《 大模型部署该选谁?Ollama、vLLM 和 LMDeploy,各有千秋!》 vLLM默认是可以外部访问的,所以无需设置。

若Ollama和vLLM部署在同一台服务器上,则必须要将两者分在不同的显卡上。

picture.image

六、Dify接入 Ollama

1、安装模型供应商

在 设置 > 模型供应商 >安装模型供应商,找到Ollama,并且点击“安装”,完成后,点击添加“模型”,模型类型有2种:LLM - 通用的自然语言大模型,Text Embedding-词嵌入大模型。

picture.image

(1)如果使用大模型进行对话的,则选择LLM 。 模型名称需要选择Ollama已运行的大模型名称,不要填错了。可以使用ollama list命令查看本地已安装的大模型。

picture.image

(2)基础URL,一定要填写 Dify容器内能访问到的地址;

(3)模型类型:对话 ;

(4)模型上下文长度:模型的最大上下文长度,若不清楚可填写默认值 4096。

(5) 最大 token 上限:4096

模型返回内容的最大 token 数量,若模型无特别说明,则可与模型上下文长度保持一致。

(6) 是否支持 Vision:否;

当模型支持图片理解(多模态)勾选此项,deepseek不支持,所以 否;

(7)是否支持函数调用:否;

当模型支持 Function Call,勾选此项。

点击“保存”即可。

2、Dify中选择Ollama对话

“工作台”--“创建空白应用”。应用类型:聊天助手

picture.image

picture.image

点击“创建”即可。跳到“编排”页面,右上角选择ollama配置的大模型即可。

picture.image

自此,在Dify里我们就可以与大模型正常对话了。

七、接入vLLM推理模型

1、安装模型供应商

操作方法与Ollama类似,选择 模型供应商选择 “vLLM”,或者“OpenAI-API-compatible” ;这2个都可以。若是想接入LMDeploy,选择“OpenAI-API-compatible”进行安装。

picture.image

模型名称:vLLM启动时候带的大模型地址,或vLLM指定的大模型名称。

API endPoint URL:地址后带上 /v1 。

其他参数保持默认即可。

2、Dify中选择vLLM对话

编排界面--右上角大模型选择,可以选择vLLM,点击“发布”就可以了。

picture.image

picture.image

LlamaIndex入门指南和RAG原理

RAG进阶:Embedding Models嵌入式模型原理和选型指南

RAG 落地必备的 1 个开源 AI 原生向量数据库 —Chroma

RAG落地实战之文本切分4种策略全解析

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
VikingDB:大规模云原生向量数据库的前沿实践与应用
本次演讲将重点介绍 VikingDB 解决各类应用中极限性能、规模、精度问题上的探索实践,并通过落地的案例向听众介绍如何在多模态信息检索、RAG 与知识库等领域进行合理的技术选型和规划。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论