Ubuntu环境基于Ollama部署DeepSeek+Open-Webui实现本地部署大模型-无脑部署

Ollama介绍

Ollama是一款简单好用的模型部署工具,不仅可以部署DeepSeek,市面上开源模型大部分都可以一键部署,这里以DeepSeek为例
官网
在这里插入图片描述
DeepSeek
在这里插入图片描述
版本硬件要求
在这里插入图片描述

安装Ollama

环境

sudo apt update
sudo apt install curl
sudo apt install lsof
1.命令一键安装

在官网点击下载可以看到推荐的就是命令安装,根据需要选择系统版本
但是由于是外网地址会下载的非常慢,如果网络环境支持,首选命令行安装,简单方便
在这里插入图片描述

curl -fsSL https://ollama.com/install.sh | sh
2.压缩包安装

在网络环境不允许,或者下载太慢的情况下,可以选择压缩包安装
压缩包安装需要注意会有一些坑,命令行直接安装会自动匹配,不需要考虑架构问题
这里主要以linux系统为例子,系统架构会有很多版本主要 X86,ARM等等
这里需要先通过命令查看自己的系统架构版本
参考官方文档

sudo uname -m

我这里就是arm的架构
在这里插入图片描述
arm版本下载路径

curl -L https://ollama.com/download/ollama-linux-arm64.tgz -o ollama-linux-arm64.tgz
sudo tar -C /usr -xzf ollama-linux-arm64.tgz

amd /x86 版本

curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz
sudo tar -C /usr -xzf ollama-linux-amd64.tgz

上面得解压路径一般官方文档是放在usr/bin ,amd版本一般放在/usr/local/bin 根据自己情况解压
解压之后可以在对应得路径看到一个ollama启动器文件
在这里插入图片描述
命令后台启动

/usr/bin/ollama serve &

启动报错可能是端口冲突,查看端口占用

sudo lsof -i :11434

在这里插入图片描述

kill -9 1234

编写自启动脚本

