当前位置: 首页 > java >正文

Dify 完全指南(一):从零搭建开源大模型应用平台(Ollama/VLLM本地模型接入实战)》

文章目录

    • 1. 相关资源
    • 2. 核心特性
    • 3. 安装与使用(Docker Compose 部署)
      • 3.1 部署Dify
      • 3.2 更新Dify
      • 3.3 重启Dify
      • 3.4 访问Dify
    • 4. 接入本地模型
      • 4.1 接入 Ollama 本地模型
        • 4.1.1 步骤
        • 4.1.2 常见问题
      • 4.2 接入 Vllm 本地模型
    • 5. 进阶应用场景
    • 6. 总结

1. 相关资源

  • 官网
  • Github
  • 说明文档

2. 核心特性

  • ✅ 多模型支持:兼容 OpenAI、Anthropic、Ollama、VLLM、Hugging Face 等数百种模型。
  • ✅ 可视化 Prompt 编排:无需代码,通过界面调整 AI 行为。
  • ✅ RAG 增强检索:支持知识库上传(PDF/TXT/Markdown 等),提升回答准确性。
  • ✅ Agent 框架:可构建自动化 AI 工作流(如数据分析、客服机器人)。
  • ✅ 灵活部署:支持 Docker 一键部署,适配本地、云端及混合环境。

3. 安装与使用(Docker Compose 部署)

参考资料

Docker Compose 部署

在运行安装命令之前,请确保您的机器上安装了 Docker 和 Docker Compose,安装 Docker 以及 Docker Compose 的具体步骤可以参考 Ubuntu 24.04 完整Docker安装指南:从零配置到实战命令大全。

3.1 部署Dify

cd ~/workspace/ai/tools && git clone --depth 1 git@gitee.com:dify_ai/dify.git && cd dify/docker
cp .env.example .env
# 启动 Docker 容器,未将当前用户加入docker组的话,需要使用sudo
docker compose up -d
# 检查容器是否都正常运行
docker compose ps

值得注意的是,如果版本是 Docker Compose V1,在使用命令 docker compose 的时候,需要换成 docker-compose,例如 docker-compose up -d

3.2 更新Dify

cd dify/docker
docker compose down
git pull origin main
docker compose pull
docker compose up -d

注意:

  • 如果 .env.example 文件有更新,请务必同步修改你本地的 .env 文件。
  • 检查 .env 文件中的所有配置项,确保它们与你的实际运行环境相匹配。你可能需要将 .env.example 中的新变量添加到 .env 文件中,并更新已更改的任何值。
  • 更新后需要重启 Dify

3.3 重启Dify

# 停止Dify
docker compose down
# 启动Dify
docker compose up -d

3.4 访问Dify

# 本地环境
http://localhost# 服务器环境
http://your_server_ip

4. 接入本地模型

4.1 接入 Ollama 本地模型

参考资料

接入 Ollama 部署的本地模型
私有化部署 Ollama + DeepSeek + Dify,构建你的专属私人 AI 助手

笔者实验环境为 Ubuntu24.04,宿主机启动 Ollama 服务 + Docker Compose部署 Dify

4.1.1 步骤
  1. 点击 Dify 平台右上角头像 → 设置 → 模型供应商,选择 Ollama,点击“添加模型”(若 Dify 平台中 Ollama 插件未安装的话,需要先点击“安装”)。
  2. 输入模型名称、基础URL,其他选项可使用默认设置即可,点击“保存”。其中:
    • 模型名称 为 Ollama 服务中的模型名称,可通过 ollama list 获取
      ollama list
    • 基础URL 为 Ollama 服务地址,例如 http://host.docker.internal:11434
      ollama_config
