Linux系统本地化部署Dify并安装Ollama运行llava大语言模型详细教程

news2024/9/20 18:50:51

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术,jvm,并发编程 redis,kafka,Spring,微服务等
    • 常用开发工具系列:常用的开发工具,IDEA,Mac,Alfred,Git,typora 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 新空间代码工作室:提供各种软件服务,承接各种毕业设计,毕业论文等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

    • 前言
    • 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。
在这里插入图片描述

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 的全部过程。

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2115985.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

屏保壁纸 芝麻时钟比屏保壁纸更好看的桌面动态屏保 大气美观

屏保壁纸 芝麻时钟比屏保壁纸更好看的桌面动态屏保 大气美观&#xff0c;今天小编给大家带来一款非常大气美观的桌面时钟屏保&#xff0c;比屏保壁纸更好看&#xff0c;更美观的桌面屏保软件。非常有个性化哦&#xff0c;我们看看这种屏保主题&#xff0c;是不是让你眼前一亮呢…

20240908 每日AI必读资讯

新AI编程工具爆火&#xff1a;手机2分钟创建一个APP&#xff01; - AI初创公司Replit推出的智能体——Replit Agent。开发环境、编写代码、安装软件包、配置数据库、部署等等&#xff0c;统统自动化&#xff01; - 操作方式也是极其简单&#xff0c;只需一个提出Prompt的动作…

HBuilderx 安装 compile-node-sass编译工具

在使用HBuilderx工具&#xff0c;利用uni-app框架开发前端过程中&#xff0c;应用 “.scss”扩展名的的样式文件&#xff0c;scss作为css的预编译文件&#xff0c;在实际开发中是需要编译的&#xff0c;所以需要安装插件 compile-node-sass。 本人在CSDN下载插件“compile-node…

2.软件生命周期及流程(包含笔试/面试题)

一、软件生命周期 1.什么是软件的生命周期&#xff1f; 软件生命周期就是软件从开始研发到最终被废弃不用的一整个过程。 二、软件生命周期模型 1.瀑布型生命周期模型&#xff08;基本不用这个模型&#xff09; 最早期的模型&#xff0c;流程是从上而下的&#xff0c;如同瀑布流…

【机器人工具箱Robotics Toolbox开发笔记(二)】Matlab中机器人工具箱的下载与安装

Matlab机器人工具箱(Robotics Toolbox)可从Peter Corke教授提供的网站上免费下载。网址为:http://www.petercorke.com/Robotics_Toolbox.html。 图1 网站所提供的机器人工具箱版本 在Downloading the Toolbox栏目中单击here按钮进入下载页面,然后在该页面中填写国家、组织…

基于Python爬虫的淘宝服装数据分析项目

文章目录 一.项目介绍二.爬虫代码代码分析 三. 数据处理四. 数据可视化 一.项目介绍 该项目是基于Python爬虫的淘宝服装数据分析项目&#xff0c;以致于帮助商家了解当前服装市场的需求&#xff0c;制定更加精确的营销策略。首先&#xff0c;需要爬取淘宝中关于服装的大量数据…

JS_函数声明

JS中的方法,多称为函数,函数的声明语法和JAVA中有较大区别 函数说明 函数没有权限控制符不用声明函数的返回值类型,需要返回在函数体中直接return即可,也无需void关键字参数列表中,无需数据类型调用函数时,实参和形参的个数可以不一致声明函数时需要用function关键字函数没有…

STM32F407VET6开发板RT-Thread MSH 串口的适配

相关文章 STM32F407VET6开发板RT-Thread的移植适配 环境 STM32F407VET6 开发板&#xff08;魔女&#xff09;&#xff0c;http://www.stm32er.com/ Keil MDK5&#xff0c;版本 5.36 串口驱动 RT-Thread 通过适配 串口驱动&#xff0c;可以使用 MSH shell 当前手动搭建的 …

c++基础版

c基础版 Windows环境搭建第一个C程序c程序运行原理注释常亮字面常亮符号常亮 变量数据类型整型实型常量类型确定char类型字符串布尔类型 控制台输入随机数产生枚举定义数组数组便利 指针基础野指针空指针指针运算动态内存分配 结构体结构体默认值结构体数组结构体指针结构体指针…

JavaWeb笔记整理13——Mybatis