sudo vi /etc/systemd/system/ollama.service 
[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_ORIGINS=*"
[Install]
WantedBy=multi-user.target

如果没有ollama用户则创建用户

sudo groupadd -r ollama
sudo useradd -r -g ollama -s /sbin/nologin ollama
sudo mkdir -p /home/ollama/.ollama
sudo chown -R ollama:ollama /home/ollama/.ollama

重新加载 Systemd 配置

sudo systemctl daemon-reload

启用 Ollama 服务自启动

sudo systemctl enable ollama.service

启动/停止.重启 Ollama 服务

sudo systemctl start ollama.service
sudo systemctl stop ollama.service
sudo systemctl restart ollama.service

检查 Ollama 服务状态

sudo systemctl status ollama.service

查看最近的日志输出

sudo journalctl -u ollama.service

重启系统以验证自启动

sudo reboot

下载DeepSeek模型并启动

官网上不止有DeepSeek模型,市面上大部分开源模型都可以一键安装,这里只是以DeepSeek为例
在这里插入图片描述
选择想要部署的版本,复制对应的命令
在这里插入图片描述
版本命令

ollama run deepseek-r1:1.5b
ollama run deepseek-r1:7b
ollama run deepseek-r1:8b
ollama run deepseek-r1:14b
ollama run deepseek-r1:32b
ollama run deepseek-r1:70b
ollama run deepseek-r1:671b

下载完成后会自动进入会话模式
在这里插入图片描述

ollama 常用命令

ollama --help  #查看帮助信息。
ollama serve  #启动 ollama 服务。
ollama create <model-name> [-f Modelfile]  #根据一个 Modelfile 文件导入模型。
ollama show <model-name:[size]>  #显示某个模型的详细信息。
ollama run <model-name:[size]>  #运行一个模型。若模型不存在会先拉取它。
ollama stop <model-name:[size]>  #停止一个正在运行的模型。
ollama pull <model-name:[size]>  #拉取指定的模型。
ollama push <model-name>  #将一个模型推送到远程模型仓库。
ollama list  #列出所有模型。
ollama ps  #列出所有正在运行的模型。
ollama cp <source-model-name> <new-model-name>  #复制一个模型。
ollama rm <model-name:[size]>  #删除一个模型。

Docker容器安装部署 Open-Webui

之所以选择Docker安装open-Webui,是因为简单方便.
除了Docker环境也可以通过编译的方式部署,但是过于复杂,各种环境需要安装Python3,ngode,js 等等一大堆,
Open-Webui官网
在这里插入图片描述

安装Docker容器

1.更新软件包

sudo apt update
sudo apt upgrade

2.安装依赖

sudo apt-get install ca - certificates curl gnupg lsb - release

3.添加 Docker 官方 GPG 密钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

4.添加 Docker 软件源

echo "deb [arch=$(dpkg --print - architecture) signed - by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

5.将当前用户添加到 docker 组

sudo usermod -aG docker $USER

6.安装 Docker

sudo apt - get install docker - ce docker - ce - cli containerd.io

7.启动 Docker

sudo systemctl start docker

8.验证 Docker 是否安装成功

sudo docker run hello - world
部署 Open-WebUI

1.拉取 Open WebUI 镜像

sudo docker pull ghcr.io/open - webui/open - webui:main

2.创建open-WebUi容器并运行

sudo docker run -d   --name open-webui   --restart always   -e OLLAMA_BASE_URL=http://10.1.18.122:11434  -v open-webui:/app/backend/data -p 3000:8080   ghcr.io/open-webui/open-webui:main

安装完成后OpenWebUI会自动连接已经运行的ollama服务中的DeepSeek服务
注意:
拉取open-webui镜像时可能会超时报错报错,以为官方地址是外网的
可以切换为国内镜像源

sudo vi /etc/docker/daemon.json

在文件中添加下面的配置

{
    "registry-mirrors": ["https://hub-mirror.c.163.com", "https://mirror.baidubce.com"]
}

重启docker服务

sudo systemctl restart docker

在这里插入图片描述
完毕!

### 解决 Cursor 错误请求被阻止问题 当遇到 `cursor error` 并提示由于可疑活动而导致请求被阻止的情况时,通常是因为服务器检测到异常行为并采取了安全措施。以下是可能的原因以及解决方案: #### 可能原因分析 1. **IP 地址被列入黑名单** 如果客户端的 IP 被认为存在恶意行为,则可能会触发服务器的安全机制,从而导致请求被拒绝[^1]。 2. **频繁访问或超出速率限制** 过多的 API 请求可能导致服务器将其视为潜在威胁,并暂时封锁该连接[^2]。 3. **不合法的身份验证令牌** 使用过期或者伪造的身份验证令牌也可能引发此类错误消息[^3]。 4. **浏览器插件干扰** 某些广告拦截器或其他扩展程序可能会影响正常的网络通信过程,进而造成类似的错误现象[^4]。 5. **数据库游标超时设置不当** 对于某些应用而言,“cursor”指代的是数据库查询中的游标对象;如果长时间未操作而使得会话断开,则同样会出现上述状况[^5]。 #### 针对性解决办法 - **确认当前使用的 IP 是否正常** 尝试更换不同的网络环境重新发起尝试,观察是否有改善效果。 - **调整请求频率至合理范围之内** 查阅目标服务文档了解其允许的最大 QPS (Queries Per Second),据此优化自己的调用逻辑以满足规定条件。 - **更新认证凭证** 确认所依赖的所有授权信息均处于有效期内,并按照官方指南完成必要的刷新流程。 - **禁用第三方软件影响因素** 测试期间可以考虑临时关闭那些已安装但不确定作用的附加组件来排除它们带来的副作用。 - **适当延长 cursor 的存活周期** 根据实际需求修改相关参数配置文件里的 timeout 值,给予更充裕的时间窗口处理数据读取任务。 ```javascript // 示例代码展示如何通过 MongoDB 设置更大的批处理大小和增加生存时间 const MongoClient = require('mongodb').MongoClient; let client; async function main() { const uri = 'your_connection_string'; client = new MongoClient(uri, { useNewUrlParser: true }); await client.connect(); const collection = client.db("test").collection("accounts"); let cursor = collection.find().batchSize(10).noCursorTimeout(true); } main() .then(() => console.log("Operation completed")) .catch(err => console.error(`An error occurred while running the script: ${err}`)) .finally(() => client.close()); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值