DeepSeek 部署实战:Ollama + 多客户端 + RAG
DeepSeek 部署实战:Ollama + 多客户端 + RAG
一、前置条件
(一)硬件要求
- GPU:强烈建议使用 NVIDIA RTX 3090 或更高型号,显存至少 24GB。小显存跑大模型会遇到诸多问题,本人亲测 2080Ti 跑模型体验不佳。
- 内存:至少 64GB,推荐 128GB 或更多,否则运行时可能成为瓶颈。
- 存储:至少 100GB 可用空间,用于存放模型文件、软件和依赖库等。
- 兼容性检测:可通过DeepSeek 模型兼容性检测进行图形化检测,查看设备对 DeepSeek 模型的兼容性。
(二)软件要求
- 显卡驱动:确保是最新版本,避免兼容性问题导致错误。
- Docker(可选但强烈推荐用于 Lobe Chat 部署):使用它部署更省心。
- Node.js >= 18 和 pnpm(可选,用于手动部署 Lobe Chat,适合前端高手) 。
二、Ollama 安装与配置
(一)Windows 安装
- 下载:访问 Ollama 官网Ollama,下载 Windows 安装包。
- 安装:双击安装包,一路 “下一步” 完成安装。
- 验证:打开 PowerShell 或 CMD,输入
ollama --version
,出现版本号即安装成功。
(二)Linux 安装
- 安装:打开终端,执行
curl -fsSL https://ollama.com/install.sh | sh
。 - 验证:在终端输入
ollama --version
。
(三)macOS 安装
- 安装:可在终端执行
curl -fsSL https://ollama.com/install.sh | sh
,也能用 Homebrew 安装,命令为brew install ollama
。 - 验证:执行
ollama --version
。
(四)环境变量配置
- OLLAMA_HOST(可选):若想让内网其他机器访问 Ollama 服务,需配置此变量。Windows(PowerShell)下设置为
$env:OLLAMA_HOST="0.0.0.0:11434"
;Linux/macOS 下使用export OLLAMA_HOST="0.0.0.0:11434"
。同时,要在防火墙里放行 11434 端口(或自定义端口)。 - OLLAMA_MODELS(可选):可用于指定模型文件存放路径。
- 代理设置(内网常用):若网络需通过代理访问外网,必须设置 HTTP/HTTPS 代理。Windows(PowerShell)设置为
$env:HTTP_PROXY="http://your-proxy-server:port"
和$env:HTTPS_PROXY="http://your-proxy-server:port"
;Linux/macOS 设置为export HTTP_PROXY="http://your-proxy-server:port"
和export HTTPS_PROXY="http://your-proxy-server:port"
。
三、下载 DeepSeek 模型
(一)在线下载
使用以下命令下载:
ollama run huihui_ai/deepseek-r1-abliterated:32b
(越狱 32B 模型)ollama run deepseek-r1:32b
(官方模型)ollama run bge-m3
(文本向量模型,用于 RAG 知识库,二选一)ollama run nomic-embed-text
(文本向量模型,用于 RAG 知识库,二选一)
(二)离线下载
- 在能上网的机器上,用 Lmstudio 下载模型。
- 找到对应的 gguf 格式模型文件,将整个文件夹复制到内网目标机器的 Ollama 模型目录(常用 U 盘或内网共享文件夹复制)。
- 新建文件 Modelfile,写入下载的模型文件路径,例如
FROM ./nomic-embed-text-v1.5.f16.gguf
。 - cd 到模型文件和 Modelfile 所在目录,执行
ollama create nomic-embed-text-v1.5.f16 -f ./Modelfile
,通过ollama list
可查看导入成功的模型。
四、多客户端集成
(一)Lmstudio(图形化的 ollama)
- 下载:前往 LLStudio 官网LM Studio - Discover, download, and run local LLMs,下载对应系统版本。
- 安装:Windows 运行 LM - Studio - 0.3.9 - 6 - x64.exe;Mac 运行 LM - Studio - 0.3.9 - 6 - x64.dmg;Linux 需先执行
chmod +x LM-Studio-0.3.9-6-x64.AppImage
,再运行./LM-Studio-0.3.9-6-x64.AppImage
。 - 连接 Ollama:启动 Ollama(Windows 通常自动启动,可在服务管理器查看;Linux/macOS 在终端运行
ollama serve
)。打开 LLStudio,找到设置(齿轮图标),在 “Server” 或 “Connection” 中填写 Ollama 地址和端口(默认http://localhost:11434
,若不在同一台机器,填 Ollama 服务器 IP),选择下载的 DeepSeek 模型,测试连接。
(二)Chatbox(界面简洁的新秀)
- 特点:跨平台,界面简洁。
- 下载安装:在官网Chatbox AI: Your AI Copilot, Best AI Client on any device, Free Download下载对应系统安装包并安装。
- 连接 Ollama:打开 Chatbox,进入设置,找到 “API” 或 “连接”,选择 “Ollama”,填写 Ollama 地址和端口,选择模型并测试。
(三)Cherry-Studio(功能丰富)
- 官网:Cherry Studio - 全能的AI助手 ,支持 Windows、Linux、macOS。
- 优点:支持流式输出和 Markdown 渲染。
- 安装与配置:下载安装包安装,打开 Cherry-Studio,找到设置,选择 “模型” 或 “连接”,选择 “Ollama” 作为提供商,填写 Ollama 地址和端口(默认
http://localhost:11434
),选择模型,通过ollama list
获取模型 ID 名称添加模型,测试连接。
(四)Lobe Cat(推荐的 Web 界面)
- 特点:开源、高性能、界面美观,基于 Web,通过浏览器使用。
- GitHub:GitHub - lobehub/lobe-chat: 🤯 Lobe Chat - an open-source, modern-design AI chat framework. Supports Multi AI Providers( OpenAI / Claude 3 / Gemini / Ollama / Qwen / DeepSeek), Knowledge Base (file upload / knowledge management / RAG ), Multi-Modals (Vision/TTS/Plugins/Artifacts). One-click FREE deployment of your private ChatGPT/ Claude application.
- 部署(强烈推荐 Docker):
- 安装 Docker 和 Docker Compose。
- 克隆代码:
git clone https://github.com/lobehub/lobe-chat.git
,进入目录cd lobe-chat
。 - 配置:在 lobe - chat 目录下新建.env 文件,填写内容如下:
OPENAI_API_KEY=sk-your-openai-api-key # (不用OpenAI就留空)
ACCESS_CODE=your-super-secret-password # (一定要设置访问密码!)
OLLAMA_BASE_URL=http://your-ollama-host:11434 # (Ollama地址)
OLLAMA_API_MODEL=deepseek-coder:33b # (模型名称)
- 启动:执行
docker-compose up -d
。 - 访问:在浏览器打开
http://localhost:3010
(或.env 里配置的其他端口),设置了访问密码需输入密码进入。连接 Ollama 时,找到设置(齿轮图标),选择 “语言模型”,“提供商” 选 “Ollama”,填写 “Ollama Base URL” 和 “Model Name”,测试连接。
手动部署(不推荐,适合前端大佬):安装 Node.js(>= 18)和 pnpm,克隆代码,安装依赖pnpm install
,配置.env 文件,构建并启动pnpm build
然后pnpm start
,连接 Ollama 步骤同 Docker 部署。
(五)个人 / 企业 RAG 知识库搭建推荐
- Github:GitHub - rag-web-ui/rag-web-ui: RAG Web UI is an intelligent dialogue system based on RAG (Retrieval-Augmented Generation) technology.
- 介绍:RAG Web UI 是基于 RAG 技术的智能对话系统,可构建自有知识库的智能问答系统。支持多种文档格式(PDF、DOCX、Markdown、Text),具备智能文档管理、先进对话引擎,采用前后端分离设计和分布式文件存储。
- 特性:智能文档管理,支持多种文档格式,自动分块和向量化,支持异步文档和增量处理;先进对话引擎,基于 RAG 精准检索和生成,支持上下文多轮对话和引用角标查看原文;合理架构,前后端分离,分布式文件存储,支持多种高性能向量数据库 。
五、测试
选择一个客户端,输入问题或指令,查看模型是否能正常工作,若正常,模型会流畅输出文本。
六、安全加固
(一)网络隔离
将运行 Ollama 和客户端的服务器置于单独内网网段,严格限制对 Ollama 端口(默认 11434)的访问,仅允许信任 IP,通过防火墙严格控制服务器进出流量,只开放必要端口和协议。
(二)访问控制
利用 Nginx 等反向代理实现身份验证。Nginx 配置示例:
server {listen 80;server_name your-ollama-server.com; # 改成你的域名或IPlocation / {proxy_pass http://localhost:11434;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;# Basic Authentication (可选,强烈推荐)auth_basic "Restricted Access"; # 提示信息auth_basic_user_file /etc/nginx/.htpasswd; # 密码文件路径}
}
可使用 htpasswd 工具生成.htpasswd 文件,同时不要使用默认端口,定期更换端口。
(三)模型安全
只从可信来源下载模型,避免下载来路不明的模型以防恶意代码植入。定期检查模型完整性,使用哈希校验(如 SHA256)验证模型文件是否被篡改,例如在 Linux/macOS 下执行sha256sum /path/to/your/model/file
计算哈希值并与官方对比。限制模型文件访问权限,仅授权用户可访问。
(四)系统安全
保持系统和软件更新,及时打补丁;防火墙只开启必要端口;启用系统日志并定期审查;使用强密码并定期更换;禁用不必要的服务;考虑部署 IDS/IPS。
(五)数据安全
若用模型处理敏感数据,需进行数据加密(静态数据和传输中数据都要加密,可使用 BitLocker、LUKS 等工具加密磁盘,用 HTTPS 传输数据)、数据脱敏(去掉或替换敏感信息),遵循最小权限原则,定期备份数据。
(六)Web 客户端(Lobe Chat)特别关照
必须使用 HTTPS,通过 Nginx 等反向代理配置;在 Lobe Chat 的.env 文件中设置强密码(ACCESS_CODE);防火墙限制 Lobe Chat 端口(默认 3010)的访问;可使用子路径部署增强安全性和方便 URL 管理。
(七)持续监控与更新
定期评估、扫描漏洞,及时更新 Ollama、客户端和模型;定期进行安全审计,检查系统配置、漏洞和异常行为,可使用 Nessus、OpenVAS 等工具扫描漏洞,审查系统和应用日志。
七、常见问题(FAQ)
(一)Ollama 下载模型失败
检查网络和代理设置,确认 HTTP_PROXY 和 HTTPS_PROXY 环境变量是否正确。
(二)客户端连不上 Ollama
检查 Ollama 服务是否启动,客户端中 Ollama 地址和端口是否正确,防火墙是否放行,若使用反向代理,检查其配置。
(三)怎么更新 Ollama 和模型
Ollama:Windows 下载新安装包重装;Linux/macOS 执行curl -fsSL https://ollama.com/install.sh | sh
。模型:执行ollama pull <模型名称>
。
(四)如何监控 Ollama 服务的资源使用
Windows 使用任务管理器或资源监视器;Linux/macOS 使用 top、htop 或 nvidia - smi(若有 N 卡),推荐使用 glances 跨平台系统监控工具。
八、性能调优
(一)调整 Ollama 线程数
设置OLLAMA_NUM_THREAD
环境变量,如export OLLAMA_NUM_THREAD=8
,根据 CPU 核心数调整,避免设置过高。
(二)GPU 加速
确保安装好 CUDA 和 cuDNN 驱动,且版本匹配,Ollama 会自动检测并使用 GPU,可查看 Ollama 启动日志确认。
(三)模型参数优化
在客户端调整生成参数,如 Temperature(控制随机性,0.7 - 0.9 为宜)、Top_p(控制多样性,0.9 或 0.95 常用)、Max Tokens(限制生成文本长度),多尝试不同参数组合找到最适合场景的设置。
九、故障排除
(一)Ollama 服务起不来
查看 Ollama 日志(通常在模型目录下的 logs 文件夹里),检查是否有其他程序占用 Ollama 端口。
(二)模型加载失败
检查模型文件是否完整、无损坏,确认模型文件放置在正确的 Ollama 模型目录,若不行,重新下载。
(三)客户端连不上
确认 Ollama 服务已启动,检查客户端配置中的 Ollama 地址和端口,检查防火墙设置。
(四)模型生成慢
参考 “性能调优” 章节进行优化,同时检查硬件性能是否不足。
十、扩展
除上述客户端外,还有很多 LLM 客户端可能支持 Ollama,可在客户端设置中找到 “API”“连接” 或 “服务器” 选项,配置 Ollama 地址和端口进行尝试。
相关文章:
DeepSeek 部署实战:Ollama + 多客户端 + RAG
DeepSeek 部署实战:Ollama 多客户端 RAG 一、前置条件 (一)硬件要求 GPU:强烈建议使用 NVIDIA RTX 3090 或更高型号,显存至少 24GB。小显存跑大模型会遇到诸多问题,本人亲测 2080Ti 跑模型体验不佳。内…...

