AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互

AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互
文章目录
  • 前言
  • 1. 本地部署Dify应用开发平台
  • 2. 使用Ollama部署本地模型
  • 3. 在Dify中接入Ollama大语言模型
  • 4. 公网远程使用Dify
  • 4.1 创建远程连接公网地址
  • 5. 固定Dify公网地址

前言

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

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

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

接下来在本地部署DIfy。

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互


【视频教程】

Dify+Ollama+llava大模型本地搭建个人AI知识库并实现远程访问

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

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互

启动Dify:

进入 Dify 源代码的 Docker 目录

cd dify/docker

复制环境配置文件

cp .env.example .env

启动 Docker 容器

sudo docker compose up -d

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

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互

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

sudo docker compose ps

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

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互

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

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互

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

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互

接下来配置ollama模型

2. 使用Ollama部署本地模型

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

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

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互

运行 Ollama 并与 Llava 聊天

ollama run llava

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互

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

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互

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

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

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

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互

点击填入:

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互

模型名称: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设置环境变量:

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

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

[Service]
Environment="OLLAMA_HOST=0.0.0.0"

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互

保存并退出

重载systemd并重启Ollama:

systemctl daemon-reload

systemctl restart ollama

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

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互

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

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互

右上角选择llava模型

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互

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

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互

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

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

4. 公网远程使用Dify

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

cpolar官网地址:

使用一键脚本安装命令

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

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互

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

sudo systemctl status cpolar

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互

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

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互
4.1 创建远程连接公网地址

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

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

协议:http

本地地址:80

域名类型:随机域名

地区:选择China Top

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互

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

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互

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

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互

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

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互

小结

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

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

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

5. 固定Dify公网地址

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

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

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

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互


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

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互

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

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

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

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

地区: China VIP

点击更新

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互

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

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互

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

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互
www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互

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

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

www.zeeklog.com  - AI开发新体验:本地部署Dify应用开发平台并接入大模型无公网IP远程交互

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

Read more

前端防范 XSS(跨站脚本攻击)

目录 一、防范措施 1.layui util  核心转义的特殊字符 示例 2.js-xss.js库 安装 1. Node.js 环境(npm/yarn) 2. 浏览器环境 核心 API 基础使用 1. 基础过滤(默认规则) 2. 自定义过滤规则 (1)允许特定标签 (2)允许特定属性 (3)自定义标签处理 (4)自定义属性处理 (5)转义特定字符 常见场景示例 1. 过滤用户输入的评论内容 2. 允许特定富文本标签(如富文本编辑器内容) 注意事项 更多配置 XSS(跨站脚本攻击)是一种常见的网络攻击手段,它允许攻击者将恶意脚本注入到其他用户的浏览器中。

详细教程:如何从前端查看调用接口、传参及返回结果(附带图片案例)

详细教程:如何从前端查看调用接口、传参及返回结果(附带图片案例)

目录 1. 打开浏览器开发者工具 2. 使用 Network 面板 3. 查看具体的API请求 a. Headers b. Payload c. Response d. Preview e. Timing 4. 实际操作步骤 5. 常见问题及解决方法 a. 无法看到API请求 b. 请求失败 c. 跨域问题(CORS) 作为一名后端工程师,理解前端如何调用接口、传递参数以及接收返回值是非常重要的。下面将详细介绍如何通过浏览器开发者工具(F12)查看和分析这些信息,并附带图片案例帮助你更好地理解。 1. 打开浏览器开发者工具 按下 F12 或右键点击页面选择“检查”可以打开浏览器的开发者工具。常用的浏览器如Chrome、Firefox等都内置了开发者工具。下面是我选择我的一篇文章,打开开发者工具进行演示。 2. 使用

Cursor+Codex隐藏技巧:用截图秒修前端Bug的保姆级教程(React/Chakra UI案例)

Cursor+Codex隐藏技巧:用截图秒修前端Bug的保姆级教程(React/Chakra UI案例) 前端开发中最令人头疼的莫过于那些难以定位的UI问题——元素错位、样式冲突、响应式失效...传统调试方式往往需要反复修改代码、刷新页面、检查元素。现在,通过Cursor编辑器集成的Codex功能,你可以直接用截图交互快速定位和修复这些问题。本文将带你从零开始,掌握这套革命性的调试工作流。 1. 环境准备与基础配置 在开始之前,确保你已经具备以下环境: * Cursor编辑器最新版(v2.5+) * Node.js 18.x及以上版本 * React 18项目(本文以Chakra UI 2.x为例) 首先在Cursor中安装Codex插件: 1. 点击左侧扩展图标 2. 搜索"Codex"并安装 3. 登录你的OpenAI账户(需要ChatGPT Plus订阅) 关键配置项: // 在项目根目录创建.