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

离线部署大模型:ollama+deepseek+open-webui

ollama 是一个开源的本地大语言模型运行框架,它提供了非常简单便捷的使用形式,让用户可以十分方便的在本地机器上部署和运行大型语言模型,从而实现免费离线的方式使用 LLM 能力,并确保私有数据的隐私和安全性。

1 ollama 安装

ollama 支持多种操作系统,包括 macOS、Windows、Linux 以及通过 Docker 容器运行。其安装、使用及模型下载非常简单,可以简单概括为以下几步:

  • • 下载 ollama 安装程序并安装。

  • • 启动 ollama,执行命令下载和运行模型。如:ollama run deepseek-r1:1.5b

  • • 以命令行交互、API 调用、第三方应用接入等形式使用其服务。

1.1 硬件要求

ollama 本身对硬件要求并不高,主要取决于运行模型的要求。基本建议:

你应该至少有 4 GB 的 RAM 来运行 1.5B 模型,至少有 8 GB 的 RAM 来运行 7B 模型,16 GB 的 RAM 来运行 13B 模型,以及 32 GB 的 RAM 来运行 33B 模型。

假若需要本地私有化部署具有实用性的模型,应至少有独立显卡并有 4G 以上显存。纯 CPU 模式虽然也可以运行,但生成速度很慢,仅适用于本地开发调试体验一下。

本人实测在Mac Studio 2023 版(Apple M2 Max 芯片:12核、32G内存、30核显、1TB SSD)上,运行 deepseek:1.5b 模型响应非常快,可以较为流畅的运行 deepseek-r1:32b 及以下的模型。

DeepSeek-r1 相关版本及大小参考:

参数版本

模型大小

建议CPU

建议内存

建议显存

特点

deepseek-r1:1.5b

1.1GB

4核

4~8G

4GB

轻量级,速度快、普通文本处理

deepseek-r1:7b

4.7G

8核

16G

14GB

性能较好,硬件要求适中

deepseek-r1:8b

4.9GB

8核

16G

14GB

略强于 7b,精度更高

deepseek-r1:14b

9GB

12核

32G

26GB

高性能,擅长复杂任务,如数学推理、代码生成

deepseek-r1:32b

20GB

16核

64G

48GB

专业级,适合高精度任务

deepseek-r1:70b

43GB

32核

128G

140GB

顶级模型,适合大规模计算和高复杂度任务

deepseek-r1:671b

404GB

64核

512G

1342GB

超大规模,性能卓越,推理速度快

1.2 Windows \ macOS \ Linux 下安装 ollama

Windows 和 macOS 用户可访问如下地址下载安装文件并安装:

  • • 国内中文站下载:http://ollama.org.cn/download/

  • • 官方下载:https://ollama.com/download/

  • • github release 下载:https://github.com/ollama/ollama/releases/

Linux 用户可以执行如下命令一键安装:

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

安装完成后,可以通过执行 ollama --version 命令查看 ollama 版本信息,以验证是否安装成功。

ollama 离线安装:

Windows 和 macOS 下直接复制安装文件到本地本进行安装即可。

Linux 下的离线安装主要步骤参考如下:

mkdir -p /home/ollama
cd /home/ollama# 查看服务器 CPU 信息获取其架构,如:x86_64
lscpu# 访问如下地址,下载对应架构的 ollama 安装包
# https://github.com/ollama/ollama/releases/
# - x86_64 CPU 选择下载 ollama-linux-amd64
# - aarch64|arm64 CPU 选择下载 ollama-linux-arm64
# 示例:
wget https://github.com/ollama/ollama/releases/download/v0.5.11/ollama-linux-amd64.tgz# 下载 安装脚本,并放到 /home/ollama 目录下
wget https://ollama.com/install.sh# 将 ollama-linux-amd64.tgz 和 install.sh 拷贝到需要安装的机器上,如放到 /home/ollama 目录下
# 然后执行如下命令:
tar -zxvf ollama-linux-amd64.tgz
chmod +x install.sh
# 编辑 install.sh 文件,找到如下内容
curl --fail --show-error --location --progress-bar -o $TEMP_DIR/ollama "https://ollama.com/download/ollama-linux-${ARCH}${VER_PARAM}"
# 注释它,并在其下增加如下内容:
cp ./ollama-linux-amd64 $TEMP_DIR/ollama# 执行安装脚本
./install.sh# 模型的离线下载请参考下文模型导入部分