Linux通过设备名称如何定位故障硬盘
因为ceph集群的服务器硬盘都是直通的,当我们发现有硬盘存储坏道需要更换硬盘,但是因为盘序可能不是连续的,无法定位服务器上那块硬盘是故障的,如果冒然测试可能把正常的硬盘拔出,得不偿失,所以就写一下我定…...
大模型基础概念之神经网络宽度
在大模型中,神经网络宽度是提升模型容量的核心手段之一,与深度、数据规模共同构成性能的三大支柱。合理增加宽度可显著增强模型表达能力,但需结合正则化、硬件优化和结构设计进行平衡。未来趋势可能包括动态宽度调整、稀疏化宽度设计(如MoE)以及更高效宽度-深度复合缩放策…...

数据开发的简历及面试
简历 个人信息: 邮箱别写QQ邮箱, 写126邮箱/189邮箱等 学历>>本科及以上写,大专及以下不写 专业>>非计算机专业不写 政治面貌>>党员写, 群众不用写 掌握的技能: 精通 > 熟悉 > 了解 专业工具: 大数据相关的 公司: 如果没有可以写的>>金融服…...
数据存储:一文掌握存储数据到ElasticSearch详解
文章目录 一、Elasticsearch简介二、Python与Elasticsearch交互2.1 安装必要的库2.2 连接到Elasticsearch服务器 三、数据准备四、创建索引(可选)五、存储数据5.1 单个文档索引5.2 批量索引 六、查询数据七、更新和删除数据7.1 更新文档7.2 删除文档 八、…...
Pytorch使用手册--将 PyTorch 模型导出为 ONNX(专题二十六)
注意 截至 PyTorch 2.1,ONNX 导出器有两个版本。 torch.onnx.dynamo_export 是最新的(仍处于测试阶段)导出器,基于 PyTorch 2.0 发布的 TorchDynamo 技术。 torch.onnx.export 基于 TorchScript 后端,自 PyTorch 1.2.0 起可用。 一、torch.onnx.dynamo_export使用 在 60 …...

