本地部署AI应用开发平台Dify并配置Ollama大语言模型实现公网远程访问

前言

本篇文章介绍如何将Dify本地私有化部署,并且接入Ollama部署本地模型,实现在本地环境中部署和管理LLM,再结合cpolar内网穿透实现公网远程访问Dify。

Dify 它是一个开源 LLM 应用开发平台。拥有直观的界面结合了 AI 工作流、RAG 管道、代理功能、模型管理、可观察性功能等,可以快速从原型开发到生产。

Ollama 是一个本地推理框架,允许开发人员轻松地在本地部署和运行 LLM,例如 Llama 3、Mistral 和 Gemma。Dify 是一个 AI 应用开发平台,提供了一套完整的工具和 API,用于构建、管理和部署 AI 应用。

接下来在本地部署DIfy。
在这里插入图片描述

1. 本地部署Dify应用开发平台

本篇文章安装环境:Linux Ubuntu22.04

使用Docker Compose部署:Docker 19.03 或更高版本、Docker Compose 1.25.1或更高版本

安装Dify之前,请确保你的机器已满足最低安装要求:CPU>2 Core RAM>=4GB

克隆 Dify 源代码至本地环境:

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

b08321f6a77d4bfaf93954b583972f8.png

启动Dify:

进入 Dify 源代码的 Docker 目录

cd dify/docker

复制环境配置文件

cp .env.example .env

启动 Docker 容器

sudo docker compose up -d

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

b5c21e5aebb987f1055b46990f9e04a.png

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

docker compose ps

然后打开一个新的浏览器,输入localhost:80,或者本机IP地址:80,可以看到进入到了Dify中。

716e588c46dc002fbcaf4f556bba84b.png

设置管理员账号:填写邮箱、用户名、密码后,再重新登录一下

bf99bb247c6823c75016d2b9e135bd1.png

可以看到进入到了Dify的主界面当中

cf6340a8c09a6eb0607ce84b939d017.png

接下来配置ollama模型

2. 使用Ollama部署本地模型

打开一个新的终端,输入下方命令安装ollama

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

3af490763677db757ec7b147a947ced.png

运行 Ollama 并与 Llava 聊天

ollama run llava

17d5eae6a0e47134be90813662d9da6.png

启动成功后,ollama 在本地 11434 端口启动了一个 API 服务,可通过 http://localhost:11434 访问。

image.png

接下来回到Dify中,接入Ollama模型。

3. 在Dify中接入Ollama大语言模型

在Dify主界面,点击右上角个人名字圆圈,点击设置——模型供应商——Ollama

7cfcff463b949cc043836214a500cd1.png

点击填入:

c165ddbc25709eb89ff478031b562ad.png

  • 模型名称:llava

  • 基础 URL:http://<本机IP地址>:11434

    此处需填写可访问到的 Ollama 服务地址。

    若 Dify 为 docker 部署,建议填写局域网 IP 地址,如:http://192.168.1.100:11434 或 docker 宿主机 IP 地址,如:http://172.17.0.1:11434

    若为本地源码部署,可填写 http://localhost:11434

  • 模型类型:对话

  • 模型上下文长度:4096

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

  • 最大 token 上限:4096

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

  • 是否支持 Vision:

    当模型支持图片理解(多模态)勾选此项,如 llava

点击 “保存” 校验无误后即可在应用中使用该模型。

如果Ollama作为systemd服务运行,应该使用systemctl设置环境变量:

  1. 通过调用sudo vim /etc/systemd/system/ollama.service 编辑systemd服务。这将打开一个编辑器。

  2. 对于每个环境变量,在[Service]部分下添加一行Environment

[Service]
Environment="OLLAMA_HOST=0.0.0.0"

image.png

保存并退出

重载systemd并重启Ollama:

systemctl daemon-reload

systemctl restart ollama

然后再回到主页面当中,点击创建空白应用

image.png

选择聊天助手,起一个名字,点击创建

image.png

右上角选择llava模型

image.png

在文本框中编辑文字即可进行对话

image.png

目前我们在本机部署了Dify,并且还添加了Ollama大模型,如果想团队协作多人使用,或者在异地其他设备使用的话就需要结合Cpolar内网穿透实现公网访问,免去了复杂得本地部署过程,只需要一个公网地址直接就可以进入到Dify中。

接下来教大家如何安装Cpolar并且将Dify实现公网访问。

4. 公网远程使用Dify

