Dify配置自定义模型并添加本地/局域网模型,核心是先在本地/内网启动模型API服务(如Ollama、vLLM、Xinference),再在Dify中通过“模型供应商”配置对应接入方式,确保网络可达与参数匹配。以下是分场景的完整可复用步骤与配置要点:


一、核心接入方案对比(快速选型)

接入方式 工具 适用场景 优点 典型端口
Ollama Ollama 快速部署主流模型(Llama 3、Qwen等) 轻量、一键部署、OpenAI兼容 11434
OpenAI兼容API vLLM、Text Generation Web UI 本地/内网高性能推理 支持大模型、高并发 8000(vLLM)
Xinference Xinference 多模型统一管理、量化灵活 适配多框架、模型版本可控 9997

二、分场景详细配置步骤

场景1:用Ollama接入本地/局域网模型(最简便)
  1. 本地部署Ollama并启动模型

    • 安装Ollama:官网下载安装包,或用命令行安装
    • 拉取并运行模型:ollama run qwen:7b(自动下载并启动,默认端口11434)
    • 局域网访问配置:Linux/macOS设置OLLAMA_HOST=0.0.0.0,开放防火墙端口ufw allow 11434;Windows开放11434端口
  2. Dify中配置Ollama供应商

    1. 登录Dify → 设置 → 模型供应商 → 搜索“Ollama”并安装
    2. 进入Ollama供应商 → 添加模型
      • 模型名称:自定义(如Qwen-7B-Local)
      • 基础URL:本地http://localhost:11434;Docker部署http://host.docker.internal:11434;局域网http://192.168.1.100:11434(替换为实际IP)
      • 模型名称映射:填写Ollama中的完整模型名(如qwen:7b
    3. 保存后,在“模型管理”中启用该模型,任务类型选“text-generation”
  3. 网络问题排查

    • Docker中Dify无法访问本地Ollama:改用host.docker.internal或宿主机内网IP,避免用localhost
    • 局域网访问失败:关闭防火墙或放行端口,确保设备在同一网段
场景2:用OpenAI兼容API接入本地模型(vLLM示例)
  1. 启动vLLM OpenAI兼容服务

    docker run -d --gpus all -p 8000:8000 -v /path/to/models:/models \
      vllm/vllm-openai:latest \
      --model /models/Qwen-7B-Chat --api-key my-secret-key --tensor-parallel-size 1
    

    (参数说明:--model指定本地模型路径,--api-key设置访问密钥,--tensor-parallel-size适配GPU数量)

    本地部署,下载docker镜像成功的详细命令
    说明详见:win10 本地局域网内下载Qwen3Guard-Gen-8B模型并配置到dify的步骤文中说明

docker run --gpus all --shm-size 24g -p 0.0.0.0:8000:8000 `
  -v "E:/AI_Model/Qwen/Qwen3Guard-Gen-8B":/mnt/d/models/Qwen3Guard-Gen-8B `
  vllm/vllm-openai:latest `
  --model /models/Qwen3Guard-Gen-8B `
  --trust-remote-code `
  --served-model-name qwen3guard-gen-8b `
  --max-model-len 8192 `
  --env LC_ALL=C.UTF-8 `
  --gpu-memory-utilization 0.9 `
  --api-key your_secure_key_123 # 可选,如果不设置,剔除该参数
  1. Dify中配置自定义模型(OpenAI兼容)
    1. 进入Dify → 设置 → 模型供应商 → 选择“OpenAI-API-compatible”
    2. 添加模型
      • 模型名称:自定义(如vLLM-Qwen-7B)
      • API端点:http://192.168.1.100:8000/v1(替换为vLLM服务IP+端口)
      • API密钥:填写启动vLLM时设置的my-secret-key
      • 模型名称映射:Qwen-7B-Chat(与vLLM中--model参数一致)
    3. 保存并启用,测试调用
场景3:用Xinference接入本地/内网模型
  1. 启动Xinference服务并部署模型

    • 安装:pip install "xinference[all]"
    • 启动服务:xinference -H 0.0.0.0(默认端口9997,允许局域网访问)
    • 部署模型:xinference launch --model-name qwen-7b-chat --model-format pytorch --quantization 4bit,记录返回的model_uid
  2. Dify中配置Xinference供应商

    1. 安装Xinference供应商插件
    2. 添加模型
      • 服务器URL:http://192.168.1.100:9997(替换为Xinference服务IP)
      • 模型UID:填写部署时返回的model_uid
      • 模型名称:自定义,任务类型选“text-generation”
    3. 保存并测试

三、通用配置要点与排错指南

  1. 网络可达性

    • 本地Docker部署Dify:访问宿主机服务用host.docker.internal;访问局域网用宿主机内网IP
    • 防火墙:放行模型服务端口(如11434、8000、9997)
    • 测试连通性:在Dify服务器/容器中执行curl http://模型服务IP:端口/v1/models,确认返回模型列表
  2. 参数匹配规则

    • 模型名称映射必须与服务端模型名完全一致(如Ollama的qwen:7b、vLLM的Qwen-7B-Chat
    • API密钥、基础URL等参数错误会导致“Credentials validation failed”或“404 Not Found”
  3. 常见错误处理

    • 400错误:模型名称映射不匹配,或API端点格式错误(如缺少/v1
    • 403错误:API密钥错误或未设置,检查服务端启动参数与Dify配置
    • 503错误:模型服务未启动或端口未开放,确认服务状态与防火墙规则

四、验证与使用

  1. 配置完成后,在Dify“模型管理”中确认模型状态为“可用”
  2. 创建应用时,选择已添加的本地模型作为推理引擎
  3. 测试对话,检查响应是否正常,若出现延迟高可调整模型量化等级或硬件配置

说明

全文使用的qwen-7b-chat模型仅为示意使用,请根据自身需要使用的模型名称替换。

Dify中下载的插件

在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