Vue2+Element实现Excel文件上传下载预览
目录 一、需求背景 二、落地实现 1.文件上传 图片示例 HTML代码 业务代码 2.文件下载 图片示例 方式一:代码 方式二:代码 3.文件预览 图片示例 方式一:代码 方式二:代码 一、需求背景 在一个愉快的年后ÿ…...

物联网平台建设方案一
系统概述 构建物联网全域支撑服务能力,为实现学院涵盖物联网设备的全面感知、全域互联、全程智控、全域数字基底、全过程统筹管理奠定基础,为打造智能化提供坚实后台基石。 物联网平台向下接入各种传感器、终端和网关,向上通过开放的实施分…...
机器学习破局指南:零基础6个月系统训练计划
以下是为零基础学习者制定的「机器学习」系统学习计划(含学习路径资源推荐),分为6个阶段,建议学习周期4-6个月: 一、基础准备阶段(1-2周) 目标:掌握必要数学工具与编程基础 数学基础…...

mmdetection框架下使用yolov3训练Seaships数据集
之前复现的yolov3算法采用的是传统的coco数据集,这里我需要在新的数据集上跑,也就是船舶检测方向的SeaShips数据集,这里给出教程。 Seaships论文链接:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp&arnumber8438999 一、…...

unity学习52:UI的最基础组件 rect transform,锚点anchor,支点/轴心点 pivot
目录 1 image 图像:最简单的UI 1.1 图像的基本属性 1.2 rect transform 1.3 image的component: 精灵 → 图片 1.4 修改颜色color 1.5 修改材质 1.6 raycast target 1.7 maskable 可遮罩 1.8 imageType 1.9 native size 原生大小 2 rect transform 2.1 …...