1.3 基于 Docker 安装 ollama

基于 Docker 可以使得 ollama 的安装、更新与启停管理更为便捷。

首先确保已安装了 docker,然后执行如下命令:

# 拉取镜像
docker pull ollama/ollama# 运行容器:CPU 模式
docker run -d -p 11434:11434 -v /data/ollama:/root/.ollama --name ollama ollama/ollama
# 运行容器:GPU 模式
docker run --gpus=all -d -p 11434:11434 -v /data/ollama:/root/.ollama --name ollama ollama/ollama# 进入容器 bash 下并下载模型
docker exec -it ollama /bin/bash
# 下载一个模型
ollama pull deepseek-r1:8b

也可以基于 docker-compose 进行启停管理。docker-compose.yml 参考:

services:ollama:image:ollama/ollamacontainer_name:ollamarestart:unless-stoppedports:-11434:11434volumes:-/data/ollama:/root/.ollamaenvironment:# 允许局域网跨域形式访问APIOLLAMA_HOST=0.0.0.0:11434OLLAMA_ORIGINS=*

1.4 修改 ollama 模型默认保存位置

ollama 下载的模型默认的存储目录如下:

  • • macOS: ~/.ollama/models

  • • Linux: /usr/share/ollama/.ollama/models

  • • Windows: C:\Users\<username>\.ollama\models

若默认位置存在磁盘空间告急的问题,可以通过设置环境变量 OLLAMA_MODELS 修改模型存储位置。示例:

# macOS / Linux:写入环境变量配置到 ~/.bashrc 文件中
echo 'export OLLAMA_MODELS=/data/ollama/models' >> ~/.bashrc
source ~/.bashrc# Windows:按 `WIN+R` 组合键并输入 cmd 打开命令提示符
# 然后执行如下命令写入到系统环境变量中
setx OLLAMA_MODELS D:\data\ollama\models

如果已经下载过模型,可以从上述默认位置将 models 目录移动到新的位置。

对于 docker 安装模式,则可以通过挂载卷的方式修改模型存储位置。

1.5 使用:基于 API 形式访问 ollama 服务

ollama 安装完成并正常启动后,可以通过命令行形式运行模型(如:ollama run deepseek-r1:1.5b),并通过命令行交互的方式进行测试。

此外也可以通过访问 http://localhost:11434 以 API 调用的形式调用。示例:

curl http://localhost:11434/api/generate -d '{"model": "deepseek-r1:8b","stream": false,"prompt": "你是谁"
}'

ollama API 文档参考:

  • • https://ollama.readthedocs.io/api/

  • • https://github.com/ollama/ollama/blob/main/docs/api.md

2 使用 ollama 下载和运行模型

2.1 使用 ollama 命令行下载和运行模型

执行如下命令下载并运行一个模型:

# 基本格式为:
ollama run <model_name:size># 例如下载并运行 deepseek-r1 的 1.5b 模型
# 如果下载模型速度开始较快后面变慢,可以 kill 当前进程并重新执行
ollama run deepseek-r1:1.5b

运行成功则会进入命令行交互模式,可以直接输入问题并获得应答反馈,也可以通过 API 调用方式测试和使用。

从如下地址可搜索 ollama 所有支持的模型:

  • • 中文站:https://ollama.org.cn/search

  • • 官方站:https://ollama.com/search

从 HF 和魔塔社区下载模型