下面我们在Linux安装Cpolar内网穿透工具,通过Cpolar 转发本地端口映射的http公网地址,我们可以很容易实现远程访问,而无需自己注册域名购买云服务器.下面是安装cpolar步骤

cpolar官网地址: https://www.cpolar.com

使用一键脚本安装命令

curl https://get.cpolar.sh | sudo sh

image-20240801132238671

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar

image.png

Cpolar安装和成功启动服务后,在浏览器上输入ubuntu主机IP加9200端口即:【http://localhost:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

image-20240801133735424

4.1 创建远程连接公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了: dify 注意不要与已有的隧道名称重复

  • 协议:http

  • 本地地址:80

  • 域名类型:随机域名

  • 地区:选择China Top

e236629c30c2161232c1655493d22ad.png

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了两个公网地址,接下来就可以在其他电脑(异地)上,使用任意一个地址在浏览器中访问即可。

abe8c7201aca664a20a8ac320236595.png

如下图所示,成功实现使用公网地址异地远程访问本地部署的Dify应用开发平台!

bb5906f2d50520ec228aa78b1b8b859.png

登录可以看到同样进入到了主界面中,继续使用自己创建的应用了

383e7bb875af096a04e14da924aeec3.png

小结

为了方便演示,我们在上边的操作过程中使用了cpolar生成的HTTP公网地址隧道,其公网地址是随机生成的。

这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。

如果有长期远程访问本地 Dify开发应用平台或者其他本地部署的服务的需求,但又不想每天重新配置公网地址,还想地址好看又好记,那我推荐大家选择使用固定的二级子域名方式来远程访问。

5. 固定Dify公网地址

由于以上使用cpolar所创建的隧道使用的是随机公网地址,24小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化.

注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。【cpolar.cn已备案】

登录cpolar官网,点击左侧的预留,选择保留二级子域名,地区选择china vip top,然后设置一个二级子域名名称,填写备注信息,点击保留。

fe72be4b9c350c2fb34cdfb88e49320.png
保留成功后复制保留的二级子域名地址:

b732329ece62fdbbd63c7a18fb2f524.png

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名

  • Sub Domain:填写保留成功的二级子域名

  • 地区: China VIP

点击更新

463706456a7806bb596036ec151044a.png

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

82274f0c737fed53d9b60a375935c82.png

最后,我们使用固定的公网地址访问 Dify 界面可以看到访问成功,一个永久不会变化的远程访问方式即设置好了。

5315f47a37dae1b8a7663b1d1d64ba6.png

e7ff73577b4f9266a4fba38ded512d3.png

接下来就可以随时随地进行异地公网来使用Dify开发应用平台了,把固定的公网地址分享给身边的人,方便团队协作,同时也大大提高了工作效率!自己用的话,无需云服务器,还可以实现异地其他设备登录!以上就是如何在本地安装Dify并搭建Ollama的全部过程。

LLMOps (Language Model Operations) 是一种新兴的概念,它将大规模语言模型(如OpenAI的GPT系列)的管理和应用操作化,旨在简化生成式人工智能AI)应用程序的开发、部署和运维过程。Dify.AI 是一个流行的 LLMOps 平台,它专注于提供开发者友好的工具和服务,让用户能够利用生成式语言模型(例如通过Prompt)来构建原生的应用程序。 Dify的特点包括: 1. **可视化编程**:Dify允许用户通过直观的图形界面或YAML配置文件声明式地定义AI应用,减少了编码复杂性,特别是对于非专业程序员来说。 2. **Prompt编排**:它支持快速创建和组合不同的Prompt,也就是自然语言输入模板,来引导模型生成所需的输出。 3. **Model Management**:平台提供了对模型版本的管理,允许开发者选择和切换不同性能或特性的模型。 4. **Workflow自动化**:开发者可以预定义AI的工作流,自动处理从数据准备到模型推理的整个流程,节省时间和资源。 5. **应用运营**:Dify支持持续监控和优化模型性能,以及调整应用的运行环境,确保应用的稳定性和效率。 6. **开源和灵活性**:虽然信息未明确指出是否开源,但作为一个LLMOps平台Dify通常会强调其API的开放性和与其他技术栈的兼容性,以便与现有的开发工作无缝集成。 通过Dify,开发者可以更快地构建基于大语言模型的应用,无论是初学者还是有经验的专业人士,都能利用其易于理解和使用的特性,推动生成式AI技术的广泛应用。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值