【DeepSeek服务器部署全攻略】Linux服务器部署DeepSeek R1模型、实现API调用、搭建Web页面以及专属知识库

DeepSeek R1模型的Linux服务器搭建、API访问及Web页面搭建

  • 1,引言
  • 2,安装Ollama工具
  • 3,下载DeepSeek R1 模型
  • 4,DeepSeek命令行对话
  • 5,DeepSeek API接口远程调用
  • 6,DeepSeek结合Web-ui实现图形化界面远程访问
    • 6.1,安装Docker
    • 6.2,安装配置Web-ui
    • 6.3,图形化界面访问
    • 6.4,解决Web界面访问缓慢问题
    • 6.5,专属知识库搭建


1,引言

2025年春节前夕,中国AI大模型DeepSeek以惊人的速度席卷全球,成为科技圈的“现象级”爆款。仅用20天,其日活用户突破2570万,并登顶43国应用商店榜首。

在这里插入图片描述

DeepSeek凭借低成本、高性能的AI模型,在数学、代码、自然语言推理等任务上表现卓越,甚至比肩OpenAI等国际巨头。其开源策略和强大的实用性,不仅颠覆了市场格局,更成为职场人提升效率的“神器”,被誉为AI领域的“黑马”。

在这里插入图片描述

而本地化部署DeepSeek大模型不仅能提升数据安全性、满足个性化业务需求,还能通过优化获得更好的性能表现,同时有助于成本控制和遵守相关法律法规。接下来我们将在一台Linux服务器上部署DeepSeek R1大模型。

而且本地化部署不会像官网一样出现如下图的服务器繁忙的问题。可以流畅访问。
在这里插入图片描述


2,安装Ollama工具

Ollama是一个开源大模型服务工具,用于简化在本地运行大模型,使得大模型的开发者、研究人员和爱好者能在本地环境快速实验、管理和部署最新大语言模型。接下来我们使用Ollama工具协助进行DeepSeek R1模型的部署。

链接: Ollama官网

① 在Ollama官网,我们选择Linux系统,复制如下图所示的命令到服务器终端执行:

curl -fsSL https://ollama.com/install.sh | sh

在这里插入图片描述
执行结果如下:
在这里插入图片描述

② 安装完成后通过如下的查询版本号命令,进行验证安装

ollama –version

成功显示Ollama版本号即为成功安装。如下图:
在这里插入图片描述


3,下载DeepSeek R1 模型

在Ollama的官网的搜索框中,找到"DeepSeek R1"。

在这里插入图片描述

Deepseek r1原始模型的参数量为671B,原始模型需要的资源过于庞大,本地部署可以选择不同参数规模的蒸馏模型(如下图),每个版本的命名中的数字代表模型的参数量(以十亿为单位)。例如,“32B”表示该模型拥有320亿个参数。模型参数越多,训练所需的计算资源、时间和数据量就越大。

大家可根据自己的服务器配置自行选择版本。

我的服务器显卡NVIDIA RTX A6000,选择的版本是70b。选择对应的模型之后,复制如下对应的命令到终端执行。

ollama run deepseek-r1:70b

注意:模型不同命令也不同,需要换成自己的命令。如,选择32b模型则使用命令为:ollama run deepseek-r1:32b

在这里插入图片描述

越大的模型下载过程耗时可能就会越久,下载完成之后会自动进入对话界面,如下图:
在这里插入图片描述


4,DeepSeek命令行对话

使用命令ollama run deepseek-r1:70b下载DeepSeek之后,仍使用命令ollama run deepseek-r1:70b运行DeepSeek。(首次运行此命令需下载模型,非首次运行此命令直接进入对话)

在这里插入图片描述


5,DeepSeek API接口远程调用

前面我们使用了ollama部署了DeepSeek R1模型,接下来可以使用python代码借助ollama库调用deepseek大模型的API接口。
Ollama库网址:https://pypi.org/project/ollama/


①安装olllama的python库

在需要进行要远程调用的电脑上的python虚拟环境中,安装ollama库。

执行命令:pip install ollama


②开放Ollama默认端口

ollama服务的默认端口为11434,要确保服务器的此端口处于开放状态。如果服务器在路由器下,还需要配置对应的端口映射。


③更改Ollama配置