目录 Mybatis介绍 删除 预编译SQL SQL注入 新增 更新 查询 数据封装 条件查询 XML映射文件 动态SQL 更新案例 foreach Mybatis介绍 删除 预编译SQL SQL注入 新增 更新 查询 数据封装 条件查询 XML映射文件 动态SQL <if> 更新案例<set> foreach &l…

消息中间件 --Kafka

一、 Kafka 1.kafka介绍 Kafka 是一个分布式流媒体平台,类似于消息队列或企业消息传递系统。 生产者发送消息&#xff0c;多个消费者只能有一个消费者接收到消息 生产者发送消息&#xff0c;多个消费者都可以接收到消息 producer&#xff1a;发布消息的对象称之为主题生产者…

人工智能,语音识别也算一种人工智能。

现在挺晚了&#xff0c;还是没有去睡觉&#xff0c;自己在想什么呢&#xff0c;也不确定。 这是一篇用语音写的文章&#xff0c;先按自己的想法说出来&#xff0c;然后再适当修改&#xff0c;也许就是一个不错的文章。 看来以后就不需要打字了&#xff0c;语音识别度很高&#…

两数之和--力扣1

两数之和 题目思路C代码 题目 思路 根据题目要求&#xff0c;元素不能重复且不需要排序&#xff0c;我们这里使用哈希表unordered_map。注意题目说了只对应一种答案。 所以我们在循环中&#xff0c;使用目标值减去当前循环的nums[i]&#xff0c;得到差值&#xff0c;如果我们…

ICM20948 DMP代码详解(8)

接前一篇文章&#xff1a;ICM20948 DMP代码详解&#xff08;7&#xff09; 上一回讲解了EMP-App中的入口函数main()中重点关注的第2段代码的后一个函数inv_icm20948_register_aux_compass&#xff0c;讲解了其各个参数&#xff0c;本回对于函数代码进行解析。为了便于理解和回顾…

市场独宠大尺寸超微小间距LED显示屏COB智能会议一体机

在当今这个信息化高速发展的时代&#xff0c;大屏幕显示设备已成为企业会议、教育培训、展览展示、商业广告等多个领域不可或缺的重要工具。随着技术的不断进步&#xff0c;市场上涌现出了投影机、液晶一体机、DLP背投、小间距LED、LED会议一体机以及新兴的COB智能会议一体机等…

vulhub Thinkphp5 2-rce远程代码执行漏洞

步骤一&#xff1a; 执行以下命令启动靶场环境并在浏览器访问 cd /vulhub/thinkphp/2-rce #进入漏洞环境所在目录docker-compose up -d #启动靶场docker ps #查看容器信息 步骤二&#xff1a;访问网页 步骤三&#xff1a;?s/Index/index/L/${phpinfo()} 步骤四&#xff1a;?…

828华为云征文 | 搭建云服务器Flexus X实例,开启简单上云第一步

828华为云征文 | 搭建云服务器Flexus X实例&#xff0c;开启简单上云第一步 Flexus云服务器X实例是一个高度可扩展的云平台&#xff0c;提供了一系列的服务&#xff0c;包括数据处理、应用开发、服务器托管等&#xff1b;对于开发者来说&#xff0c;Flexus云服务器X实例提供了一…

Percona 开源监控方案 PMM 详解

文章目录 前言1. 安装部署1.1 Server 安装1.2 Client 安装 2. 监控数据库2.1 MySQL2.2 PostgreSQL 3. Dashboard 介绍总结 前言 Percona Monitoring and Management (PMM) 是 Percona 公司基于业界流行的组件 Prometheus 和 Grafana 设计开发的一体化数据库监控解决方案。本篇…

vulhub ThinPHP5 2-rce远程代码执行漏洞

1.打开环境 进入环境所在的文件 docker-compose up -d 一键启动 2.浏览器访问环境 3.构造payload ?s/index/index/L/${phpinfo()} 4.写入一句话木马 ?s/Index/index/name/${print(eval($_POST[cmd]))} 5.使用蚁剑连接 http://192.168.10.233:8080/?s/Index/index/name…

SpringMVC基于注解使用:国际化

01-国际化介绍 首先在bootstrap下载个页面 下载后把登录页面的代码粘上去 然后再登录页面代码上有些超链接需要再spring-mvc.xml里面配置下&#xff0c;登录页面才能正常显示 配置静态资源 国际化-根据浏览器语言国际化 现在是中文的情况&#xff0c;要改为英文 1.配置下属…