STM32MP15-FSMP1A单片机移植Linux系统platform总线驱动
之前在该单片机下移植的Linux驱动是学习过程中,对Linux内核驱动的引导学习,接下来才是比较正常的驱动开发。 在Linux内核中,对于驱动的处理,一般会通过总线进行设备信息和设备驱动的匹配,来达到自动检测外设连接系统以…...
Java 常见的面试题(设计模式)
一、说一下你熟悉的设计模式? **设计模式:**是一套被反复使用的代码设计经验的总结(情境中一个问题经过证实的一个解决方案)。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式使人们可以更加简…...

机器学习3-聚类
1 聚类解决的问题 知识发现,发现事物之间的潜在关系异常值检测特征提取 数据压缩的例子新闻自动分组、用户分群、图像分割、像素压缩等等 2 与监督学习比较 监督学习是需要给定X、Y,X为特征,Y为标签,选择模型,学习&a…...

html中的css
css (cascading style sheets,串联样式表,也叫层叠样式表) css规范一般约定: 1.存放CSS样式文件的目录一般命名为style或css。 2.在项目初期,会把不同类别的样式放于不同的CSS文件,是为了CSS编…...

36. Spring Boot 2.1.3.RELEASE 中实现监控信息可视化并添加邮件报警功能
1. 创建 Spring Boot Admin Server 项目 1.1 添加依赖 在 pom.xml 中添加 Spring Boot Admin Server 和邮件相关依赖: <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-w…...