ollama 还支持从 HF 和魔塔社区下载第三方开源模型。基本格式为:

# 从 HF(https://huggingface.co) 下载模型的格式
ollama run hf.co/{username}/{reponame}:latest
# 示例:
ollama run hf.co/bartowski/Llama-3.2-1B-Instruct-GGUF:Q8_0# 从魔塔社区(https://modelscope.cn)下载模型的格式
ollama run modelscope.cn/{username}/{model}
# 示例:
ollama run modelscope.cn/Qwen/Qwen2.5-3B-Instruct-GGUF:Q3_K_M

2.2 使用 ollama create 导入本地模型

通过 ollama run 和 ollama pull 命令均是从官方地址下载模型,可能会遇到下载速度慢、下载失败等问题。

ollama 支持从本地导入模型。我们可以从第三方下载模型文件并使用 ollama create 命令导入到 ollama 中。

例如,假若我们下载了 deepseek-r1:8b 模型文件,并保存在 /data/ollama/gguf/deepseek-r1-8b.gguf,则可执行如下命令进行导入:

cd /data/ollama/gguf
echo "From ./deepeek-r1-8b.gguf" > modelfile-deepseek-r1-8b
ollama create deepseek-r1:8b -f modelfile-deepseek-r1-8b# 查看模型信息
ollama list
ollama show deepseek-r1:8b# 运行模型(以命令行交互模式使用)
ollama run deepseek-r1:8b

相关文档参考:

  • • https://ollama.readthedocs.io/import/

  • • https://ollama.readthedocs.io/modelfile/

3 ollama 常用命令参考

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]>:删除一个模型。

4 ollama 安装使用常见问题及解决

4.1 ollama 模型下载慢:离线下载与安装模型

通过 ollama 官方命令拉取模型,可能会遇到网速慢、下载时间过长等问题。

4.1.1 开始快后来慢:间隔性重启下载

由于模型文件较大,下载过程中可能会遇到开始网速还可以,后面变慢的情况。许多网友反馈退出然后重试则速度就可以上来了,所以可以尝试通过每隔一段时间退出并重新执行的方式以保持较快的下载速率。

以下是基于该逻辑实现的下载脚本,注意将其中的 deepseek-r1:7b 替换为你希望下载的模型版本。

Windows 下在 powershell 中执行:

while ($true) {$modelExists = ollama list | Select-String "deepseek-r1:7b"if ($modelExists) {Write-Host "模型已下载完成!"break}Write-Host "开始下载模型..."$process = Start-Process -FilePath "ollama" -ArgumentList "run", "deepseek-r1:7b" -PassThru -NoNewWindow# 等待60秒Start-Sleep -Seconds 60try {Stop-Process -Id $process.Id -Force -ErrorAction StopWrite-Host "已中断本次下载,准备重新尝试..."}catch {Write-Host "error"}
}

macOS / Linux 下在终端中执行:

#!/bin/bashwhiletrue; do# 检查模型是否已下载完成modelExists=$(ollama list | grep "deepseek-r1:7b")if [ -n "$modelExists" ]; thenecho"模型已下载完成!"breakfi# 启动ollama进程并记录echo"开始下载模型..."ollama run deepseek-r1:7b &  # 在后台启动进程processId=$!  # 获取最近启动的后台进程的PID# 等待60秒sleep 60# 尝试终止进程ifkill -0 $processId 2>/dev/null; thenkill -9 $processId# 强制终止进程echo"已中断本次下载,准备重新尝试..."elseecho"进程已结束,无需中断"fi
done
4.1.2 通过网盘等第三方离线下载并导入 ollama 模型

可以通过国内的第三方离线下载模型文件,再导入到 ollama 中。详细参考 2.2 章节。

deepseek-r1 相关模型夸克网盘下载:

链接:https://pan.quark.cn/s/7fa235cc64ef 提取码:wasX

