大模型:大模型部署Ollama和Dify
以下是部署Ollama与Dify并实现本地大模型集成的详细指南:
一、Ollama部署与配置
1. 安装Ollama
- 一键安装:
执行命令curl -fsSL https://ollama.com/install.sh | sh
完成安装。若遇证书问题,需设置环境变量CURL_CA_BUNDLE
指向正确的证书路径。 - 手动安装:
下载二进制文件至/usr/bin/ollama
,并配置systemd服务以自启动。 - 离线安装:
根据CPU型号(x86_64或arm64)下载对应版本,手动放置到目标路径并配置服务。
2. 模型管理
- 下载模型:
使用ollama pull <模型名>
(如llama3
、qwen2
)下载预训练模型。 - 运行模型:
执行ollama run <模型名>
启动模型服务,默认监听端口为11434。
3. 环境变量与路径配置
- 修改存储路径:
通过设置OLLAMA_MODELS
环境变量指定模型存储目录(如Linux默认路径为/usr/share/ollama/.ollama/models
)。 - 网络暴露:
设置OLLAMA_HOST=0.0.0.0
使服务监听所有网络接口,解决Docker容器间通信问题。
二、Dify部署与集成Ollama
1. Dify本地部署
- Docker部署:
克隆仓库后,进入dify/docker
目录,复制.env.example
为.env
,执行docker compose up -d
启动服务。访问http://localhost:80
完成初始化设置。 - Windows注意事项:
需调整PostgreSQL的存储路径权限,避免容器启动失败。
2. 集成Ollama模型
- 添加模型供应商:
在Dify的 设置 > 模型供应商 > Ollama 中填写以下信息:- 模型名称:与Ollama返回的模型名一致(通过
ollama list
查看)。 - 基础URL:根据部署方式选择:
- Docker部署:使用宿主机IP(如
http://192.168.1.100:11434
)或http://host.docker.internal:11434
。 - 本地部署:
http://localhost:11434
。
- Docker部署:使用宿主机IP(如
- 模型类型:对话或Embedding(需选择兼容的模型如
nomic-embed-text
)。 - 上下文长度与最大Token:默认4096,与模型参数一致。
- 模型名称:与Ollama返回的模型名一致(通过
三、常见问题与解决方案
1. Dify无法连接Ollama
- 错误提示:
Connection refused
或Max retries exceeded
原因:Docker容器无法访问Ollama服务。
解决方案:- 修改Ollama的监听地址为
0.0.0.0
。 - 在Dify的基础URL中使用
host.docker.internal
替代localhost
。
- 修改Ollama的监听地址为
2. 模型配置保存失败
- 权限问题:
检查Dify的存储目录(如/opt/dify
)是否具有写入权限,执行chmod -R 755 <目录>
修复。 - 网络问题:
使用curl http://localhost:11434
验证Ollama服务是否可达。
3. 多模态模型支持
- Vision配置:
若使用支持图片理解的模型(如llava
),需勾选 是否支持Vision 选项。
四、高级功能扩展
1. 公网远程访问
- 内网穿透工具:
使用Cpolar生成随机域名或固定二级子域名,映射Dify的80端口实现公网访问。
2. GPU优化
- 指定GPU运行:
通过设置CUDA_VISIBLE_DEVICES=0
环境变量,限制Ollama使用特定GPU。
3. 模型性能调优
- 环境变量:
调整OLLAMA_KEEP_ALIVE
(控制模型内存驻留时间)和OLLAMA_NUM_PARALLEL
(并发请求数)提升效率。
五、参考文档
- Ollama官方部署指南
- Dify GitHub仓库
- Dify集成Ollama报错解决方案
通过以上步骤,可快速实现本地大模型的部署与应用开发。若需进一步优化或解决特定问题,建议查阅相关文档或社区讨论。