4.1.2 常见问题
  1. Connection refused问题

    使用官方文档中的 http://host.docker.internal:11434 作为基础URL,可能会出现 httpconnectionpool (host=localhost, port=11434): max retries exceeded with url:/cpi/chat (Caused by NewConnectionError ('<urllib3.connection.HTTPConnection object at 0x7f8562812c20>: fail to establish a new connection:[Errno 111] Connection refused')) 错误,此时需要直接使用宿主机的IP地址。

    解决步骤:

    1. 设置 Ollama 服务监听地址

      # 修改 ollama.service 文件,添加 OLLAMA_HOST 环境变量
      sudo vim /etc/systemd/system/ollama.service
      # 在 [Service] 下添加
      Environment="OLLAMA_HOST=0.0.0.0:11434"
      # 重新加载配置文件
      sudo systemctl daemon-reload
      sudo systemctl restart ollama
      # 查看服务状态,确保 ollama 服务以 :::11434 启动
      sudo netstat -tulnp | grep ollama 
      # 重启Dify
      docker compose down
      docker compose up -d
      
    2. 获取本机IP地址

      # 获取本机IP地址,假如输出为 192.168.163.248
      hostname -I | awk '{print $1}'
      # 测试以本机IP是否可以查看ollama模型列表(需要将 192.168.163.248 替换为上一步实际输出的IP地址)
      curl http://192.168.163.248:11434/api/tags # 应成功返回模型列表
      
    3. 开启防火墙端口

      如果仍有问题,考虑是否防火墙拦截了 11434 端口,需要配置防火墙规则。

      sudo ufw allow 11434/tcp && sudo ufw reload
      
    4. 修改基础URL配置

      修改基础URL配置,将 http://host.docker.internal:11434 修改为 http://192.168.163.248:11434,再次点击 保存 即可。

4.2 接入 Vllm 本地模型

  1. 点击 Dify 平台右上角头像 → 设置 → 模型供应商,选择 Vllm,点击“添加模型”(若 Dify 平台中 Vllm 插件未安装的话,需要先点击“安装”)。
  2. 输入模型名称、API endpoint URL,其他选项可使用默认设置即可,点击“保存”。其中:
    • 模型名称 为 Vllm 服务启动的模型名称
    • API endpoint URL 为 Vllm 服务地址,例如 http://192.168.163.248:8000/v1
      vllm_config

5. 进阶应用场景

🔹 知识库问答:上传企业文档,构建智能客服。
🔹 AI 工作流:结合 Agent 实现自动化任务(如邮件撰写+数据分析)。
🔹 私有化部署:企业级数据安全,完全本地运行。

6. 总结

Dify 是当前最易用的开源 LLM 应用平台之一,适合快速搭建 AI 应用。本文详细介绍了 Docker 部署、Ollama/VLLM 本地模型接入 及常见问题排查,帮助开发者高效落地 AI 项目。

http://www.xdnf.cn/news/3835.html

相关文章:

  • Github2025-05-04php开源项目日报 Top10
  • 详解迁移学习,模型参数冻结,优化器参数定义
  • 传感器数据处理笔记
  • Linux中的粘滞位和开发工具和文本编辑器vim
  • 马小帅面试遇“灵魂拷问“
  • hot100:链表倒数k个节点- 力扣(LeetCode)
  • 研0大模型学习(第11天)
  • FFT实现(Cooley-Tukey算法)
  • WEB 前端学 JAVA(二)Java 的发展与技术图谱简介
  • TS 字面量类型
  • Mybatis学习(下)
  • LabVIEW开发风量智能监测系统
  • 【杂谈】-探索 NVIDIA Dynamo 的高性能架构
  • 牛客周赛90 C题- Tk的构造数组 题解
  • STM32智能垃圾桶:四种控制模式实战开发
  • 58认知干货:创业经验分享及企业形式的汇总
  • 【AI面试准备】逻辑思维、严谨性、总结能力、沟通协作、适应力与目标导向
  • 文件一键解密软件工具(支持pdf、word、excel、ppt、rar、zip格式文件)
  • 链接文件及功能安全:英飞凌官方文档摘录 - Tasking链接文件
  • 开上“Python跑的车”——自动驾驶数据可视化的落地之道
  • 使用python写多文件#inlcude
  • Spring AI Advisors API:AI交互的灵活增强利器
  • ES6入门---第三单元 模块三:async、await
  • 网络:TCP三次握手、四次挥手
  • 介词:连接名词与句子其他成分的桥梁
  • 互联网大厂Java面试:从基础到实战
  • 【漫话机器学习系列】239.训练错误率(Training Error Rate)
  • vulkanscenegraph显示倾斜模型(6.4)-多线程下的记录与提交
  • Dalvik虚拟机和ART虚拟机
  • ART 下 Dex 加载流程源码分析 和 通用脱壳点