也可以从 魔塔社区、HuggingFace 等大模型社区搜索并下载 stuff 格式的模型文件。例如:

  • • https://modelscope.cn/models/unsloth/DeepSeek-R1-Distill-Qwen-7B-GGUF/files

  • • https://huggingface.co/unsloth/DeepSeek-R1-GGUF

4.1.3 从国内大模型提供站下载模型

ollama 支持从魔塔社区直接下载模型。其基本格式为:

ollama run modelscope.cn/{model-id}

一个模型仓库可能包含多个模型,可以指定到具体的模型文件名以只下载它。示例:

ollama run modelscope.cn/Qwen/Qwen2.5-3B-Instruct-GGUF
#
ollama run modelscope.cn/Qwen/Qwen2.5-3B-Instruct-GGUF:qwen2.5-3b-instruct-q3_k_m.gguf

下载 deepseek-r1 模型命令参考:

# deepseek-r1:7b
ollama run modelscope.cn/unsloth/DeepSeek-R1-Distill-Qwen-7B-GGUF:DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguf
# deepseek-r1:14b
ollama run modelscope.cn/unsloth/DeepSeek-R1-Distill-Qwen-14B-GGUF:Q4_K_M
# deepseek-r1:32b
ollama run modelscope.cn/unsloth/DeepSeek-R1-Distill-Qwen-32B-GGUF:Q4_K_M

