一、环境准备
🔍部署方案:Ollama + DeepSeek-R1 + Dify
📝我的电脑硬件配置如下:
系统: Windows 11
CPU: 13th i7-13700
内存: 64G
显卡:NNVIDIA GeForce GTX 1660 Ti 6G
需部署的大模型:deepseek-r1:8b
二、什么是Ollama
1️⃣
Ollama
是一个开源项目,旨在让用户能够轻松地在其本地计算机上运行大型语言模型(LLM)
,是一个开源的大型语言模型服务。它支持各种LLM
,包括Llama Mistral
和Gemma。
2️⃣ 提供了类似
OpenAI
的API
接口和聊天界面,可以非常方便地部署最新版本的AI
模型并通过接口使用。支持热加载模型文件,无需重新启动即可切换不同的模型。
三、安装Ollama
1、下载Ollama
1️⃣Ollama Ollama官网:
https://ollama.com
2️⃣GitHub仓库:https://github.com/ollama/ollama
📌支持
macOS
、Linux
、Windows
系统,根据自己的系统,下载安装包:Download for windows
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ<点击放大图片>
2、安装Ollama
1.打开Ollama软件安装包
💡
windows
系统下安装也比较方便,双击打开install
即可。安装完成没有提示,接下来我们打开一个终端。
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ<点击放大图片>
2.打开命令提示符(管理员模式)
1️⃣按
Win + R
,输入cmd
,然后按Ctrl + Shift + Enter
以管理员身份运行。2️⃣输入
ollama
或者ollama -v
,如果显示如下图就安装成功了。
ㅤㅤㅤ ㅤㅤ<点击放大图片>
3.Ollama 更改模型存储的位置
💡 Ollama以及模型默认是安装到C盘的
%userprofile%\.ollama
,更改配置后,就可以把模型下载到别的盘符里面去。💡 适用场景:只想把 模型文件 存储在
D:\ollama\models
,但其他数据仍保留在%userprofile%\.ollama\
。
1️⃣打开命令提示符(管理员模式)
📌 按
Win + R
,输入cmd
,然后按Ctrl + Shift + Enter
以管理员身份运行。
taskkill /F /IM ollama.exe
# 关闭 Ollama 进程
robocopy %userprofile%\.ollama\models D:\ollama\models /E /MOVE
# 移动模型models目录
mklink /D %userprofile%\.ollama\models D:\ollama\models
# 创建符号链接
dir %userprofile%\.ollama
# 验证
2️⃣验证
✅如果
models
目录变成 快捷方式(符号链接),说明成功。
ㅤㅤㅤ<点击放大图片>
四、下载 deepseek-r1 模型
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ<点击放大图片>
💡 说明一下,如果你的电脑内存和显存不大,比如8G内存,显卡显存也不大,就下载 1.5b 7b 8b 即可。配置还可以,比如显卡12G显存可以直接上14b。
💡 在DeepSeek-R1系列中:
1.5B
、7B
、8B
、14B
、32B
、70B
、671B
等不同参数规模的型号。这些不同规模的模型在模型能力、资源需求和应用场景上有所不同。
五、安装部署 deepseek-r1 模型
打开 PowerShell 或 CMD(管理员模式)
1️⃣按 Win + R
,输入 cmd
,然后按 Ctrl + Shift + Enter
以管理员身份运行。
🚨 下载的模型默认存储在
C:\Users\你的用户名\.ollama\models\
🚨 如果你之前迁移了目录,那么模型会存储在D:\ollama\models\
或其他你设定的路径。
2️⃣在终端里面输入命令:ollama run deepseek-r1:8b
,大家复制自己的即可!
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ<点击放大图片>
3️⃣进度100%
后,可以看看模型是否下载到正确的盘符!
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ<点击放大图片>
六、命令窗口 测试下 deepseek-r1 模型
ㅤㅤㅤㅤㅤㅤ<点击放大图片>
✅ 目测,效果还行,速度不慢,推理能力确实很强!
Ollama常用命令(可忽略)
1️⃣模型管理
1. 创建模型
- 命令:`ollama create [Modelfile路径]`
- 功能:使用包含模型信息的Modelfile来创建一个新模型。
2. 显示模型信息
- 命令1:`ollama show [模型名称]`
- 功能:显示特定模型的详细信息,如模型名称、版本等。
- 命令2:`/show`(在会话界面中使用)
3. 列出所有模型
- 命令1:`ollama list`
- 命令2:`ollama ls`
- 功能:列出本地所有可用的模型,可以在这里查找模型名称。
4. 从注册表中拉取模型
- 命令:`ollama pull [模型名称]`
- 功能:从模型注册表中拉取一个模型到本地使用。
5. 将模型推送到注册表
- 命令:`ollama push [模型名称]`
- 功能:将本地模型推送到模型注册表中,以便他人或其他系统使用。
6. 复制模型
- 命令:`ollama cp [原模型名称] [新模型名称]`
- 功能:复制一个模型到另一个位置或给定名称的地方。
7. 删除模型
- 命令:`ollama rm [模型名称]`
- 功能:删除一个已安装的模型。
2️⃣模型运行与会话管理
1. 运行模型
- 命令:`ollama run [模型名称]`
- 功能:运行一个已安装的模型,执行某些任务。可以根据需要指定模型的参数和配置。
2. 加载模型
- 命令:`/load <model>`
- 功能:在会话界面中加载一个特定的模型或会话。可以指定一个模型的名称或路径来加载它。
3. 保存模型或会话状态
- 命令:`/save <model>`
- 功能:在会话界面中保存当前的会话状态或模型。可以将当前会话或模型的配置保存为一个文件,以便以后使用。
4. 清理上下文
- 命令:`/clear`
- 功能:清除会话上下文。这将删除当前会话中的所有历史记录或对话内容。
5. 退出对话模型
- 命令:`/bye`
- 功能:退出当前与模型的对话,并退出程序。
3️⃣其他命令
1. 获取帮助信息
- 命令1:`ollama help [命令名称]`
- 命令2:`ollama --help`
- 功能:获取有关Ollama任何命令的帮助信息。如果指定了命令名称,则显示该命令的详细帮助信息。
2. 查看版本信息
- 命令1:`ollama version`
- 命令2:`ollama -v`
- 命令3:`ollama --version`
- 功能:显示当前Ollama工具的版本信息。
3. 查看快捷键
- 命令:`/?shortcuts`
- 功能:在会话界面中查看键盘快捷键的帮助信息,帮助更快速地进行操作。
4. 设置会话参数和配置
- 命令:`/set 参数名 参数值`
- 功能:用于设置会话参数和配置,例如设置消息格式、启用或禁用历史记录等。
七、让 Ollama 监听所有 IP,实现API可被其他设备调用(可选)
💡Ollama 的 API 默认只监听
127.0.0.1:11434
,需要改为监听 局域网 IP 或 所有 IP (0.0.0.0
)
💡 让局域网其他设备访问Ollama API
如果只机访问,没必要开
1、启动 Ollama 监听局域网
1️⃣**使用 OLLAMA_HOST
变量,让 Ollama
监听 所有 IP**
:在PowerShell
终端输入:
$env:OLLAMA_HOST = "0.0.0.0"
ollama serve
🚨
"0.0.0.0"
让Ollama
监听所有网络接口,这样局域网的其他设备可以访问它。
🚨 需要知道本机的局域网 IP(可以运行ipconfig
查看)。
ㅤㅤㅤㅤㅤㅤ<点击放大图片>
2️⃣ 确保防火墙允许外部访问
🚨
Ollama
使用11434
端口,需要打开Windows
防火墙让局域网设备访问它:
📌运行 PowerShell
(管理员权限),开放端口: 这会允许局域网设备通过 TCP 端口 11434 访问 Ollama API
New-NetFirewallRule -DisplayName "Ollama API" -Direction Inbound -Protocol TCP -LocalPort 11434 -Action Allow
📝手动设置(如果不想用命令行)
- 打开 “Windows Defender 防火墙”
- 进入 “高级设置” → “入站规则”
- 新建规则
- 类型:
端口
- 端口号:
11434
- 允许连接
- 适用范围:
专用
(Public 选项可禁用,以防外网访问)
2、在局域网其他机器上测试
💡在局域网其他机器上,可以直接调用
Ollama API
。
1.使用 PowerShell 或 curl
curl http://10.11.1.111:11434/api/tags
ㅤㅤㅤㅤㅤㅤ<点击放大图片>
✅ 如果返回
Ollama
版本信息,说明配置成功。
2.让 Python 代码访问 Ollama
import requests
response = requests.post("http://10.11.1.111:11434/api/generate", json={
"model": "deepseek-r1:8b",
"prompt": "你好!你是谁?",
"stream": False
})
print(response.json())
ㅤㅤㅤㅤㅤㅤ<点击放大图片>
💡 记得把
10.11.1.111
替换成Ollama
运行的机器的局域网 IP!
🚨Ollama
必须保持运行状态,否则API
访问不到!
3、如果外部访问想隐藏端口:(可选)
🚨 如果你想让
外部机器也能访问
,或者想更好地管理API
访问,可以用Nginx
代理Ollama API
:
1.安装 Nginx
1️⃣运行 PowerShell
(管理员权限):下载安装nginx
winget install nginx --force
# 使用 winget 命令强制安装 nginx
# force 参数会强制重新安装 nginx,即使之前已经安装过 nginx,也会覆盖现有的安装
2️⃣解压 nginx.zip
到 C:\Program Files
$version = (winget show nginx | Select-String -Pattern "Version\s*:\s*(\S+)" | ForEach-Object { $_.Matches.Groups[1].Value });
# 获取已安装的 nginx 版本
$nginxPath = "C:\Program Files\nginx.$version";
# 设置 nginx 安装路径,路径包含版本号
Expand-Archive -Path "$env:USERPROFILE\AppData\Local\Temp\WinGet\nginxinc.nginx.$version\nginx-$version.zip" -DestinationPath "$nginxPath-tmp" -Force;
# 解压从 winget 下载的 nginx 安装包到临时文件夹
Move-Item "$nginxPath-tmp\*" $nginxPath -Force;
# 将解压后的文件移到目标路径
Remove-Item "$nginxPath-tmp", "$env:USERPROFILE\AppData\Local\Temp\WinGet\nginxinc.nginx.$version\nginx-$version.zip" -Recurse -Force;
# 删除临时文件夹和解压后的 zip 安装包
ㅤㅤㅤㅤㅤㅤ<点击放大图片>
2.修改 nginx.conf
,设置Nginx的反向代理。
💡 运行下面命令打开配置文件:获取
"C:\Program Files"
目录下所有以"nginx"
开头的文件夹,并打开配置文件
notepad ((Get-ChildItem "C:\Program Files" -Directory | Where-Object { $_.Name -like "nginx.*" } | Sort-Object Name | Select-Object -Last 1).FullName + "\conf\nginx.conf")
# 获取该文件夹的完整路径,并拼接出 nginx.conf 配置文件的完整路径,按名称排序,选择最新安装的版本(最新版本的文件夹名通常在最后)
🔧添加或修改下面代码:
server {
listen 1111; # 监听 1111 端口
server_name _; # 服务器名称,_ 表示通配符,匹配所有请求
location / { # 对所有的请求进行匹配
proxy_pass http://127.0.0.1:11434; # 将请求转发到本地的 11434 端口
proxy_set_header Host $host; # 将客户端的 Host 头部传递给后端服务器
proxy_set_header X-Real-IP $remote_addr; # 将客户端的真实 IP 传递给后端服务器
}
}
ㅤㅤㅤㅤㅤㅤ<点击放大图片>
3.启动 Nginx
$nginxPath = Get-ChildItem "C:\Program Files" -Directory | Where-Object { $_.Name -like "nginx.*" } | Sort-Object Name | Select-Object -Last 1
# 获取最新安装的 nginx 版本路径
Start-Process "$($nginxPath.FullName)\nginx.exe" -WorkingDirectory $nginxPath.FullName
# 启动 nginx.exe,并设置工作目录为 nginx 安装路径
ㅤㅤㅤㅤㅤㅤ<点击放大图片>
💡现在,局域网设备可以访问这台设备的
AI
了:也可以在其他电脑上再做一个反向代理,彻底把真正的IP
和端口
隐藏掉。
4.在局域网其他机器上测试(使用 PowerShell 或 curl)
curl http://10.11.1.111:1111/api/tags
ㅤㅤㅤㅤㅤㅤ<点击放大图片>
💡 如果返回
Ollama
版本信息,说明配置成功。这比直接暴露Ollama
端口更安全
。
八、安装Dify
实现知识库和局域网访问
🚨 安装
dify
前需要先安装docker
,dify
只在docker
才可以运行
1、安装Docker
1.首先要下载一个docker
桌面客户端。
💡 Docker官网:
https://www.docker.com
ㅤㅤㅤㅤㅤㅤ<点击放大图片>
2.安装 Docker Desktop
1️⃣下载完成后,双击
.exe
安装文件开始安装。
2️⃣在安装过程中,安装程序会提示安装必要的依赖(如WindowsSubsystem for Linux 2
,简称WSL 2
)。如果还没有安装WSL 2
,安装程序会提供链接,记得要打钩(√
)。
3️⃣安装完成后点击Close and restart
重启系统。
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ<点击放大图片>
3.启用 WSL 2
和虚拟化
🚨重启后会提示 是否要安装
wsl2
和虚拟化
提示。按任意键自动安装
,安装完毕后按任意键退出。
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ<点击放大图片>
4. 配置 Docker Desktop
🚨 启动
Docker Desktop
后,首次运行时,Docker
可能要求你登录Docker Hub
账号。如果没有账号,可以跳过。
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ<点击放大图片>
5. 验证安装
🚨 安装完成后,打开一个新的
PowerShell
窗口,输入以下命令来验证Docker
是否正确安装:如果显示Docker
版本信息,说明安装成功。
docker --version
ㅤㅤㅤㅤㅤㅤ<点击放大图片>
2、安装dify
💡Dify项目Github地址:
https://github.com/langgenius/dify
1、点击Download ZIP
下载压缩包,我这里直接下载到了桌面了。
ㅤㅤㅤㅤㅤㅤㅤㅤㅤ<点击放大图片>
2、把压缩包解压到指定的目录下,并改名为dify
💡 这里我使用
powershell
命令操作,把压缩包从我的桌面,解压到C盘Program Files
目录下,并自动改名,自动删除源zip压缩包。
Expand-Archive -Path "$([Environment]::GetFolderPath('Desktop'))\dify-main.zip" -DestinationPath "C:\Program Files"; Rename-Item -Path "C:\Program Files\dify-main" -NewName "dify"; Remove-Item "$([Environment]::GetFolderPath('Desktop'))\dify-main.zip"
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ<点击放大图片>
3、修改.env.example
文件名字
🚨进入
dify
这个目录下面,我们找到Docker这个目录,可以看到这个目录下有个.env.example
文件,把这个文件重名为.env
ㅤㅤㅤㅤㅤㅤ<点击放大图片>
💡 手动或者使用
powrshell
命令操作均可,下面这行是命令行的方式修改;当然也可以cp .env.example .env
复制一个
Rename-Item -Path "C:\Program Files\dify\docker\.env.example" -NewName ".env"
ㅤㅤㅤㅤㅤㅤ<点击放大图片>
4、编辑.env
文件
🚨编辑这个文件,可以
手动
,也可以通过命令
给这个配置文件的最下面添加两行命令。
1️⃣手动
notepad "C:\Program Files\dify\docker\.env"
CUSTOM_MODEL_ENABLED=true
# 启用自定义模型
OLLAMA_APO_BASE_URL=host.docker.internal:11434
# 指定 Olama 的 API 地址(根据部署环境调整IP)
2️⃣当然也可以完全使用powershell
终端通过命令 一键操作。
Add-Content -Path "C:\Program Files\dify\docker\.env" -Value "`r`nCUSTOM_MODEL_ENABLED=true`r`nOLLAMA_APO_BASE_URL=host.docker.internal:11434"
# 将配置项追加到 .env 文件的末尾
ㅤㅤㅤㅤㅤㅤ<点击放大图片>
🚨 注:这里我的文件是
C:\Program Files\dify\
路径。请根据自己的路径进行命令调整路径
5、运行项目Dify
1️⃣ 在
powershell
终端下面 进入dify
下面的docker
目录。
2️⃣然后执行下面命令
。来运行项目所需要的所有依赖。(如果网络不好可能会更新失败,建议更换国内源)
cd "C:\Program Files\dify\docker"
docker compose up -d
ㅤㅤㅤㅤㅤㅤ<点击放大图片>
✅项目所有需要的依赖环境都安装完毕了。并已经运行。
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ<点击放大图片>
3、访问Dify
1.设置管理员账户-进入登录界面-登录后界面
💡浏览器打开网页访问
http://127.0.0.1
,设置邮箱
、用户名
、密码
。这些都是可以随意设置
的。
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ<点击放大图片>
2.关联DeepSeek
模型
1️⃣ 在
dify
里面关联一下刚刚下载的大模型2️⃣点击账户下面的设置。选择模型供应商。点击
ollama
(添加模型),关联我们的大模型。
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ<点击放大图片>
1️⃣名称:就是前面安装的那个名称:
deepseek-r1:8b
、
2️⃣基础URL:就是刚刚在dify下文件夹的docker下面的.env
文件里面配置的:http://host.docker.internal:11434
这个地址。
3️⃣其他的保持默认即可。然后点击保存。
ㅤㅤㅤㅤㅤㅤ<点击放大图片>
💡
刷新下页面
。可以看到系统模型设置这里已经有模型了。保证这个模型是勾选的状态。
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ<点击放大图片>
3.聊天助手
1️⃣创建一个聊天助手,在主页面。
点击
-创建空白应用
。
2️⃣给应用起个名字。比如Hadesr助手
,然后点击创建。
3️⃣在右上角
已经可以看到刚刚接入的本地大模型,。
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ<点击放大图片>
💡测试下,能回答问题。说明这里已经接入成功了。
4、知识库:
1.创建知识库
1️⃣点击-
知识库
,创建一个知识库。
2️⃣创建知识库,需要上传
我们私有的文本资料
。
3️⃣选择一个文件。然后上传,点击下一步。
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ<点击放大图片>
2.查看知识库信息
💡
索引方式
这里,这里他是需要调用嵌入模型
(Embedding模型
)。 所以高质量(推荐)
他是灰色
的。
ㅤㅤㅤㅤㅤㅤ<点击放大图片>
3.安装嵌入模型
1️⃣需要安装一下
embedding
模型,在ollama
官网。搜索bge-m3
模型。
2️⃣把这个模型拉到本地,复制ollama pull bge-m3
命令到终端。
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ<点击放大图片>
3.添加嵌入模型
1️⃣本地部署完毕后,我们需要在刚刚的设置里面,把这个嵌入模型添加进去。
2️⃣点击-添加模型
ㅤㅤㅤㅤㅤㅤㅤㅤㅤ<点击放大图片>
1️⃣模型类型,需要选择
TextEmbedding
,模型名称选择刚刚下载的bge-m3
这个名称。
2️⃣地址和deepseek-r1:8b
模型是一样的:http://host.docker.internal:11434
。其他的保持默认。然后点击保存。
3️⃣可以看到这里已经有两个大模型了
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ<点击放大图片>
4.设置知识库信息(高质量、Embedding模型)
1️⃣刷新一下页面。
2️⃣索引方式这里的高质量已经是可以选择的了。下面的嵌入模型已经自动选择
了。就是刚刚下载的模型。其他的保持默认即可,点击保存并处理。
3️⃣它会有一个嵌入的过程。
ㅤㅤㅤㅤㅤㅤㅤㅤㅤ<点击放大图片>
5.聊天助手关联知识库
1️⃣
嵌入完成后
,知识库就已经创建了,接下来就是关联知识库
。回到刚刚创建的Hadesr助手
。在上下文
这里点击添加
。
2️⃣选择刚刚创建的知识库
,点击添加
。然后我们问下问题。就会显示引用的文档。
3️⃣可以在日志
里面看引用的内容
。这里应用已经是基本符合我们预期了。
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ<点击放大图片>
6.发布应用
1️⃣
点击
右上角的发布
-更新
。保存
当前配置。
2️⃣点击运行
可以在单独的网页中打开,把127.0.0.1
改成本机IP
,别人电脑就能访问这个应用了。
3️⃣可以嵌入网站。比如:让他在右下角图标,当一个智能客服。
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ<点击放大图片>