Linux: 已占用接口
Linux: 已占用接口 1. netstat(适用于旧系统)1.1 书中对该命令的介绍 2. ss(适用于新系统,替代 netstat)3. lsof(查看详细进程信息)4. fuser(快速查找占用端口的进程)5. …...

Vscode的通义灵码占用空间过大问题【.lingma】
C盘空间发现没装几个软件但是空间占用太离谱了, 最后排查发现是一个.lingma的文件夹问题,这个文件夹用了我居然差不多一百G的空间, 点进去。删除掉ai训练时产生的dbc文件就好了, windowsI 打开系统设置,搜索存储&#…...

鸿蒙Next如何自定义标签页
前言 项目需求是展示标签,标签的个数不定,一行展示不行就自行换行。但是,使用鸿蒙原生的 Grid 后发现特别的难看。然后就想着自定义控件。找了官方文档,发现2个重要的实现方法,但是,官方的demo中讲的很少&…...

知识拓展:Python 接口实现方式对比:Protocol vs @implementer
Python 接口实现方式对比:Protocol vs implementer 1. 两种接口实现方式 1.1 Python Protocol(结构化子类型) from typing import Protocolclass DownloadHandlerProtocol(Protocol):def download_request(self, request: Request, spider:…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...

算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解
进来是需要留言的,先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码,输入的<>当成字符串处理回显到页面中,看来只是把用户输…...

【SSM】SpringMVC学习笔记7:前后端数据传输协议和异常处理
这篇学习笔记是Spring系列笔记的第7篇,该笔记是笔者在学习黑马程序员SSM框架教程课程期间的笔记,供自己和他人参考。 Spring学习笔记目录 笔记1:【SSM】Spring基础: IoC配置学习笔记-CSDN博客 对应黑马课程P1~P20的内容。 笔记2…...

Python[数据结构及算法 --- 栈]
一.栈的概念 在 Python 中,栈(Stack)是一种 “ 后进先出(LIFO)”的数据结构,仅允许在栈顶进行插入(push)和删除(pop)操作。 二.栈的抽象数据类型 1.抽象数…...
Clickhouse统计指定表中各字段的空值、空字符串或零值比例
下面是一段Clickhouse SQL代码,用于统计指定数据库中多张表的字段空值情况。代码通过动态生成查询语句实现自动化统计,处理逻辑如下: 从系统表获取指定数据库(替换your_database)中所有表的字段元数据根据字段类型动态…...
Vue3 hooks
export default function(){ let name; function getName(){ return name; } return {name,getName} } use it ----------------------------------------------- import useName from hooks/useName const {name,getName} useName(); 这段代码展示了一个自定义 Vue3钩…...