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

Ollama部署本地大模型DeepSeek-R1-Distill-Llama-70B

文章目录

  • 一、下模
  • 二、转模
    • 1. 下载转换工具
    • 2. 安装环境依赖
    • 3. llama.cpp
      • 1. 转换脚本依赖
      • 2. llama.cpp安装依赖包
      • 3. llama.cpp编译安装
      • 4. 格式转换
  • 三、Ollama部署
    • 1. 安装启动Ollama
    • 2. 添加模型
    • 3. 测试运行

一、下模

#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('deepseek-ai/DeepSeek-R1-Distill-Llama-70B')

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

二、转模

如果模型是hf,需要转成gguf格式,如果在下模的时候想要的那个模型有gguf的,那就直接下,不用转。如果没有,需要转一下,因为ollama部署必须是gguf格式。

1. 下载转换工具

(base) defaultuser@qin-h100-jumper-server:/mnt/ollama/deepseek/llamacpp$ sudo git clone https://github.com/ggerganov/llama.cpp
Cloning into 'llama.cpp'...
remote: Enumerating objects: 44551, done.
remote: Counting objects: 100% (140/140), done.
remote: Compressing objects: 100% (98/98), done.
Receiving objects:  63% (28068/44551), 71.18 MiB | 2.54 MiB/s 

2. 安装环境依赖

