[Dify] 使用 Docker 本地部署 Dify 并集成 Ollama 模型的详细指南

在 AI 应用快速发展的今天,开源项目如 Dify 正成为构建本地化 AI 应用的利器。通过 Dify,你可以轻松地集成不同的大语言模型(LLM),如 Ollama,并快速创建可交互的 AI 应用。本篇文章将带你一步步通过 Docker 在本地部署 Dify,并完成 Ollama 模型的集成配置。

一、准备工作:安装 Docker

在正式部署前,需要先确保本地环境已安装好 Docker。

  • 可前往 Docker 官网 下载适合你系统的 Docker Desktop;

  • 安装完成后,打开终端(Windows 用户可使用 CMD 或 PowerShell)执行 docker -v,验证是否成功安装。

二、获取并解压 Dify 项目文件

  1. 打开 Dify GitHub 仓库;

  2. 点击 Code > Download ZIP 下载项目压缩包;

  3. 解压缩后,进入解压出的 dify 文件夹,再进入 docker 子目录。

三、通过 Docker Compose 启动服务

dify/docker 文件夹中,按以下步骤操作:

# 启动终端并切换到当前目录
cd dify/docker# 启动 Docker Compose
docker compose up -d

服务成功启动后,打开浏览器访问:

http://127.0.0.1

首次访问会跳转到安装页面,设置管理员密码,即可进入管理后台。

四、解决配置文件版本问题(如有)

在部分环境中,可能会遇到配置文件中定义的镜像版本不可用的情况。这时需要:

  1. 打开 docker-compose.yml 文件;

  2. 找到 dify-apidify-web 两个服务;

  3. 将它们的镜像版本号修改为当前 GitHub 上最新的稳定版本。

例如:

services:dify-api:image: langgenius/dify-api:latestdify-web:image: langgenius/dify-web:latest

保存文件后,重新运行 docker compose up -d 即可。

五、配置 Ollama 模型提供商

完成 Dify 部署后,我们来集成本地运行的 Ollama 模型:

1. 打开 Model Provider 页面

进入 Dify 后台,点击左侧导航栏的 Settings > Model Provider

2. 添加 Ollama 模型服务

  1. 点击 Add

  2. 在弹窗中选择 Ollama 作为模型提供商;

  3. 在模型类型中选择 LLM(对话用),另一种为 Embedding(嵌入用)

  4. 打开终端,运行 ollama list,复制想要集成的模型名称(如 llama3);

  5. 粘贴至 Model Name 输入框;

  6. 设置 Base URL

    • 如果 Dify 运行在 Docker 容器内,而 Ollama 运行在本地,则需使用:

      http://host.docker.internal:11434
      
  7. 保存配置。

3. 测试模型集成效果

配置完成后,你就可以在 Dify 中创建一个新应用,使用刚刚配置的模型来对话或执行任务了。

总结

通过本文你可以实现:

  • ✅ 使用 Docker 快速部署 Dify;

  • ✅ 修复可能出现的镜像版本问题;

  • ✅ 集成本地 Ollama 模型,实现 LLM 聊天功能。


如你有更进一步的自定义部署需求(如绑定域名、HTTPS 配置、多用户权限管理等),可继续深入研究 Dify 的官方文档和社区资源。如果你希望我继续扩展某部分内容,比如创建具体应用示例,也可以告诉我!

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

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

相关文章

Spring Boot 测试详解,包含maven引入依赖、测试业务层类、REST风格测试和Mock测试

Spring Boot 测试详解 1. 测试依赖引入 Spring Boot 默认通过以下 Maven 依赖引入测试工具&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</s…

DevOps与功能安全:Perforce ALM通过ISO 26262合规认证,简化安全关键系统开发流程

本文来源perforce.com&#xff0c;由Perforce中国授权合作伙伴、DevSecOps解决方案提供商-龙智翻译整理。 近日&#xff0c;Perforce ALM&#xff08;原Helix ALM&#xff09;通过了国际权威认证机构 TV SD的ISO 26262功能安全流程认证&#xff01;该认证涵盖Perforce ALM解决方…

Android11车载WiFi热点默认名称及密码配置

一、背景 基于车厂信息安全要求,车载热点默认名称不能使用统一的名称,以及默认密码不能为简单的1~9。 基于旧项目经验,组装工厂自动化测试及客户整车组装的时候均存在多台设备同时打开,亦不太推荐使用统一的热点名称,连接无法区分。 二、需求 根据客户的要求,默认名称…

MacOs java环境配置+maven环境配置踩坑实录

oracl官网下载jdk 1.8的安装包 注意可能需要注册&#xff01;&#xff01;&#xff01; 下载链接&#xff1a;下载地址点击 注意晚上就不要下载了 报错400 &#xff01;&#xff01;&#xff01; 1.点击安装嘛 2.配置环境变量 export JAVA_HOME/Library/Java/Java…

如何解读 /proc/net/netstat

在刷了屏的川普&#xff0c;关税&#xff0c;AI 大模型和 RDMA 之外的一股清流&#xff0c;来点实用的。 众所周知 /proc/net/netstat 很难读&#xff0c;且 netstat 并不是每个系统上都支持 -s&#xff0c;那么对齐该文件给出一个可读的输出就是一件高尚的事。可以用 column …

汉化进度100%

P3834 #include<bits/stdc.h> #define int long long #define 定义整型变量 int #define 这是一个常量 const #define 无返回值函数 void #define 这是一个循环条件在后面 for #define 定义结构体 struct #define 如果 if #define 否则 else #define 定义无返回值的 sig…

基于SpringBoot的动物救助中心系统(源码+数据库)

