一、环境准备
1. 安装 Ollama 框架
- 下载与安装 访问 Ollama 官网,选择 Windows 版本下载并安装。安装完成后,以管理员身份打开 PowerShell,执行
ollama --version
验证安装成功。 - 配置模型存储路径 默认模型存储在 C 盘,可通过设置环境变量
OLLAMA_MODELS
修改路径(如D:\ollama_models
)。需重启 Ollama 服务生效。
2. 部署 DeepSeek 模型
- 选择模型版本 根据显存选择合适版本(如 7B 需 8GB 显存,14B 需 16GB)。注意:现在Ollama上的Q4量化版本,14B显存只需10GB左右即可,亲测。执行命令: ollama run deepseek-r1:14b # 或 deepseek-r1:7b等待模型下载完成(等就行了,多长时间无法估计)。
- 验证模型运行 输入测试问题(如“你好”),观察是否正常返回响应。
3.部署nomic-embed-text模型
- 执行命令: ollama run nomic-embed-text等待模型下载完成(这个模型很小,一会就下完了)。
4. 安装 Docker Desktop
- 下载 Docker Desktop for Windows,安装时勾选 Use WSL 2。注意:最新版(4.38)无需设置,直接一路next即可。
- 启动 Docker Desktop,右下角托盘显示 “Docker Desktop is running” 表示成功。
- 如果需要汉化,DockerDesktop-CN 下载你所需要的版本,按照描述的使用方法替换文件即可。
- 如果需要把镜像源切换成国内源,使用
erverthing
搜索daemon.json
。或者你可以试试C:\Users\{你的用户名}\.docker
,安装方式不同可能导致路径不同,但是搜索肯定没问题。添加"registry-mirrors"
部分即可。{
“builder”: {
“gc”: {
“defaultKeepStorage”: “20GB”,
“enabled”: true
}
},
“experimental”: false,
“registry-mirrors”: [
“https://registry.docker-cn.com”,
“https://docker.mirrors.ustc.edu.cn”,
“https://hub-mirror.c.163.com”,
“https://mirror.ccs.tencentyun.com”
]
}
二、部署 Dify 平台
1. 拉取 Dify 代码并配置
git clone https://github.com/langgenius/dify.git
cd dify/docker
- 注意:一定要进入到dify的docker文件夹下再进行下一步操作。
- 非必须 修改
docker-compose.yml
调整以下参数以适应本地模型性能: environment:
– MAX_WORKER=4 # 增加工作线程数
– WORKFLOW_DEFAULT_TIMEOUT=600 # 延长超时时间(秒)
2. 启动 Dify 服务
docker compose up -d
- 注意 踩过的坑Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:5432 -> 127.0.0.1:0: listen tcp 0.0.0.0:5432: bind: An attempt was made to access a socket in a way forbidden by its access permissions上述错误有以下可能:
- 确实你的端口被占用,按照网上随便一个教程解除占用即可;
- 你的端口检测未被占用,这个时候使用
netsh interface ipv4 show excludedportrange protocol=tcp
命令去检测是不是因为5432
端口被Hyper-V
保留了。如果是被Hyper-V
保留,那么有两种方式。- 使用下面命令排除此端口并且重启电脑netsh int ipv4 add excludedportrange protocol=tcp startport=5432 numberofports=1 store=persistent提示:关键在于
store=persistent
参数表示持久化信息 上面的命令可以通过修改numberofports
参数保留startport
开始的多个端口 - 使用下面命令修改TCP动态端口范围并且重启电脑netsh int ipv4 set dynamicport tcp start=51555 num=13980
- 使用下面命令排除此端口并且重启电脑netsh int ipv4 add excludedportrange protocol=tcp startport=5432 numberofports=1 store=persistent提示:关键在于
- 访问
http://localhost
完成初始化配置(设置管理员账号)。
三、Dify 集成 DeepSeek 模型
1. 添加 Ollama 模型供应商
- 登录 Dify → 右上角头像 → 设置 → 模型供应商 → 选择 Ollama → 安装。注意:国内安装可能比较慢,耐心等待即可。最好不要给docker配置代理,会有奇怪的BUG产生。
- 配置参数:
- 模型名称:
deepseek-r1:14b
(与 Ollama 部署的模型名称一致) - 基础 URL:
http://host.docker.internal:11434
(若 Dify 与 Ollama 同机部署)。
- 模型名称:
2. 验证模型连接
- 在 模型供应商 页面点击 测试连接,显示 “连接成功” 表示配置正确。
四、创建智能应用
1. 新建聊天助手
- 进入 工作室 → 创建空白应用 → 选择 聊天助手,填写名称与描述。
- 选择模型:在应用配置页面的 模型 选项中,选择已添加的
deepseek-r1:7b
。
2. 配置知识库(可选)
- 上传企业文档(PDF/TXT/Markdown)至 知识库 → 选择 高质量索引模式。
- 嵌入模型配置:推荐使用本地部署的
nomic-embed-text
。
3. 设计工作流(高级功能)
- 示例工作流:
- 用户输入解析 → 2. 知识库检索 → 3. 模型生成回答。
- 通过 DSL 编辑器 自定义条件分支(如判断是否需要联网搜索)。
五、测试与优化
1. 基础测试
- 在应用界面输入问题(如“解释 RAG 技术”),观察模型是否调用本地 DeepSeek 返回结果。
2. 性能优化
- 调整生成参数:在模型配置中设置
temperature=0.7
(控制随机性)、max_tokens=2048
(限制生成长度)。 - 启用量化:若显存不足,使用 4 位量化模型(需重新下载
deepseek-r1:7b-q4
)。
3. 错误排查
- Docker 连接问题:确保 Docker Desktop 已启动,执行
docker ps
检查容器状态。 - 模型无响应:在 PowerShell 执行
ollama list
确认模型已加载,重启 Ollama 服务。
六、扩展功能
1. 集成 WebUI 界面
- 安装 Chatbox,配置 Ollama API 地址(
http://localhost:11434
),实现可视化交互。
2. 局域网共享
- 修改 Dify 的
docker-compose.yml
,绑定 IP 至0.0.0.0
,允许局域网设备通过http://[本机IP]:80
访问。
关键问题解决方案
问题现象 | 解决方法 |
---|---|
Docker 端口冲突 | 修改 docker-compose.yml 中的端口映射(如 80:80 → 8080:80 ) |
模型加载超时 | 增大 WORKFLOW_DEFAULT_TIMEOUT 值,或升级硬件配置 |
知识库检索效果差 | 更换嵌入模型(如 mxbai-embed-large )或调整混合检索权重 |
示例:API 调用代码
import requests
# 调用 Dify 应用接口
response = requests.post(
"http://localhost/api/v1/chat-messages",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"inputs": {},
"query": "如何优化本地模型性能?",
"response_mode": "blocking",
"user": "user-123"
}
)
print(response.json()["answer"])
通过以上步骤,可在 Windows 10 环境下完成 DeepSeek 的本地化部署,适用于企业知识库、智能客服等场景。