(base) defaultuser@qin-h100-jumper-server:/mnt/ollama/deepseek/llamacpp/llama.cpp$ pip install -e .
WARNING: Ignoring invalid distribution ~riton (/home/defaultuser/anaconda3/lib/python3.12/site-packages)
WARNING: Ignoring invalid distribution ~orch (/home/defaultuser/anaconda3/lib/python3.12/site-packages)
Obtaining file:///mnt/ollama/deepseek/llamacpp/llama.cppInstalling build dependencies ... doneChecking if build backend supports build_editable ... doneGetting requirements to build editable ... done
Downloading protobuf-4.25.6-cp37-abi3-manylinux2014_x86_64.whl (294 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 294.6/294.6 kB 107.8 kB/s eta 0:00:00
Downloading torch-2.6.0-cp312-cp312-manylinux1_x86_64.whl (766.6 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.9/766.6 MB 60.9 kB/s eta 3:29:38

3. llama.cpp

1. 转换脚本依赖

安装convert_hf_to_gguf.py脚本所需的依赖包。

 (base) defaultuser@qin-h100-jumper-server:/mnt/ollama/deepseek/llamacpp/llama.cpp$ pip install -r requirements.txt
Looking in indexes: https://pypi.org/simple, https://download.pytorch.org/whl/cpu, https://download.pytorch.org/whl/cpu, https://download.pytorch.org/whl/cpu, https://download.pytorch.org/whl/cpu
Requirement already satisfied: numpy~=1.26.4 in /home/defaultuser/anaconda3/lib/python3.12/site-packages (from -r ./requirements/requirements-convert_legacy_llama.txt (line 1)) (1.26.4)
/home/defaultuser/anaconda3/lib/python3.12/site-packages (from -r ./requirements/requirements-convert_legacy_llama.txt (line 4)) (0.10.0)
Collecting protobuf<5.0.0,>=4.21.0 (from -r Downloading https://download.pytorch.org/whl/cpu/torch-2.2.2%2Bcpu-cp312-cp312-linux_x86_64.whl (186.7 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 186.7/186.7 MB 6.1 MB/s eta 0:00:00
Requirement already satisfied: filelock in /home/defaultuser/anaconda3/lib/python3.12/site-packages (from transformers<5.0.0,>=4.45.1->-r ./requirements/requirements-convert_legacy_llama.txt (line 3)) (3.17.0)

2. llama.cpp安装依赖包

接下来需要安装convert_hf_to_gguf.py脚本所需的依赖包。

(base) defaultuser@qin-h100-jumper-server:/mnt/ollama/deepseek/llamacpp/llama.cpp$ pip install -r requirements/requirements-convert_hf_to_gguf.txt
WARNING: Ignoring invalid distribution ~riton (/home/defaultuser/anaconda3/lib/python3.12/site-packages)
Looking in indexes: https://pypi.org/simple, https://download.pytorch.org/whl/cpu
Requirement already satisfied: numpy~=1.26.4 in /home/defaultuser/anaconda3/lib/python3.12/site-packages (from -r requirements/./requirements-convert_legacy_llama.txt (line 1)) (1.26.4)
Requirement already satisfied: sentencepiece~=0.2.0 in /home/defaultuser/anaconda3/lib/python3.12/site-packages (from -r requirements/./requirements-convert_legacy_llama.txt (line 2)) (0.2.0)
Requirement already satisfied: transformers<5.0.0,>=4.45.1 in /home/defaultuser/anaconda3/lib/python3.12/site-packages (from -r requirements/./requirements-convert_legacy_llama.txt (line 3)) (4.49.0)
Requirement already satisfied: gguf>=0.1.0 in /home/defaultuser/anaconda3/lib/python3.12/site-packages (from -r requirements/./requirements-convert_legacy_llama.txt (line 4)) (0.10.0)

3. llama.cpp编译安装

直接make

(base) defaultuser@qin-h100-jumper-server:/mnt/ollama/deepseek/llamacpp/llama.cpp$ make
Makefile:2: *** The Makefile build is deprecated. Use the CMake build instead. For more details, see https://github.com/ggml-org/llama.cpp/blob/master/docs/build.md.  Stop.
(base) defaultuser@qin-h100-jumper-server:/mnt/ollama/deepseek/llamacpp/llama.cpp$ 

报错后需要先装cmake

(base) defaultuser@qin-h100-jumper-server:/mnt/ollama/deepseek/llamacpp/llama.cpp$ sudo apt install cmake
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:cmake-data dh-elpa-helper emacsen-common libjsoncpp25 librhash0
Suggested packages:cmake-doc ninja-build cmake-format

使用cmake配置构建

defaultuser@qin-h100-jumper-server:/mnt/ollama/deepseek/llamacpp/llama.cpp/build$ sudo cmake ..
-- The C compiler identification is GNU 11.4.0
-- The CXX compiler identification is GNU 11.4.0
-- Detecting C compiler ABI info
-- CMAKE_SYSTEM_PROCESSOR: x86_64
-- Including CPU backend
-- Found OpenMP_C: -fopenmp (found version "4.5") 
-- Found OpenMP_CXX: -fopenmp (found version "4.5") 
-- Found OpenMP: TRUE (found version "4.5")  
-- x86 detected
-- Adding CPU backend variant ggml-cpu: -march=native 
-- Configuring done
-- Generating done
-- Build files have been written to: /mnt/ollama/deepseek/llamacpp/llama.cpp/build
(base) defaultuser@qin-h100-jumper-server:/mnt/ollama/deepseek/llamacpp/llama.cpp/build$ 

构建项目

(base) defaultuser@qin-h100-jumper-server:/mnt/ollama/deepseek/llamacpp/llama.cpp/build$ sudo cmake --build . --config Release
[  0%] Building C object ggml/src/CMakeFiles/ggml-base.dir/ggml.c.o
[  1%] Building C object ggml/src/CMakeFiles/ggml-base.dir/ggml-alloc.c.o
[  1%] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/ggml-backend.cpp.o
[  2%] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/ggml-opt.cpp.o
[  2%] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/ggml-threading.cpp.o
[  3%] Building C object ggml/src/CMakeFiles/ggml-base.dir/ggml-quants.c.o
[  3%] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/gguf.cpp.o
[  4%] Linking CXX shared library ../../bin/libggml-base.so

4. 格式转换

python convert_hf_to_gguf.py  /mnt/ollama/deepseek/deepseek-ai/DeepSeek-R1-Distill-Llama-70B  --outtype f16 --outfile /mnt/ollama/deepseek/deepseek-ai/DeepSeek-R1-Distill-Llama-70B.gguf 

开始转换,等待转换完成

INFO:hf-to-gguf:gguf: embedding length = 8192
INFO:hf-to-gguf:gguf: feed forward length = 28672
INFO:hf-to-gguf:gguf: head count = 64
INFO:hf-to-gguf:gguf: key-value head count = 8
INFO:hf-to-gguf:gguf: rope theta = 500000.0
INFO:hf-to-gguf:gguf: rms norm epsilon = 1e-05
INFO:hf-to-gguf:gguf: file type = 1
INFO:hf-to-gguf:Set model tokenizer
INFO:gguf.vocab:Adding 280147 merge(s).
INFO:gguf.vocab:Setting special token type bos to 128000
INFO:gguf.vocab:Setting special token type eos to 128001
INFO none %}{%- set ns.is_tool = false -%}{%- for tool in message['tool_calls']%}{%- if not ns.is_first %}{{'<|Assistant|><|tool▁calls▁begin|><|tool▁call▁begin|>' + tool['type'] +>'}}{%- endif %}{%- endif %}{%- endfor -%}{% if ns.is_tool %}{{'<|tool▁outputs▁end|>'}}{% endif %}{% if add_generation_prompt and not ns.is_tool %}{{'<|Assistant|><think>\n'}}{% endif %}
INFO:hf-to-gguf:Set model quantization version
INFO:gguf.gguf_writer:Writing the following files:
INFO:gguf.gguf_writer:/mnt/ollama/deepseek/deepseek-ai/DeepSeek-R1-Distill-Llama-70B.gguf: n_tensors = 724, total_size = 141.1G
NFO:hf-to-gguf:Set model quantization version
INFO:gguf.gguf_writer:Writing the following files:
INFO:gguf.gguf_writer:/mnt/ollama/deepseek/deepseek-ai/DeepSeek-R1-Distill-Llama-70B.gguf: n_tensors = 724, total_size = 141.1G
Writing:  12%|██████████▏                                                                       | 17.6G/141G [01:33<12:08, 170Mbyte/s

三、Ollama部署

1. 安装启动Ollama

curl https://ollama.com/install.sh | sh
ollama serve

2. 添加模型

在模型同级目下创建一个文件Modefile,把模型名字写入

(base) root@test-6U8X-EGS2:/mnt/ollama/deepseek# ls
anaconda3.tgz  DeepSeek-R1                    DeepSeek-R1-Distill-Llama-70B.gguf  home
code           DeepSeek-R1-Distill-Llama-70B  DeepSeek-R1-Distill-Qwen-1___5B     vllm
(base) root@test-6U8X-EGS2:/mnt/ollama/deepseek# touch Modelfile
(base) root@test-6U8X-EGS2:/mnt/ollama/deepseek# nano Modelfile  
(base) root@test-6U8X-EGS2:/mnt/ollama/deepseek# cat Modelfile 
FROM ./DeepSeek-R1-Distill-Llama-70B.gguf
(base) root@test-6U8X-EGS2:/mnt/ollama/deepseek# 

把模型导入ollama,然后list查看是有已有,可以看到latest就是最新导入的。

(base) root@test-6U8X-EGS2:/home/test/ollama-main/bin# ./ollama create DeepSeek-R1-Distill-Llama-70B -f /mnt/ollama/deepseek/M
odelfile
gathering model components 
copying file sha256:bf5df985d4bcfffe15c57780fe7b362b320c6d3d86b07ca16976d511374ed970 100% 
parsing GGUF 
using existing layer sha256:bf5df985d4bcfffe15c57780fe7b362b320c6d3d86b07ca16976d511374ed970 
writing manifest 
success 
(base) root@test-6U8X-EGS2:/home/test/ollama-main/bin# ./ollama list
NAME                                    ID              SIZE      MODIFIED       
DeepSeek-R1-Distill-Llama-70B:latest    22bd5a29702f    141 GB    45 seconds ago    
deepseek-r1-q2:671b                     bf71f995ebf9    226 GB    38 hours ago      
deepseek-r1:671b                        739e1b229ad7    404 GB    4 days ago        
deepseek-r1:70b                         0c1615a8ca32    42 GB     5 days ago        
(base) root@test-6U8X-EGS2:/home/test/ollama-main/bin# 

3. 测试运行

 (base) root@test-6U8X-EGS2:/home/test/ollama-main/bin# ./ollama run DeepSeek-R1-Distill-Llama:70b>>> 介绍下上海
<think>
嗯,用户让我“介绍下上海”。首先,我需要明确他们对上海的兴趣点是什么,是历史、经济、文化还是旅游景点?可能是一个概括性的介绍,所以我得全
面一点。上海作为中国的第一大城市,有很多值得说的。国际化大都市、经济中心,这些基本信息是必须提到的。然后,地理位置在哪儿,人口多不多,这些基本
数据能帮助用户建立一个整体印象。接下来,可以介绍一下上海的历史,比如开埠的时间,以及改革开放后的发展,这样用户能了解它的成长轨迹和现在的地位。经济方面,金融中心、港口和产业布局是关键点。提到黄浦江两岸的变化,可以形象地展示城市的繁荣。文化多样性也是上海的一大特点,东西方文化交融,这一点挺吸引人的。适合生活和旅游,可能用户也在考虑是否要去那里玩,所以可以稍微提一下著名
景点,比如外滩、城隍庙等,但不要展开太多,保持简洁。最后,加上一些个人见解,说明上海的魅力所在,这样介绍会更生动。总之,要全面但不过于冗长,让用户对上海有一个清晰而丰富的了解。
</think>上海是中国的一个国际化大都市,也是中国经济、金融、贸易和航运中心。以下是一些关于上海的基本介绍:1. **地理位置**- 上海位于中国东部,长江入海口以北,黄浦江两岸,是中国人口最多的城市之一。2. **历史与发展**- 上海自1843年开埠以来,就成为了中国对外开放的重要窗口。- 20世纪90年代改革开放后,上海迅速发展成为全球重要的经济中心。3. **经济与金融**- 上海是中国最大的经济中心,也是全球主要金融中心之一。上海证券交易所是中国最重要的股票交易市场之一。- 上海港口是世界上最繁忙的港口之一,货物吞吐量和集装箱吞吐量位居世界前列。4. **文化与多样性**- 上海是一个国际化城市,融合了中西方的文化。老城隍庙、城隍街等传统场所与外滩、南京路步行街等现代商业区相映成趣。- 上海人以开放包容著称,适应各种文化和生活方式。5. **旅游景点**- 外滩:上海的标志性景观之一,夜晚灯光璀璨。- 城隍庙:传统美食和小吃集中地,也是上海文化的象征。- 上海迪士尼乐园:适合家庭游玩。- 珠宝阁:在东方明珠塔上,可以俯瞰整个上海的全景。6. **生活**- 上海是一个充满活力的城市,拥有丰富的娱乐、购物和文化活动。同时,这里也吸引了大量外来务工人员和外籍人士。总之,上海是一座既有传统韵味又充满现代气息的国际化都市,是一个值得探索的地方。

相关文章:

Ollama部署本地大模型DeepSeek-R1-Distill-Llama-70B

文章目录 一、下模二、转模1. 下载转换工具2. 安装环境依赖3. llama.cpp1. 转换脚本依赖2. llama.cpp安装依赖包3. llama.cpp编译安装4. 格式转换 三、Ollama部署1. 安装启动Ollama2. 添加模型3. 测试运行 一、下模 #模型下载 from modelscope import snapshot_download model…...

Zabbix问题记录2--踩坑HttpRequest,header添加无效

背景 在试图尝试通过Zabbix接入DeepSeek API的时候&#xff0c;由于使用了HTTP的方式&#xff0c;所以需要使用Zabbix 自带的HttpRequest库进行请求&#xff0c;产生了下面的问题 问题 curl curl -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completio…...

MTK Android12 预装apk可卸载

文章目录 需求解决方法1、device/mediatek/mt6761/device.mk2、/vendor/mediatek/proprietary/frameworks/base/data/etc/pms_sysapp_removable_vendor_list.txt3、路径&#xff1a;4、Android.mk 需求 近期&#xff0c;客户需要预装一个apk&#xff0c;同时该apk要可卸载。解…...

Redis 集群的三种模式:一主一从、一主多从和多主多从

本文记述了博主在学习 Redis 在大型项目下的使用方式&#xff0c;包括如何设置Redis主从节点&#xff0c;应对突发状况如何处理。在了解了Redis的集群搭建和相关的主从复制以及哨兵模式的知识以后&#xff0c;进而想要了解 Redis 集群如何使用&#xff0c;如何正确使用&#xf…...

网络工程知识笔记

1. 什么是网络&#xff1f; 网络是由多个节点&#xff08;如计算机、打印机、路由器等&#xff09;通过物理或逻辑连接组成的系统&#xff0c;用于数据的传输和共享。这些节点可以通过有线&#xff08;如以太网&#xff09;或无线&#xff08;如 Wi-Fi&#xff09;方式进行连接…...

FFmpeg进化论:从av_register_all手动注册到编译期自动加载的技术跃迁

介绍 音视频开发都知道 FFmpeg,因此对 av_register_all 这个 API 都很熟悉,但ffmpeg 4.0 版本开始就已经废弃了,是旧版本中用于全局初始化的重要接口。 基本功能 核心作用:av_register_all() 用于注册所有封装器(muxer)、解封装器(demuxer)和协议处理器(protocol),…...

初识.git文件泄露

.git 文件泄露 当在一个空目录执行 git init 时&#xff0c;Git 会创建一个 .git 目录。 这个目录包含所有的 Git 存储和操作的对象。 如果想备份或复制一个版本库&#xff0c;只需把这个目录拷贝至另一处就可以了 这是一种常见的安全漏洞&#xff0c;指的是网站的 .git 目录…...

运行测试用例

python odoo-bin -d <database_name> -i my_module --test-tagsmy_module:TestOptimalRouteSelection.test_route_profit_calculation --stop-after-init-d <database_name>&#xff1a;指定 Odoo 使用的数据库名称。 -i my_module&#xff1a;加载和初始化要测试的…...

政安晨【零基础玩转各类开源AI项目】DeepSeek 多模态大模型Janus-Pro-7B,本地部署!支持图像识别和图像生成

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 目录 下载项目 创建虚拟环境 安装项目依赖 安装 Gradio&#xff08;UI&#xff09; 运…...

[250224] Yaak 2.0:Git集成、WebSocket支持、OAuth认证等 | Zstandard v1.5.7 发布

目录 Yaak 2.0 发布&#xff1a;Git 集成、WebSocket 支持、OAuth 认证等众多功能&#xff01;Zstandard v1.5.7 发布&#xff1a;性能提升&#xff0c;稳定性增强 Yaak 2.0 发布&#xff1a;Git 集成、WebSocket 支持、OAuth 认证等众多功能&#xff01; Yaak&#xff0c;一款…...

(六)趣学设计模式 之 代理模式!

目录 一、啥是代理模式&#xff1f;二、为什么要用代理模式&#xff1f;三、代理模式的实现方式1. 静态代理2. JDK动态代理3. CGLIB动态代理 四、三种代理的对比五、代理模式的优缺点六、代理模式的应用场景七、总结 &#x1f31f;我的其他文章也讲解的比较有趣&#x1f601;&a…...

力扣LeetCode:1656 设计有序流

题目&#xff1a; 有 n 个 (id, value) 对&#xff0c;其中 id 是 1 到 n 之间的一个整数&#xff0c;value 是一个字符串。不存在 id 相同的两个 (id, value) 对。 设计一个流&#xff0c;以 任意 顺序获取 n 个 (id, value) 对&#xff0c;并在多次调用时 按 id 递增的顺序…...

【FAQ】HarmonyOS SDK 闭源开放能力 —Ads Kit(2)

1.问题描述&#xff1a; 应用需要获取一个唯一不变的标识生成deviceID。 当前通过OAID生成&#xff0c;但每次重启PC样机&#xff0c;获取到的OAID都会变化&#xff0c;无法满足唯一不变的需求。 解决方案&#xff1a; 需要获取一个唯一不变的标识&#xff0c;可以尝试使用O…...

鸿蒙开发深入浅出03(封装通用LazyForEach实现懒加载)

鸿蒙开发深入浅出03&#xff08;封装通用LazyForEach实现懒加载&#xff09; 1、效果展示2、ets/models/BasicDataSource.ets3、ets/models/HomeData.ets4、ets/api/home.ets5、ets/pages/Home.ets6、ets/views/Home/SwiperLayout.ets7、后端代码 1、效果展示 2、ets/models/Ba…...

DSP芯片C6678的SRIO及其中断跳转的配置

C6678SRIO读写测试门铃中断跳转测试 SRIO简述代码前言SRIO配置原始代码1.使能电源2.初始化SRIO回环修改 3.SRIO测试 Doorbell门铃中断1.初始化中断函数2.中断向量表建立3.中断向量表的链接 本博客基于创龙“678ZH产品线”的SRIO代码&#xff0c;部分参考于网友们的博客&#xf…...

2025asp.net全栈技术开发学习路线图

2025年技术亮点‌&#xff1a; Blazor已全面支持WebAssembly 2.0标准 .NET 8版本原生集成AI模型部署能力 Azure Kubernetes服务实现智能自动扩缩容 EF Core新增向量数据库支持特性 ‌ASP.NET 全栈开发关键技术说明&#xff08;2025年视角&#xff09;‌ 以下技术分类基于现…...

DeepSeek开源周首日:发布大模型加速核心技术可变长度高效FlashMLA 加持H800算力解码性能狂飙升至3000GB/s

FlashMLA的核心技术特性包括对BF16精度的全面支持&#xff0c;以及采用块大小为64的页式键值缓存&#xff08;Paged KV Cache&#xff09;系统&#xff0c;实现更精确的内存管理。在性能表现方面&#xff0c;基于CUDA12.6平台&#xff0c;FlashMLA在H800SXM5GPU上创下了显著成绩…...

01 冲突域和广播域的划分

目录 1、冲突域和广播域的划分 1.1、冲突域 1.2、广播域 1.3、对比总结 1.4、冲突域与广播域个数计算例题 2、交换机和路由器的结构 2.1、交换机的结构 2.2、路由器的结构 1、冲突域和广播域的划分 1.1、冲突域 冲突域是指网络中可能发生数据帧冲突的物理范围。当多…...

nodejs npm install、npm run dev运行的坎坷之路

1、前面的种种都不说了&#xff0c;好不容易运行起来oap-portal项目&#xff0c;运行idm-ui项目死活运行不起来&#xff0c;各种报错&#xff0c;各种安装&#xff0c;各种卸载nodejs&#xff0c;卸载nvm&#xff0c;重装&#xff0c;都不好使。 2、甚至后来运行npm install会…...

Golang 构建学习

Golang 构建学习 如何搭建Golang开发环境 1. 下载GOlang包 https://golang.google.cn/dl/ 在地址上下载Golang 2. 配置包环境 修改全局环境变量&#xff0c;GOPROXY&#xff0c;GOPATH&#xff0c;GOROOT GOPROXYhttps://goproxy.cn,direct GOROOT“” // go二进制文件的路…...

Android Audio实战——音频相关基础概念(附)

Android Audio 开发其实就是媒体源数字化的过程,通过将声波波形信号通过 ADC 转换成计算机支持的二进制的过程叫做音频采样 (Audio Sampling)。采样 (Sampling) 的核心是把连续的模拟信号转换成离散的数字信号。 一、声音的属性 1、响度 (Loudness) 响度是指人类可以感知到的…...

大型装备故障诊断解决方案

大型装备故障诊断解决方案 方案背景 在全球航空工业迅猛发展的背景下&#xff0c;我国在军用和民用飞机自主研发制造领域取得了显著成就。尤其是在国家大力支持下&#xff0c;国内飞机制造企业攻克了诸多关键技术难题&#xff0c;实现了从设计研发到生产制造再到售后保障的完整…...

反向代理模块kfj

1 概念 1.1 反向代理概念 反向代理是指以代理服务器来接收客户端的请求&#xff0c;然后将请求转发给内部网络上的服务器&#xff0c;将从服务器上得到的结果返回给客户端&#xff0c;此时代理服务器对外表现为一个反向代理服务器。 对于客户端来说&#xff0c;反向代理就相当于…...

【Http和Https区别】

概念&#xff1a; 一、Http协议 HTTP&#xff08;超文本传输协议&#xff09;是一种用于传输超媒体文档&#xff08;如HTML&#xff09;的应用层协议&#xff0c;主要用于Web浏览器和服务器之间的通信。http也是客户端和服务器之间请求与响应的标准协议&#xff0c;客户端通常…...

【llm对话系统】如何快速开发一个支持openai接口的llm server呢

核心思路&#xff1a;使用轻量级 Web 框架&#xff0c;将 OpenAI API 请求转换为你现有推理脚本的输入格式&#xff0c;并将推理脚本的输出转换为 OpenAI API 的响应格式。 快速开发步骤列表&#xff1a; 选择合适的 Web 框架 (快速 & 简单): FastAPI: Python 最佳选择&am…...

数据库的三大范式如何理解?

数据库的三大范式是指数据库设计中用来规范化表结构的规则。其目的是减少数据冗余&#xff0c;提高数据一致性和完整性。三大范式分别是&#xff1a; 第一范式&#xff08;1NF&#xff09;—— 原子性 第一范式要求表中的每个字段都必须是原子的&#xff0c;即字段中的值不可…...

Python Seaborn库使用指南:从入门到精通

1. 引言 Seaborn 是基于 Matplotlib 的高级数据可视化库,专为统计图表设计。它提供了更简洁的 API 和更美观的默认样式,能够轻松生成复杂的统计图表。Seaborn 在数据分析、机器学习和科学计算领域中被广泛使用。 本文将详细介绍 Seaborn 的基本概念、常用功能以及高级用法,…...

Android之APP更新(通过接口更新)

文章目录 前言一、效果图二、实现步骤1.AndroidManifest权限申请2.activity实现3.有版本更新弹框UpdateappUtilDialog4.下载弹框DownloadAppUtils5.弹框背景图 总结 前言 对于做Android的朋友来说&#xff0c;APP更新功能再常见不过了&#xff0c;因为平台更新审核时间较长&am…...

JVM生产环境问题定位与解决实战(二):JConsole、VisualVM到MAT的高级应用

生产问题定位指南&#xff1a;几款必备的可视化工具 引言 在上一篇文章中&#xff0c;详细的介绍了JDK自带的一系列命令行工具&#xff0c;&#xff0c;如jps、jmap、jstat、jstack以及jcmd等&#xff0c;这些工具为排查和诊断Java虚拟机&#xff08;JVM&#xff09;问题提供…...

wsl2安装的ext4.vhdx瘦身、打包、导入

1.清理APT缓存: Ubuntu使用APT进行软件包管理&#xff0c;它会在安装过程中保留下载的软件包。清理这些缓存可以释放空间&#xff1a; sudo apt-get clean2.删除不必要的软件包: 删除不再需要的软件包和它们的依赖项&#xff1a; sudo apt-get autoremove3.压缩磁盘空间 ex…...