AI学习-1-Ollama+OpenUI+NeutrinoProxy本地搭建Deepseek-R1

本章分享个人怎么在本地部署大模型,并让它可以被公网访问

需要:个人电脑,具有公网IP的服务器

具体分为三个步骤:

  1. 使用Ollama实现本地部署Deepseek-R1模型
  2. 部署Open-WebUI
  3. 使用neutrino-proxy实现内网穿透

Ollama本地部署大模型

首先说说解释为什么我要用个人电脑本地部署,而不是在服务器,因为没那么多钱买这么好配置的服务器,我的服务器2c2g,部署不了大模型。

1、下载

Download Ollama on Windows

去Ollama官网下载一个Ollama,然后安装

2、运行Ollama

Ollama的目录如下:

我们不用ollama app.exe,

我们用ollama.exe

打开git bash或者cmd

执行Ollama的任意命令都会启动服务:

Command Description
serve Start ollama
create Create a model from a Modelfile
show Show information for a model
run Run a model
stop Stop a running model
pull Pull a model from a registry
push Push a model to a registry
list List models
ps List running models
cp Copy a model
rm Remove a model
help Help about any command

3、运行deepseek-r1:8b

ollama run deepseek-r1:8b

是的,可以跳过第二步

因为执行ollama run deepseek-r1:8b就会自动运行Ollama

也可以先pull再run

run完之后会出现命令行

可以打个招呼

到这里就已经部署好了

4、API访问

实际上,没有人会在命令行跟大模型对话

去Ollama的文档找对话的api:ollama/docs/api.md at main · ollama/ollama (github.com)

可以看到有两个对话的api

一个是POST /api/generate

vbnet 复制代码
curl http://localhost:11434/api/generate -d '{
  "model": "deepseek-r1:8b",
  "prompt": "What color is the sky at different times of the day? Respond using JSON",
  "format": "json",
  "stream": false
}'

一个是POST /api/chat

vbnet 复制代码
curl http://localhost:11434/api/chat -d '{
  "model": "deepseek-r1:8b",
  "messages": [
    {
      "role": "user",
      "content": "why is the sky blue?"
    }
  ]
}'

我理解的区别就是/generate可以直接传入prompt,比较简单,而/chat需要构造messages,使得大模型可以"keep a chat memory",/chat应该更加全面一点,所以一般用/chat即可(不知道我理解对不对,反正我都是用/chat)

api调用会有很多参数,可以在api文档查找,需要什么用什么,这些参数几乎都是有默认值的:ollama/docs/modelfile.md at main · ollama/ollama (github.com)

另外如果退出了Ollama,下次只需要使用

复制代码
ollama serve

将ollama启动起来即可,不需要指定run哪个模型

因为通过api调用的时候,会指定model,ollama会把指定的model启动起来

部署Open-WebUI

进入Open-WebUI的文档

🏡 Home | Open WebUI

部署Open-WebUI有很多方式

一种是使用docker部署

一种是手动安装:🏡 Home | Open WebUI

怎么部署取决于你想怎么部署

我没有下载window版本的docker,也不想用它的uv安装

所以我选择在装有Linux环境的服务器上使用docker部署

命令如下:

kotlin 复制代码
docker run -d  \
--name open-webui \
-p 3101:8080 \
--add-host=host.docker.internal:host-gateway \
-e OLLAMA_BASE_URL=http://host:port \
-e ENABLE_OPENAI_API=false \
-v /root/open-webui:/app/backend/data \
ghcr.io/open-webui/open-webui:main

这里简单解释一下

  1. OLLAMA_BASE_URL:是刚才启动的Ollama的地址,因为我的Ollama在我的window,Open-WebUI部署在服务器,所以需要使用到后面的内网穿透
  2. ENABLE_OPENAI_API:我设置为了false,因为如果不设置为false,它会去获取OpenAI的模型,但是我就只想用自己在Ollama部署的模型而已,所有就关掉了,可以根据自己的需要打开或者关闭

