type
Post
status
Published
date
Aug 31, 2025
slug
summary
tags
人工智能
category
技术分享
icon
password
在本地中使用OLLAMA_HOST=127.0.0.1:8891 ollama run deepseek-r1:7b,可以正常访问本地部署的ollama;但是如果使用ollama run deepseek-r1:7b就不行。
Ollama服务的监听地址和端口 Dify中配置的连接地址不匹配。
简单来说,当不加任何参数运行 ollama run 时,Ollama的API服务默认启动在 127.0.0.1:11434。而当你设置 OLLAMA_HOST=127.0.0.1:8891 时,API服务则启动在你指定的 127.0.0.1:8891 上。
你的Dify在创建Agent时,很可能是配置了连接 http://127.0.0.1:8891。因此,只有当你以指定端口的方式启动Ollama时,Dify才能找到它。

🔍 问题详细分析与解决步骤

你可以通过以下步骤来验证和彻底解决这个问题:
第一步:确认Dify中的连接配置
登录Dify管理后台,进入 “设置” -> “模型供应商” -> “Ollama”,查看你配置的 “基础URL” 是什么。这个地址必须和Ollama服务实际监听的地址完全一致。
  • 如果你的配置是 http://localhost:8891 或 http://127.0.0.1:8891,那么你必须通过设置 OLLAMA_HOST 变量来启动Ollama。
  • 如果你想使用默认的11434端口,则需要将这里的配置改为 http://localhost:11434
第二步:检查默认端口(11434)是否被占用
有时默认端口已被其他程序占用,导致Ollama启动失败。你可以在终端执行以下命令检查:
bash
如果11434端口已被占用,你需要停止占用该端口的程序,或者像你之前那样,为Ollama指定另一个端口。
第三步:选择并固定一种启动方式
为保证服务稳定,建议你选择一种方式并固定下来。
  • 方案A:使用自定义端口(8891)【推荐,避免端口冲突】
      1. 配置Ollama环境变量(一劳永逸的方法)
        1. 对于Linux/macOS,可以将 export OLLAMA_HOST=127.0.0.1:8891 添加到 ~/.bashrc 或 ~/.zshrc 文件中,然后执行 source ~/.bashrc
          对于Windows,可以在“系统属性”->“环境变量”中新建一个用户变量。
      1. 此后,每次只需运行 ollama run deepseek-r1:7b,它都会自动监听8891端口。
      1. 确保Dify中的配置地址也是 http://127.0.0.1:8891
  • 方案B:使用默认端口(11434)
      1. 确保没有设置 OLLAMA_HOST 环境变量。
      1. 直接运行 ollama run deepseek-r1:7b
      1. 将Dify中的配置地址改为 http://127.0.0.1:11434
第四步:重启服务并测试
修改任何配置后,都需要重启Ollama服务(关闭当前进程,按新方式重新运行),并在Dify中重新测试连接
Dify认识与私有化部署MessagesPlaceholder
Loading...