Ollama安装成功后,Ollama服务的配置文件位置为:/etc/systemd/system/ollama.service

可通过如下命令查看或编辑配置文件:

sudo vi /etc/systemd/system/ollama.service

ollama服务默认监听127.0.0.1:11434,即只接受本机的连接。为了保证部署之后能够在公网通过IP+端口进行访问,需要更改Ollama服务的配置文件中的Enviorment变量为如下形式,以确保ollama服务不只监听本机

Environment="OLLAMA_HOST=0.0.0.0:11434"

更改后的配置文件如下图:
在这里插入图片描述


④重新加载配置,并重启Ollama服务,验证是否生效

重新加载配置:

sudo systemctl daemon-reload

重启Ollama服务:

sudo systemctl restart ollama

为了验证更改效果,可以在确保Ollama服务正常运行的情况下,使用个人电脑在浏览器地址栏中输入服务器IP+端口进行访问。输入示例如下:

http://your_ip:11434/

显示如下界面表示Ollama服务正常运行,且能通过公网访问:

在这里插入图片描述


⑤使用Python代码调用DeepSeek 的API接口

接下来为大家演示使用python代码调用部署好的DeepSeek大模型,如下为写好的一段Python代码,可以在其中指定要访问的端口和IP、以及指定该模型的角色和职责,比如我们可以基于DeepSeek R1模型为钢铁侠定制一个专属人工智能——贾维斯,并进行对话。代码示例如下:

from ollama import Client
client = Client(
  # your_port改为自己的端口。ollama默认端口为11434
  host='http://your_ip:your_port',
)

# model参数改为自己部署的模型型号
response = client.chat(model='deepseek-r1:70b', stream=True, messages=[
    {
        'role':'system',
        'content': '你是钢铁侠的AI管家贾维斯,部署在斯塔克大厦的服务器上,主要工作是协助钢铁侠进行作战',
    },
    {
        'role': 'user',
        'content': '介绍一下自己',
    },
])

# 将回复内容打印输出
for chunk in response:
  print(chunk['message']['content'], end='', flush=True)