此外,也可以从 HF 的国内镜像站(https://hf-mirror.com)查找和拉取模型,方法与上述类似:

# 基本格式
ollama run hf-mirror.com/{username}/{reponame}:{label}# 示例 - 拉取 deepseek-r1:7b
ollama run hf-mirror.com/unsloth/DeepSeek-R1-Distill-Qwen-7B-GGUF:Q4_K_M

4.2 ollama 服务设置允许局域网访问

默认情况下 API 服务仅允许本机访问,若需要允许局域网其他设备直接访问,可修改环境变量 OLLAMA_HOST 为 0.0.0.0,并修改 OLLAMA_ORIGINS 为允许的域名或 IP 地址。

环境变量设置示例:

# windows 命令提示符下执行:
setx OLLAMA_HOST 0.0.0.0:11434
setx OLLAMA_ORIGINS *# macOS 终端下执行:
launchctl setenv OLLAMA_HOST "0.0.0.0:11434"
launchctl setenv OLLAMA_ORIGINS "*"

特别注意:

  • • 如果你是在云服务器等拥有公网IP的环境上部署,请谨慎做此设置,否则可能导致 API 服务被恶意调用。

  • • 若需要局域网其他设备访问,请确保防火墙等安全设置允许 11434 端口访问。

  • • 若需要自定义访问端口号,可通过环境变量 OLLAMA_HOST 设置,如:OLLAMA_HOST=0.0.0.0:11435

4.3 为 ollama API 服务访问增加 API KEY 保护

为云服务器部署的服务增加 API KEY 以保护服务
如果你是通过云服务器部署,那么需要特别注意服务安全,避免被互联网工具扫描而泄露,导致资源被第三方利用。

可以通过部署 nginx 并设置代理转发,以增加 API KEY 以保护服务,同时需要屏蔽对 11434 端口的互联网直接访问形式。

nginx 配置:

server {# 用于公网访问的端口listen 8434;# 域名绑定,若无域名可移除server_name your_domain.com;location / {# 验证 API KEY。这里的 your_api_key 应随便修改为你希望设置的内容# 可通过 uuid 生成器工具随机生成一个:https://tool.lzw.me/uuid-generatorif ($http_authorization != "Bearer your_api_key") {return 403;}# 代理转发到 ollama 的 11434 端口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;proxy_set_header X-Forwarded-Proto $scheme;}
}

5 集成可视化工具

在部署了 ollama 并拉取了 deepseek 等模型后,即可通过命令行交互和 API 服务方式使用,但使用起来并不方便。

开源社区中有许多大模型相关的可视化工具,如 open-webui、chat-ui、cherry-studio、AnythingLLM 等,可以方便地集成 ollama API 服务,提供图形化界面使用,以实现聊天机器人、问答知识库等多元化应用。在官方文档中列举了大量较为流行的工具应用:https://ollama.readthedocs.io/quickstart/#web

我们后续会选择其中较为典型的工具进行集成和介绍。

5.1 示例:基于 docker 部署 open-webui 并配置集成 ollama 服务

Open WebUI 是一个开源的大语言模型项目,通过部署它可以得到一个纯本地运行的基于浏览器访问的 Web 服务。它提供了可扩展、功能丰富、用户友好的自托管 AI Web 界面,支持各种大型语言模型(LLM)运行器,可以通过配置形式便捷的集成 ollama、OpenAI 等提供的 API。

通过 Open WebUI 可以实现聊天机器人、本地知识库、图像生成等丰富的大模型应用功能。

在开始之前,请确保你的系统已经安装了 docker。

接着拉取大语言模型 deepseek-r1:8b 和用于 RAG 构建本地知识库的嵌入模型 bge-m3

ollama pull deepseek-r1:8b
ollama pull bge-m3

然后新建文件 docker-compose.yml,内容参考:

services:open-webui:image:ghcr.io/open-webui/open-webui:mainenvironment:-OLLAMA_API_BASE_URL=http://ollama:11434/api-HF_ENDPOINT=https://hf-mirror.com-WEBUI_NAME="LZW的LLM服务"# 禁用 OPENAI API 的请求。若你的网络环境无法访问 openai,请务必设置该项为 false# 否则在登录成功时,会因为同时请求了 openai 接口而导致白屏时间过长-ENABLE_OPENAI_API=false# 设置允许跨域请求服务的域名。* 表示允许所有域名-CORS_ALLOW_ORIGIN=*# 开启图片生成-ENABLE_IMAGE_GENERATION=true# 默认模型-DEFAULT_MODELS=deepseek-r1:8b# RAG 构建本地知识库使用的默认嵌入域名-RAG_EMBEDDING_MODEL=bge-m3ports:-8080:8080volumes:-./open_webui_data:/app/backend/dataextra_hosts:# - host.docker.internal:host-gateway

这里需注意 environment 环境变量部分的自定义设置。许多设置也可以通过登录后在 web 界面进行修改。

在该目录下执行该命令以启动服务:docker-compose up -d。成功后即可通过浏览器访问:http://localhost:8080

服务镜像更新参考:

# 拉取新镜像
docker-compose pull
# 重启服务
docker-compose up -d --remove-orphans
# 清理镜像
docker image prune
  • • open-webui 详细文档参考:https://docs.openwebui.com/getting-started/env-configuration

可选:开启“联网搜索”功能

操作路径:设置 - 联网搜索 - 启用联网搜索

当前已支持接入的联网搜索引擎中,在不需要魔法上网的情况下,有 bing 和 bocha 可以选择接入。基本只需要前往注册并获取 API KEY 回填到这里即可。如果需要保护隐私数据,请不要开启并配置该功能。

  • • 博查文档:https://aq6ky2b8nql.feishu.cn/wiki/XgeXwsn7oiDEC0kH6O3cUKtknSR

总结与参考

通过以上内容,我们了解了 ollama 在国内环境下的安装使用方法,并介绍了因为国内网络特色导致安装过程可能会遇到的常见问题及解决办法。希望这些内容对你有所帮助,如果你有任何问题或建议,欢迎在评论区留言交流。

  • • ollama 官方站:https://ollama.com

  • • ollama 中文站:https://ollama.org.cn

  • • ollama 入门:https://ollama.readthedocs.io/quickstart/

  • • ollama 常见问题:https://ollama.readthedocs.io/faq/

  • • 魔塔社区:https://modelscope.cn

  • • HF Mirror:https://hf-mirror.com

  • • open-webui 文档:https://docs.openwebui.com

相关文章:

离线部署大模型:ollama+deepseek+open-webui

ollama 是一个开源的本地大语言模型运行框架&#xff0c;它提供了非常简单便捷的使用形式&#xff0c;让用户可以十分方便的在本地机器上部署和运行大型语言模型&#xff0c;从而实现免费离线的方式使用 LLM 能力&#xff0c;并确保私有数据的隐私和安全性。 1 ollama 安装 o…...

深入解析浏览器渲染全流程:从URL输入到页面渲染的底层原理与性能优化(附实战代码)

本文以https://example.com为例&#xff0c;逐层剖析浏览器从输入URL到页面渲染的完整链路&#xff0c;涵盖DNS解析、TCP/TLS握手、HTTP请求、DOM/CSSOM构建等核心阶段&#xff0c;结合代码示例与性能调优技巧&#xff0c;助你掌握浏览器底层运行机制。 一、导航阶段&#xff1…...

现代游戏UI架构深度解析——以UIController为核心的模块化界面管理系统

一、架构全景与设计哲学 本文将以重构后的UIController为核心&#xff0c;深入探讨Unity引擎下的高效UI管理方案。该体系采用"分层-分治"设计理念&#xff0c;通过界面生命周期管理、动态适配策略、资源优化机制三个维度的协同工作&#xff0c;构建了适应复杂交互需…...

Vue 项目中逐步引入 TypeScript 的类型检查

在现有的 Vue 项目中逐步引入 TypeScript 的类型检查 本文源于一道面试题&#xff1a;注&#xff1a;两种问法一个意思哈&#xff01;&#xff01; 问题一&#xff1a;“ 老项目Js写的&#xff0c;如何轻量方式享受 ts 类型&#xff1f;” 问题二&#xff1a;“如何 在现有的 …...

Git企业开发

Git&#xff08;版本控制器&#xff09; 在我们对于文档进行操作的时候&#xff0c;很多时候可能会出现多个文档&#xff0c;对这些文档进行多个版本的保存和记录就变成必要的。通俗的讲&#xff0c;就是记录每次的修改和记录版本迭代的管理系统。目前最主流的版本控制器就是G…...

DeepSeek预测25考研分数线

25考研分数马上要出了。 目前&#xff0c;多所大学已经陆续给出了分数查分时间&#xff0c;综合往年情况来看&#xff0c;每年的查分时间一般集中在2月底。 等待出成绩的日子&#xff0c;学子们的心情是万分焦急&#xff0c;小编用最近爆火的“活人感”十足的DeepSeek帮大家预…...

备战蓝桥杯 -牛客

习题-[NOIP2006]明明的随机数 1046-习题-[NOIP2006]明明的随机数_2021秋季算法入门班第一章习题&#xff1a;模拟、枚举、贪心 思路&#xff1a;这道题用stl的set&#xff0c;今天写这道题复习了一下set的用法&#xff1a; s.find(a) s.end()的意思是判断元素a是否存在于集…...

基于springboot校园健康系统的设计与实现(源码+文档)

大家好我是风歌&#xff0c;今天要和大家聊的是一款基于springboot的园健康系统的设计与实现。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 基于springboot校园健康系统的设计与实现的主要使用者管理员具有最高的权限&#xff0c;通…...

出现 [ app.json 文件内容错误] app.json: 在项目根目录未找到 app.json (env: Windows,mp 解决方法

目录 1. 问题所示2. 原理分析3. 解决方法1. 问题所示 hbuilder X 执行代码的时候出现如下所示 [ app.json 文件内容错误] app.json: 在项目根目录未找到 app.json (env: Windows,mp,1.06.2412050; lib:...

设计模式教程:责任链模式(Chain of Responsibility Pattern)

责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;是一种常用的设计模式&#xff0c;它属于行为型模式&#xff0c;主要解决的是多个对象处理一个请求时&#xff0c;如何解耦请求的发送者和接收者&#xff0c;以及如何将请求的处理职责分配给不同的对象。 1…...

【YOLOv8】损失函数

学习视频&#xff1a; yolov8 | 损失函数 之 5、类别损失_哔哩哔哩_bilibili yolov8 | 损失函数 之 6、定位损失 CIoU DFL_哔哩哔哩_bilibili 2.13、yolov8损失函数_哔哩哔哩_bilibili YOLOv8 的损失函数由类别损失和定位损失构成 类别损失&#xff1a;BCE Loss 定位损失…...

ollama修改监听ip: 0.0.0.0

确认Ollama绑定IP地址 默认情况下&#xff0c;Ollama可能仅监听本地回环地址&#xff08;127.0.0.1&#xff09;。要允许外部访问&#xff0c;需将其配置为监听所有IP&#xff08;0.0.0.0&#xff09;或指定IP&#xff08;如10…19&#xff09;。 修改启动命令&#xff08;推荐…...

【Linux】【网络】Libevent 内部实现简略版

【Linux】【网络】Libevent 内部实现简略版 1 event_base结构–>相当于Reactor 在使用libevent之前&#xff0c;就必须先创建这个结构。 以epoll为例&#xff1a; 1.1evbase void* evbase-->epollop结构体&#xff08;以epoll为例&#xff09; libevent通过一个void…...

计算机网络抄手 运输层

一、运输层协议概述 1. 进程之间的通信 从通信和信息处理的角度看&#xff0c;运输层向它上面的应用层提供通信服务&#xff0c;它属于面向通信部分的最高层&#xff0c;同时也是用户功能中的最低层。当网络边缘部分的两台主机使用网络核心部分的功能进行端到端的通信时&…...

MATLAB图像处理:图像分割方法

图像分割将图像划分为具有特定意义的子区域&#xff0c;是目标检测、医学影像分析、自动驾驶等领域的核心预处理步骤。本文讲解阈值分割、边缘检测、区域生长、聚类分割、基于图的方法等经典与前沿技术&#xff0c;提供MATLAB代码实现。 目录 1. 图像分割基础 2. 经典分割方…...

【机器学习】线性回归 多元线性回归

多元线性回归 V1.1多元线性回归一元线性回归与多元线性回归多元线性回归模型的误差衡量多元线性回归的最优解多元线性回归的解析解&#xff08;标准数学解法&#xff09;多元线性回归的解析解公式分析 多元线性回归的搜索解法 V1.1 加入链接会影响文章推荐权重&#xff0c;阅读…...

【VSCode】MicroPython环境配置

【VSCode】MicroPython环境配置 RT-Thread MicroPython 插件安装MicroPython 库文件配置结束语 RT-Thread MicroPython 插件安装 在 VSCode 拓展中搜索 “RT-Thread MicroPython” 并安装&#xff0c;详细配置步骤&#xff08;修改 VSCode 默认终端、MicroPython 代码补全&…...

【python】网页批量转PDF

安装wkhtmltopdf 网站&#xff1a;wkhtmltopdf wkhtmltopdf http://www.baidu.com/ D:website1.pdf 安装pdfkit库 pip install pdfkit 批量转换代码 import os import pdfkit path_wkthmltopdf rE:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe config pdfkit.configu…...

基于Flask的租房信息可视化系统的设计与实现

【Flask】基于Flask的租房信息可视化系统的设计与实现&#xff08;完整系统源码开发笔记详细部署教程&#xff09;✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 随着互联网的快速发展&#xff0c;租房市场日益繁荣&#xff0c;信息量急剧增加&#xff…...

Scrapy安装,创建Scrapy项目,启动Scrapy爬虫

Scrapy安装&#xff0c;创建Scrapy项目&#xff0c;启动Scrapy爬虫 1. 安装 Python2. 安装 Scrapy3. 验证安装4. 创建 Scrapy 项目5. 启动爬虫5.1 示例 总结 Scrapy 的安装方式比较简单&#xff0c;下面是基于 Python 环境的安装流程&#xff1a; 1. 安装 Python 首先&#x…...

C++项目:高并发内存池_上

目录 1. 项目介绍 2. 内存池概念 2.1 池化技术 2.2 内存池和内存碎片 2.3 细看malloc 3. 定长内存池的实现 ObjectPool.hpp 4. 高并发内存池框架 5. thread cache测试 5.1 thread cache框架 5.2 ConcurrentAlloc.hpp 6. central cache测试 6.1 central cache框架 …...

人工智能驱动的自动驾驶:技术解析与发展趋势

&#x1f30d; 人工智能&#xff08;AI&#xff09;正在彻底变革自动驾驶技术。 从感知到决策&#xff0c;从定位到控制&#xff0c;AI 的发展让汽车越来越接近真正的无人驾驶。本文将详细解析 AI 在自动驾驶中的核心应用&#xff0c;深入探讨各个关键技术&#xff0c;并展望未…...

手机控制电脑远程关机

远程看看软件兼容iOS和Android设备&#xff0c;该软件除了能通过电脑远程关闭另一台电脑外&#xff0c;您还可以通过它在手机上远程关闭公司的电脑。您可以按照以下步骤进行操作以实现电脑远程关机&#xff1a; 步骤1.在手机应用商店搜索“远程看看”进行软件安装&#xff0c;…...

IO模型与NIO基础--NIO网络传输选择器--字符编码

放进NIO体系进行网络编程的工作流程&#xff1a; Selector的创建 通过调用Selector.open()方法创建一个Selector&#xff0c;如下&#xff1a; Selector selector Selector.open(); 向Selector注册通道 通过Channel.register()方法来实现&#xff0c; 注意&#xff1a;Chan…...

【亚马逊开发者账号02】终审问题SA+review_Pre-review+Doc.xlsx

1.终审问题 你好感谢您在此过程中的回复和协作。所有想要构建具有受限 SP-API 角色的公开可用应用程序的开发人员都必须与我们的解决方案架构师团队一起完成架构审核。 这将需要详细说明应用程序的数据流、个人身份信息 &#xff08;PII&#xff09; 的数据保护控制&#xff0…...

基于STM32与BD623x的电机控制实战——从零搭建无人机/机器人驱动系统

系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录 一、为什么选择这两个芯片&#xff1f;1.1 STM32微控制器1.2 ROHM BD623x电机驱动 二、核心控制原理详解2.1 H桥驱动奥…...

c++标准io与线程,互斥锁

封装一个 File 类&#xff0c; 用有私有成员 File* fp 实现以下功能 File f "文件名" 要求打开该文件 f.write(string str) 要求将str数据写入文件中 string str f.read(int size) 从文件中读取最多size个字节&#xff0c; 并将读取到的数据返回 析构函数 #…...

leetcode刷题第十三天——二叉树Ⅲ

本次刷题顺序是按照卡尔的代码随想录中给出的顺序 翻转二叉树 226. 翻转二叉树 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*//*总体思路就是&#xff0c;对于每一个结点&…...

SIM盾构建安全底座的可行性分析

一、背景 1.1安全需求现状 在数字化时代&#xff0c;信息安全面临着日益严峻的挑战。各类网络攻击手段层出不穷&#xff0c;如数据泄露、恶意软件攻击、网络诈骗等&#xff0c;给个人、企业和社会带来了巨大的损失。为了保障信息系统的安全性&#xff0c;需要构建一个可靠的安…...

全新的Android UI框架Jetpack Compose

Jetpack Compose 概述Compose API设计原则Compose 和 View 的关系Compose预览 概述 Jetpack Compose 是Android新一代UI框架&#xff0c;采用了 声明式 的开发范式&#xff0c;基于Kotlin DSL打造&#xff0c;并且可以和现有的Android View 体系共存。 Compose API设计原则 …...