500基于SpringBoot的动物救助中心系统&#xff0c;本系统共分为2个角色&#xff1a;系统管理员、用户&#xff0c;主要功能如下 【管理员】&#xff1a; 1. 登录&#xff1a;管理员可以通过登录系统来管理各种功能。 2. 用户管理&#xff1a;管理员可以查看用户列表&#xff0…

rockylinux 8 9 升级到指定版本

rockylinux 8 update 指定版本 rockylinux 历史版 所有版本rockylinux 最新版 所有版本vault历史版 pub最新版(https://dl.rockylinux.org)地址后面增加不同名称 echo "delete repos" rm -rf /etc/yum.repos.d/*echo "new rockylinux repo" cat <<EO…

聚焦AI与大模型创新,紫光云如何引领云计算行业快速演进?

【全球云观察 &#xff5c; 科技热点关注】 随着近年来AI与大模型的兴起&#xff0c;云计算行业正在发生着一场大变局。 “在2025年春节期间&#xff0c;DeepSeek两周火爆全球&#xff0c;如何进行私域部署成了企业关心的问题。”紫光云公司总裁王燕平强调指出&#xff0c;AI与…

React8+taro开发微信小程序,实现lottie动画

安装核心依赖 npm install lottie-miniprogram tarojs/plugin-html --save修改 Taro 配置 (config/index.js) const config {plugins: [tarojs/plugin-html,// 其他插件...],mini: {canvas: true,webpackChain(chain) {chain.merge({module: {rule: {lottie-loader: {test: …

有效压缩 Hyper-v linux Centos 的虚拟磁盘 VHDX

参考&#xff1a; http://www.360doc.com/content/22/0505/16/67252277_1029878535.shtml VHDX 有个不好的问题就是&#xff0c;如果在里面存放过文件再删除&#xff0c;那么已经使用过的空间不会压缩&#xff0c;导致空间一直被占用。那么就需要想办法压缩空间。 还有一点&a…

【力扣hot100题】(089)最长有效括号

这题目真是越做越难了。 但其实只是思路很难想到&#xff0c;一旦会了方法就很好做。 但问题就在方法太难想了…… 思路还是只要遍历一遍数组&#xff0c;维护动态规划数组记录截止至目前位置选取该元素的情况下有效括号的最大值。 光是知道这个还不够&#xff0c;看了答案…

Ajax------免刷新地前后端交互

本文略带PHP代码需要在PHP环境下使用 介绍 AJAX (Asynchronous JavaScript and XML) 是一种创建快速动态网页应用的开发技术&#xff0c;它允许网页在不重新加载整个页面的情况下&#xff0c;与服务器交换数据并更新部分网页内容。例如&#xff0c;在我们做爬虫的时候发现有些…

Android 中支持旧版 API 的方法(API 30)

Android 中最新依赖库的版本支持 API 31 及以上版本&#xff0c;若要支持 API30&#xff0c;则对应的依赖库的版本就需要使用旧版本。 可通过修改模块级 build.gradle 文件来进行适配。 1、android 标签的 targetSdk 和 compileSdk 版本号 根据实际目标设备的 android 版本来…

JDBC注入无外网(上):从HertzBeat聊聊SnakeYAML反序列化

上周日联合Ar3h 师傅一起&#xff0c;在【代码审计知识星球】里发布了一个Springboot的小挑战&#xff1a;https://t.zsxq.com/tSBBZ&#xff0c;这个小挑战的核心目标是在无法连接外网的情况下&#xff0c;如何利用PSQL JDBC注入漏洞。我会分两篇文章来讲讲Java安全的不出网利…

QTreeWidget 手动设置选中项后不高亮的问题

当使用Qt编程QTreeWidget setCurrentItem() 方法设置 QTreeWidget 的当前项时&#xff0c;如果发现选中项显示为灰色而不是高亮状态&#xff0c;这通常是由以下几个原因导致的&#xff1a; 方法1. 焦点问题 • 确保 QTreeWidget 有焦点 • 解决方案&#xff1a; cpp treeWidge…

javaSE学习(前端基础知识)

文章目录 前言一、HTML1、< th >、< tr > 和 < td >标签&#xff1a;2、< button > 标签&#xff1a;3、< input type"text" >&#xff1a;4、< br >&#xff1a; 二、CSS1、选择器2、声明块3、常用属性及值 三、JS1、Vue 实例对…

c# 数据结构 链表篇 有关单链表的一切

本人能力有限,本文仅作学习交流与参考,如有不足还请斧正 目录 0.单链表好处 0.5.单链表分类 1.无虚拟头节点情况 图示: 代码: 头插/尾插 删除 搜索 遍历全部 测试代码: 全部代码 2.有尾指针情况 尾插 全部代码 3.有虚拟头节点情况 全部代码 4.循环单链表 几个…

蓝桥杯C++组算法知识点整理 · 考前突击(上)【小白适用】

【背景说明】本文的作者是一名算法竞赛小白&#xff0c;在第一次参加蓝桥杯之前希望整理一下自己会了哪些算法&#xff0c;于是有了本文的诞生。分享在这里也希望与众多学子共勉。如果时间允许的话&#xff0c;这一系列会分为上中下三部分和大家见面&#xff0c;祝大家竞赛顺利…

pipe匿名管道实操(Linux)

管道相关函数 1 pipe 是 Unix/Linux 系统中的一个系统调用&#xff0c;用于创建一个匿名管道 #include <unistd.h> int pipe(int pipefd[2]); 参数说明&#xff1a; pipefd[2]&#xff1a;一个包含两个整数的数组&#xff0c;用于存储管道的文件描述符&#xff1a; pi…