当前位置: 首页 > news >正文

部署本地deepseek并在调用的详细步骤以及解决一些可能出现的问题(Windows,Linux, WSL)

打开Ollama官网:https://ollama.com/

直接下载Ollama并且安装好Ollama、这时候就能看到app里多了个ollama,但是我们不用打开它

在这里插入图片描述
打开Windows Powershell:
ollama run deepseek-r1:1.5b 7b 8b 14b 32b 70b
根据自己的电脑配置和需求更换不同的模型,我安装的32b的模型
然后windows PowerShell 就开始下载了,下载完就是显示Success就表示成功了。接下来就是本地使用deepseek了,想要退出,输入/bye就可以了。
下载成功后,不管什么时候,在windows PowerShell上输入

ollama list

就能够看到你部署在本地的deepseek模型
在这里插入图片描述
复制一下它的名字,我这里是deepseek-r1:32b ,那我就运行

ollama run deepseek-r1:32b

就可以开始使用deepseek了,这一步呢windows和liunx都一样,WSL因为是windows下的linux子系统,所以其实是先部署在Windows上。

那我这里想要使用deepseek来做一些特定的事,比如我使用它固定输出一些东西,用来做一些实验,那在windows系统上,我在windows powershell上部署模型,但是我在conda环境里来做实验,就需要调用本地deepseek模型的api。

首先在Windows Powershell输入

curl http://localhost:11434/api/tags   

这是用来检测API是否可用。

如果返回了StatusCode为 200,并且content里用deepseek模型的名字,则证明deepseek是可用的。
这个时候我们在conda环境下创建代码,conda我使用终端anaconda prompt控制,但是用别的也一样。主要就是写一个控制deepseek输出的代码,加PROMPT来控制就行。
在这里插入图片描述
要它做的事每个人都不一样,但是在前面都要加个

OLLAMA_API_URL = "http://localhost:11434/api/generate"

这样就是调用之前本地部署的deepseek来解决。

然后运行这个代码,如果返回你需要的结果,那就证明api调用成功并且你想要它做的事也达到了。比如我这里要他返回一个行动,那我在anaconda Prompt运行这个代码,确实也返回成功了。
在这里插入图片描述
这里在windows上部署并且成功调用api来做实验就算是可以的,实验内容也就是那个代码的内容大家都不一样,但是总体来说这个流程是通了.

但是有些实验它不能在windows系统上做啊,只能Linux,就比如我之前做过一个alfworld实验,在windows上死活运行不了,但是在Linux上就能运行。

这个时候在Linux上部署deepseek再调用就行了,应该也是比较简单的,基本也就是上面差不多的流程。

但是比如我现在是windows部署deepseek了,我在windows的linux子系统WSL上运行alfworld,那我想调用deepseek来帮助alfworld项目怎么办呢。这个时候就需要在wsl上来调用本地deepseek api了。

Deepseek API 默认运行在http://localhost:11434

但是在 WSL 里访问 localhost 默认指向 WSL 自己,而不是 Windows。你需要改成 Windows 的 IP 地址
在WSL的Linux环境里运行

 cat /etc/resolv.conf | grep nameserver

这时候会返回一个ip地址,这个地址就是windows的ip地址

然后再在WSL中输入

curl http://更换为你的ip地址:11434/api/tags

这时候如果返回有deepseek模型例如这样
在这里插入图片描述
那就说明在WSL中的linux系统中调用Deepseek api成功

但是返回没有deepseek模型名称,WSL 里 curl 访问 Deepseek 失败,可能是 Windows 防火墙阻止了 WSL 访问
那就要打开Windows Powershell管理员模式来使 Windows 防火墙允许 WSL 访问 11434 端口
注意是以管理员身份运行,找到Windows Powershell右键选择以管理员身份运行就行。
在Windows Powershell管理员身份运行。

New-NetFirewallRule -DisplayName "Allow WSL to access Ollama" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 11434

这时候就添加了一个防火墙规则,确保WSL能够运行API
这时候运行

Get-NetFirewallRule -DisplayName "Allow WSL to access Ollama

如果看到返回的信息里有规则,那就可以了

这个时候再在WSL中运行

curl [http://更换为你的ip地址:1143](http://172.28.80.1:1143/)4/api/ta

如果向上面说的一样就成功了,如果还是没有成功,WSL 仍然无法连接 Windows 上的 Deepseek API,有可能Windows 可能只监听 本地请求(127.0.0.1),但不接受 外部(WSL)请求

在 Windows PowerShell(管理员模式)运行

netstat -ano | findstr :11434

因为WSL 访问 Windows 需要监听 0.0.0.0172.28.80.1 才行。所以需要有

TCP    0.0.0.0:11434    0.0.0.0:0    LISTENING    20260

这样的返回才可以。

如果返回里没有,在Windows PowerShell(管理员模式)运行

netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=11434 connectaddress=127.0.0.1 connectport=11434

这时候再运行

netstat -ano | findstr :11434

就能够看到有了
在这里插入图片描述
这时再去WSL运行

curl http://172.28.80.1:11434/api/tags

如果像之前说的返回模型名称信息,就说明可以WSL 现在可以访问 Windows 上的 Deepseek API 了,也就可以继续在WSL上继续下一步实验了。

总的来说,在Windows上或者Linux上部署类似deepseek或者是llama这种开源大语言模型还是比较简单的,但是在Windows的Linux子系统WSL上部署的话呢就有时候会多少出现点情况,这些情况大多数时候就是端口出现问题了,或者是权限问题,如果遇到问题可以往那边去考虑。

相关文章:

  • 【数据可视化-30】Netflix电影和电视节目数据集可视化分析
  • 【记录手贱bug日常】IDEA 配置vmoptions后打不开,重新安装,删注册表均无用
  • ESP32_IDF_VScode安装多版本共存
  • 解决VSCode每次SSH连接服务器时,都需要下载vscode-server
  • HTML5 详细学习笔记
  • 【AI】基于OllamaSharp与.NET Core API的高效LLM查询实现
  • Wan2.1和HunyuanVideo文生视频模型算法解析与功能体验丨前沿多模态模型开发与应用实战第六期
  • 针对 Spring Boot 应用中常见的查询场景 (例如:分页查询、关联查询、聚合查询) 如何进行 SQL 优化?
  • [论文阅读]REPLUG: Retrieval-Augmented Black-Box Language Models
  • centos离线安装ssh
  • 补4月22日23日
  • Pytorch中的Dataset和DataLoader
  • 倚光科技:微透镜阵列低成本加工新范式
  • 2025最新版扣子(Coze)AI智能体应用指南
  • .NETCore部署流程
  • 【前端】CSS 基础
  • 系统与网络安全------弹性交换网络(3)
  • 架构-项目管理
  • 【Luogu】动态规划三
  • YOLOv12的注意力机制革新与实时检测性能分析——基于架构优化与历史版本对比
  • 大家聊中国式现代化|邓智团:践行人民城市理念,开创人民城市建设新局面
  • 朱守科任西藏自治区政府副主席、公安厅厅长
  • 国家市场监管总局:民生无小事,严打民生领域侵权假冒违法行为
  • 审议民营经济促进法草案等,十四届全国人大常委会第十五次会议将举行
  • 《不眠之夜》上演8年推出特别版,多业态联动形成戏剧经济带
  • 牛市早报|商务部:目前中美之间未进行任何经贸谈判