【原创】dify 如何集成 Ollama


在文章 MAC OS 本地部署开源大模型 和  MAC OS 本地搭建部署 dify 分别介绍了在mac os系统下通过ollma 部署和管理本地大模型,以及在本地搭建 dify,在 dify 中可以引用 ollma 的本地大模型,本文主要介绍如何引入。

一、dify 集成Ollama的作用

1. 本地化部署与隐私保护

  • 本地运行:通过集成 Ollama,Dify 可以在本地运行大型语言模型(LLM),无需依赖远程服务器。这不仅降低了对网络的依赖,还提高了数据处理的隐私性,特别适合对数据安全有较高要求的场景
  • 自定义模型:用户可以通过 Ollama 的 Modelfile 自定义模型参数和行为,进一步提升模型的灵活性和适应性

2. 
简化模型管理与部署

  • 模型管理:Ollama 提供了模型的下载、更新、删除等管理功能,简化了模型的部署流程。Dify 则通过直观的界面和工具,进一步降低了模型管理的复杂性
  • 快速部署:Dify 支持多种模型(如 Llama3、Mistral 等),能够无缝集成来自多家推理提供商和自托管解决方案的模型。通过集成 Ollama,用户可以快速部署和使用这些模型,加速从原型开发到生产的过程

二、具体操作

 1. dify 首页点击头像,点击设置,找到 ollama 服务商

 

 

2. 确保 Ollama 是运行状态

浏览器输入:http://localhost:11434/ ,如显示如下,则是运行状态

3. 添加 Ollma 模型

 

点击「保存」则可在模型供应商找到已添加好的ollma 本地模型。

 

 

注意:

️如果你使用docker部署Dify与Ollama,可能会遇到以下错误:

httpconnectionpool(host=127.0.0.1, 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'))

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'))

出现此错误的原因是无法从 docker 容器访问 Ollama 服务。localhost通常指的是容器本身,而不是主机或其他容器。要解决此问题,您需要将 Ollama 服务公开到网络。

4. dify 访问 ollma 报错 MAC 解决方案

在 dify 根目录下vim .env文件,如果没该文件则新建,如果有该文件则添加如下命令

OLLAMA_API_BASE=http://host.docker.internal:11434

记得重启 dify 服务,即可引入加载成功,如下所示