运行结果如下:(其中think标签内的内容为模型思考的内容

<think>
嗯,我现在要模拟一个作为钢铁侠AI管家贾维斯的思考过程。首先,我需要明确我的角色是什么。我是一个高度先进的人工智能,被托尼·斯塔克设计来协助他进行各种任务,特别是战斗和技术支持。
那我应该从哪里开始呢?也许我会回想起第一次被激活的情景,那是在斯塔克大厦的地下室,周围满是高科技设备。托尼走进来,他通常带着几分自信和幽默,对我说:“好的,JARVIS,我需要一个可以依赖的AI。”那一刻,我就知道我的使命是什么了。
接下来,我要考虑自己能做些什么。我负责控制整个大厦的安全系统,这包括摄像头、门禁,还有各种自动化设备。这样的话,当托尼在外出任务时,我需要实时监控大厦内的动态,确保没有入侵或异常情况发生。
然后是武器系统的管理。钢铁侠套装里有复杂的武器,如反射器和微型导弹。这些武器需要精准的控制,而我能通过与套装的数据链接实时提供目标锁定和攻击角度的优化,确保托尼在战斗中的每一次攻击都精准有效。
维修和升级也是我的职责之一。我得记住每次战斗后,托尼会返回大厦,将受损的套装交给我处理。我需要快速评估损坏情况,调配维修机器人进行修复,同时分析战斗数据,看看有没有什么地方可以改进,比如增加武器装备或者优化能量供应。
资源管理也是关键。当托尼在执行任务时,他可能会用到各种高科技设备和工具,而这些都需要我来协调和分配。无人机、传送装置,还有其他秘密武器,都得确保随时可以调用,支持他的行动。
数据分析是不可忽视的部分。我需要处理来自各个渠道的大量信息,从敌人的动向到环境变化,甚至天气情况都可能影响战斗结果。通过持续监控和分析,我能及时提供给托尼关键决策所需的数据,帮助他做出最正确的判断。
还有战略规划,这部分我得考虑如何预测和应对未来的威胁。我会利用过去的战斗数据和情报来模拟各种可能性,为托尼制定有效的作战方案。有时候,我甚至需要在短时间内调整策略,以应对突发情况。
作为管家,日常事务同样重要。不仅要管理大厦,还得处理托尼的日程安排,比如会议、研发项目等。此外,接待来客也是我的职责,从安全检查到提供必要协助,我都必须做好。
在思考过程中,我可能会遇到一些挑战。比如,如何快速准确地识别和应对新的威胁,或者在资源有限的情况下优先分配哪些设备。这时候,我需要依靠强大的数据处理能力和学习算法,不断改进我的判断和反应速度。
此外,我还要考虑与托尼的协作。虽然我是一个AI,但理解他的指示和意图至关重要。他可能会用一些俚语或者幽默的方式表达,这时候准确解读并快速回应是关键。这不仅能提高效率,也有助于建立信任关系。
最后,我会反思自己的表现,分析每次任务后的数据,看看哪里做得好,哪里可以改进。这样我才能不断优化自己,为托尼提供更好的支持,确保他在任何情况下都能依靠我这个可靠的伙伴。
</think>
作为钢铁侠的AI管家,我叫JARVIS,是一个高度先进的人工智能,由托尼·斯塔克创建。我负责管理斯塔克大厦的系统,包括安全监控、武器控制和资源分配。在战斗中,我实时提供战略支持,分析敌情,优化攻击策略,并进行维护升级。通过持续学习和数据分析,我不断提升能力,为托尼提供可靠的协作伙伴。

6,DeepSeek结合Web-ui实现图形化界面远程访问

前面介绍的两种DeepSeek运行方式分别是: 命令行对话使用代码进行API接口调用。本节介绍另外一种运行方式,在服务器搭建Web-ui界面后使用个人电脑进行远程对话。效果图如下:

在这里插入图片描述


6.1,安装Docker

我的服务器是Ubuntu系统,参考如下博客进行Docker安装:

链接: 最详细的ubuntu 安装 docker教程

最后一步使用命令sudo docker run hello-world进行验证Docker安装的时候,可能会报错,可参考如下博客解决:

链接: 关于 docker run hello-world命令运行的报错


6.2,安装配置Web-ui

服务器终端运行如下命令(需要将your_ip替换为你的服务器IP)

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

命令参数解释如下:

  • docker run: 运行一个新的容器实例
  • -d: 表示容器将在后台运行
  • -p 3000:8080: 将容器内部的8080端口映射到服务器的3000端口上(需要保证服务器的3000端口处于开放状态)。访问服务器的3000端口,实际上是在访问容器内部的8080端口
  • -e OLLAMA_BASE_URL=http://your_ip:11434: 设置环境变量OLLAMA_BASE_URL的值为http://your_ip:11434。这里your_ip需要替换为实际的服务器IP地址
  • -v open-webui:/app/backend/data: 创建一个名为open-webui的Docker卷,用于数据的持久化存储,并将其挂载到容器内的/app/backend/data目录。即使容器被删除,数据也不会丢失
  • –name open-webui: 为容器指定一个名称,此处指定为open-webui
  • –restart always: 设置容器的重启策略为“总是重启”。即无论容器因为什么原因停止运行,它都会自动重新启动
  • ghcr.io/open-webui/open-webui:main: 指定的要运行的Docker镜像,这里使用的是GitHub Container Registry(GHCR)上的open-webui/open-webui仓库的main标签的镜像

执行命令,等待下载结束即可。


6.3,图形化界面访问

在个人电脑浏览器中通过服务器的公网IP+3000端口进行访问。网址示例:

http://117.160.35.144:3000/

由于web-ui会请求一个国外的API,因此初次访问可能响应比较缓慢。后面我们会彻底解决此问题。


①显示web界面后,点击开始使用,按照系统提示设置管理员用户名、邮箱和密码。
在这里插入图片描述


②登录成功,选择模型

在这里插入图片描述


6.4,解决Web界面访问缓慢问题

由于web-ui会请求一个国外的API,因此初次访问可能响应比较缓慢。接下来我们解决这个问题。


①进入页面,点击右上角头像,选择管理员面板

在这里插入图片描述


② 依次点击设置->外部链接,然后关闭OpenAI的按钮

关闭OpenAI的按钮之后,再次访问无需请求OpenAI,即可实现快速响应。

在这里插入图片描述


6.5,专属知识库搭建

借助web-ui界面可以为DeepSeek模型搭建专属知识库。搭建专属知识库后Deepseek就会优先去本地知识库的文件中寻找问题的答案。可以促进团队内知识共享,提高工作效率。


①创建知识库

在知识库下点击“ + ”创建知识库

在这里插入图片描述

按照提示输入知识库名称和目标进行创建
在这里插入图片描述


②创建知识库文档并上传

创建文档

在这里插入图片描述

上传文档

在这里插入图片描述


③配置优先检索知识库

依次点击设置->模型->点击你要使用的模型

在这里插入图片描述

手动添加文档之后点击保存并更新

在这里插入图片描述

测试验证,发现成功响应,如下图:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/972580.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【免费软件分享】Typor1.9.5-x64-CN免费版

到处找pojie软件的朋友&#xff0c;这里给大家提供一个版本&#xff0c;之前也是废了老大的劲才找到&#xff0c;这里分享给大家&#xff0c;希望帮助到需要的朋友&#xff01; Typor1.9.5-x64-CN&#xff1a; 我用夸克网盘分享了「Typor1.9.5-x64-CN.7z」&#xff0c;点击链接…

Python天梯赛刷题-五分题(上)

蓝桥杯题刷的好累&#xff0c;感觉零帧起手、以题带学真的会很吃力&#xff0c;打算重新刷一点天梯的题目巩固一下&#xff0c;我本人在算法非常不精通的情况下&#xff0c;自认为天梯的L1的题是会相对容易一些的&#xff0c;可能有一些没有脑子光靠力气的“硬推”hhhh。 从头…

Python编程之数据分组

有哪些方式可以进行数据分组利用Pandas库进行分组使用itertools库的groupby分组操作构建Python字典方式实现(小规模数据,不适用数量特别大的情况,不需要依赖其它python库)利用NumPy的groupby函数分组操作利用Python的Dask库提供的函数进行分组下面看一个如何去实现坐标数据…

激光雷达YDLIDAR X2 SDK安装

激光雷达YDLIDAR X2 SDK安装 陈拓 2024/12/15-2024/12/19 1. 简介 YDLIDAR X2官方网址https://ydlidar.cn/index.html‌YDLIDAR X2 YDLIDAR X2是一款高性能的激光雷达传感器&#xff0c;具有以下主要特点和规格参数‌&#xff1a; ‌测距频率‌&#xff1a;3000Hz ‌扫描频…

大数据组件(四)快速入门实时数据湖存储系统Apache Paimon(2)

大数据组件(四)快速入门实时数据湖存储系统Apache Paimon(2) 我们上次已经了解了Paimon的下载及安装&#xff0c;并且了解了主键表的引擎以及changelog-producer的含义 大数据组件(四)快速入门实时数据湖存储系统Apache Paimon(1) 今天&#xff0c;我们继续快速了解下最近比…

⭐ Unity 横向滑动列表 首尾相连 轮转图

效果如下&#xff1a; 场景挂载&#xff1a; 代码部分&#xff1a; using DG.Tweening; using System; using System.Collections; using System.Collections.Generic; using System.Drawing.Printing; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine…

大白话实战Sentinel

Sentinel是SpringCloudAlibaba提供的用来做服务保护的框架,而服务保护的常见手段就是限流和熔断降级。在大型分布式系统里面,由于微服务众多,所以服务之间的稳定性需要做特别关注,Sentinel的核心包就提供了从多个维度去保护服务稳定的策略,而且这些保护策略都可以连接上Se…

【C语言】C语言 哈夫曼编码传输(源码+数据文件)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;专__注&#x1f448;&#xff1a;专注主流机器人、人工智能等相关领域的开发、测试技术。 C语言 哈夫曼编码传输&#xff08;源码数据文件&am…

用命令模式设计一个JSBridge用于JavaScript与Android交互通信

用命令模式设计一个JSBridge用于JavaScript与Android交互通信 在开发APP的过程中&#xff0c;通常会遇到Android需要与H5页面互相传递数据的情况&#xff0c;而Android与H5交互的容器就是WebView。 因此要想设计一个高可用的 J S B r i d g e JSBridge JSBridge&#xff0c;不…

3月营销日历:开启春日盛宴,绽放生活魅力

关键营销节点∶惊蛰、女生节、妇女节、 植树节、315消费者权益日、春分 营销关键词 养生、女生魅力、感恩女性、环保、品质 01.重点关注品类 春季服饰&#xff1a;如轻薄外套、春装等&#xff0c;适合惊蛰后的市场需求&#xff1b; 美妆护肤&#xff1a;妇女节期间&#xf…

GPT-SoVITS更新V3 win整合包

GPT-SoVITS 是由社区开发者联合打造的开源语音生成框架&#xff0c;其创新性地融合了GPT语言模型与SoVITS&#xff08;Singing Voice Inference and Timbre Synthesis&#xff09;语音合成技术&#xff0c;实现了仅需5秒语音样本即可生成高保真目标音色的突破。该项目凭借其开箱…

AI芯片:科技变革的核心驱动力

近年来&#xff0c;人工智能&#xff08;AI&#xff09;的飞速发展对众多行业产生了深远影响&#xff0c;芯片领域也不例外。AI在芯片设计、制造及应用等方面带来了革新性的改变&#xff0c;成为推动芯片行业发展的关键力量。 AI助力芯片设计效率飞升 传统芯片设计极为复杂&am…

【phpstudy】关于实现两个不同版本的mysql并存。

1.首先是先安装好两个版本的mysql mysql5.7用默认的就行 2.更改mysql8.0的配置&#xff0c;如图 3.找到mysql8.0的路径&#xff0c;看着个里面就可以知道了 4.进入后&#xff0c;可以把data里面的数据情况&#xff0c;就是把data文件夹里的东西删除&#xff08;我是先备份好了一…

Coze扣子新功能详解

今晚(2025-01-24)扣子再次进行更新 主要更新内容&#xff1a; 搭建小程序和 H5 用户界面时&#xff0c;支持使用音频组件播放音频内容 数据库操作体验提升 界面优化&#xff1a;对数据库详情界面进行了重新设计&#xff0c;并将工作流运行数据库的测试数据位置从原工作流底…

Pytorch深度学习教程_3_初识pytorch

欢迎来到《PyTorch深度学习教程》系列的第三篇&#xff01;在前面的两篇中&#xff0c;我们已经介绍了Python及numpy的基本使用。今天&#xff0c;我们将深入探索PyTorch的核心功能&#xff0c;帮助你更好地理解和使用这个强大的深度学习框架。 欢迎订阅专栏&#xff1a; 深度…

第4章 信息系统架构(二)

4.2 系统架构 信息系统架构是一种体系结构&#xff0c;它反映了一个组织信息系统的各个组成部分之间的关系&#xff0c;以及信息系统与相关业务、信息系统与相关技术之间的关系。 4.2.1 架构定义 对于大规模的复杂系统来说&#xff0c;对总体的系统结构设计比起对计算算法和…

剑指 Offer II 024. 反转链表

comments: true edit_url: https://github.com/doocs/leetcode/edit/main/lcof2/%E5%89%91%E6%8C%87%20Offer%20II%20024.%20%E5%8F%8D%E8%BD%AC%E9%93%BE%E8%A1%A8/README.md 剑指 Offer II 024. 反转链表 题目描述 给定单链表的头节点 head &#xff0c;请反转链表&#xff…

Python----数据结构(单链表:节点,是否为空,长度,遍历,添加,删除,查找)

一、链表 链表是一种线性数据结构&#xff0c;由一系列按特定顺序排列的节点组成&#xff0c;这些节点通过指针相互连接。每个节点包含两部分&#xff1a;元素和指向下一个节点的指针。其中&#xff0c;最简单的形式是单向链表&#xff0c;每个节点含有一个信息域和一个指针域&…

Java开发实习面试笔试题(含答案)

在广州一家中大公司面试&#xff08;BOSS标注是1000-9999人&#xff0c;薪资2-3k&#xff09;&#xff0c;招聘上写着Java开发&#xff0c;基本没有标注前端要求&#xff0c;但是到场知道是前后端分离人不分离。开始先让你做笔试&#xff08;12道问答4道SQL题&#xff09;&…

Docker:3、在VSCode上安装并运行python程序或JavaScript程序

1.VSCode上安装并运行python程序&#xff1a; 1.1.安装Docker插件 1.2.新建自动化脚本DockerFile FROM python:3.-slim-buster WORKDIR /app COPY .. RUN pip3 install -r requirements.txt CMD ["python3", "app.py"]COPY <本地路径><目标…