我这里的使用到的环境变量比较少,实际上,文档中有很多环境变量,可以根据自己的需要进行设置:🌍 Environment Variable Configuration | Open WebUI

使用docker运行Open-WebUI之后

浏览器输入http://ip:3101可以看到登录页面

第一个注册登录的人就是这个Open-WebUI的管理者,账号密码信息它会使用它自己的本地数据库记录下来,无需自己额外配置数据库

登录之后会看到首页

看到这里,如果Open-WebUI和Ollama是在同一个局域网,并且配置正确,那么是可以看到"Select a model"看到刚才run起来的deepseek-8b模型的

但是我不是那样部署的,因此我还需要内网穿透

内网穿透

实际上,如果上面两步的Open-WebUI和Ollama都是在局域网中部署的,那么此时需要通过内网穿透将Open-WebUI暴露到公网,除非本来就是在具有公网IP的服务器上部署的,或者没有公网访问的需求(讲道理,大部分人都没有)

我用的内网穿透的软件是neutrino-proxy,具体文档用法参见:neutrino-proxy. (dromara.org),用法很简单的

其他的内网穿透软件也是可以的,内网穿透不是本文的重点,不作赘述

这里提醒一下,Ollama默认绑定的是127.0.0.1,而不是0.0.0.0,如果真的要用使用内网穿透将Ollama暴露到公网,可以使用nginx做反向代理,或者去改Ollama绑定的ip为0.0.0.0,参见:ollama/docs/faq.md at main · ollama/ollama --- ollama/docs/faq.md at main · ollama/ollama (github.com),否则Ollama会抛出403

另外将Ollama暴露到公网多多少少有风险,一般不是学习用途或者仅为个人使用的话不会这么做

内网穿透配置成功之后,将Ollama的公网地址配置到OLLAMA_BASE_URL,就可以正常访问了

然后我们就可以对话了

总结

以上就是我个人本地部署大模型的方法,纯属个人分享,不是教程,不是最优的办法,实现的方式有很多种,按照自己喜欢的方式来就好

相关推荐
jndingxin4 分钟前
OpenCV 图形API(63)图像结构分析和形状描述符------计算图像中非零像素的边界框函数boundingRect()
人工智能·opencv·计算机视觉
旧故新长9 分钟前
支持Function Call的本地ollama模型对比评测-》开发代理agent
人工智能·深度学习·机器学习
微学AI21 分钟前
融合注意力机制和BiGRU的电力领域发电量预测项目研究,并给出相关代码
人工智能·深度学习·自然语言处理·注意力机制·bigru
知来者逆33 分钟前
计算机视觉——速度与精度的完美结合的实时目标检测算法RF-DETR详解
图像处理·人工智能·深度学习·算法·目标检测·计算机视觉·rf-detr
一勺汤36 分钟前
YOLOv11改进-双Backbone架构:利用双backbone提高yolo11目标检测的精度
人工智能·yolo·双backbone·double backbone·yolo11 backbone·yolo 双backbone
武汉唯众智创38 分钟前
高职人工智能技术应用专业(计算机视觉方向)实训室解决方案
人工智能·计算机视觉·人工智能实训室·计算机视觉实训室·人工智能计算机视觉实训室
Johny_Zhao1 小时前
MySQL 高可用集群搭建部署
linux·人工智能·mysql·信息安全·云计算·shell·yum源·系统运维·itsm
一只可爱的小猴子1 小时前
2022李宏毅老师机器学习课程笔记
人工智能·笔记·机器学习
地瓜机器人1 小时前
乐聚机器人与地瓜机器人达成战略合作,联合发布Aelos Embodied具身智能
人工智能·机器人
带娃的IT创业者1 小时前
《AI大模型趣味实战》基于RAG向量数据库的知识库AI问答助手设计与实现
数据库·人工智能