Ollama大模型本地部署全指南:从零到跑通,TaoToken统一Key接入实战
1. 为什么个人开发者需要 Ollama 本地部署 统一 Key 通道如果你是一个个人开发者想在自己电脑上跑大模型大概率会遇到两个绕不开的问题第一模型跑起来了但每次调用都要手动切来切去本地一个地址、云端一个地址代码里到处硬编码第二本地模型能力有限遇到复杂任务还是得调云端 API但不同厂商的 Key 格式、Base URL、鉴权方式都不一样管理起来很烦。Ollama 解决的是第一个问题的一半——它让你用一条命令就能在本地拉起 Qwen、Llama、Gemma 这些开源模型并且暴露一个兼容 OpenAI 风格的 HTTP 接口。但另一半问题它没管当你需要把本地模型和云端模型统一调度时还是得自己维护多套配置。我试过在三个项目里分别维护 Ollama 本地地址和云端 API 地址每次换机器都要重新配一遍环境变量后来干脆用 TaoToken 做统一入口本地和云端走同一个 Base URLKey 也只管一个。这篇内容就是把这套流程完整走一遍从 Ollama 安装、模型拉取、服务验证到用 TaoToken 统一 Key 接入最后给出 curl 验证请求和常见报错排查。适合谁看如果你满足下面任意一条这篇内容对你有用第一次在本地跑大模型不知道从哪下手已经装了 Ollama但不知道怎么把它接入统一的 API 通道手上有多个模型的 Key想用一个 Base URL 统一管理想用 curl 或代码验证本地服务和统一通道是否都通。核心检索词先明确Ollama 本地部署、大模型本地运行、TaoToken 统一 Key 接入、Base URL 配置、curl 验证请求。下面从环境准备开始一步步来。2. Ollama 安装与本地服务启动从零跑通第一个模型Ollama 的安装本身不复杂但有几个坑我踩过提前说清楚能省你不少时间。它的核心逻辑是安装后得到一个命令行工具ollama同时后台会跑一个服务进程默认监听127.0.0.1:11434。你通过命令行或 HTTP 请求跟这个服务交互服务负责加载模型、推理、返回结果。2.1 各平台安装方式与版本确认macOS 和 Windows 直接去官网下载安装包双击安装即可。Linux 用户可以用官方脚本但注意审阅脚本内容不要无脑curl | sh。如果你熟悉 Docker也可以直接用官方镜像ollama/ollama。安装完成后打开终端执行ollama --version如果能看到类似ollama version 0.5.x的输出说明安装成功。如果提示command not found说明安装时没有把ollama加入 PATH需要手动加一下或者重新安装并勾选“添加到 PATH”。Windows 用户注意安装后需要重启终端否则环境变量不生效。我见过有人装完直接在原来的 PowerShell 里敲命令一直报找不到重启终端就好了。2.2 拉取模型与运行第一个对话安装完成后先拉一个中文支持较好的模型。以 Qwen2 为例ollama pull qwen2:7b这个命令会下载约 4GB 的量化模型文件。下载速度取决于你的网络国内用户可能会慢一些耐心等。下载完成后用ollama list可以看到本地已有的模型列表。运行模型有两种方式。单条输入ollama run qwen2:7b 用一句话解释什么是大模型对话模式ollama run qwen2:7b进入对话模式后可以直接输入问题内置命令有/bye退出、/?查看帮助、/show查看模型信息。实测下来7B 模型在 16GB 内存的机器上跑起来比较流畅8GB 内存也能跑但会慢一些。2.3 服务端环境变量配置关键步骤Ollama 默认只监听127.0.0.1如果你想让局域网内其他设备访问或者想让 Docker 容器里的应用调用需要改监听地址。Linux 下用 systemd 管理的话编辑服务文件[Unit] DescriptionOllama Service Afternetwork-online.target [Service] EnvironmentOLLAMA_HOST0.0.0.0:11434 EnvironmentOLLAMA_ORIGINS* EnvironmentOLLAMA_MODELS/data/ollama/models ExecStart/usr/bin/ollama serve Userroot Grouproot Restartalways RestartSec3 [Install] WantedBydefault.target三个环境变量的作用变量名作用建议值OLLAMA_HOST监听地址和端口0.0.0.0:11434需要外部访问时OLLAMA_ORIGINS允许跨域请求的源*内网环境OLLAMA_MODELS模型存放路径大磁盘分区避免放用户家目录改完后执行systemctl daemon-reload systemctl restart ollama生效。Docker 部署的话用 docker-compose 更省事version: 3 services: ollama: container_name: ollama image: ollama/ollama:latest restart: always ports: - 11434:11434 volumes: - /data/ollama:/root/.ollama environment: OLLAMA_ORIGINS: * OLLAMA_HOST: 0.0.0.0启动后docker exec -it ollama ollama run qwen2:7b就能进容器交互。2.4 验证本地服务是否正常服务跑起来后先用 curl 确认接口通curl http://127.0.0.1:11434/api/tags正常返回是一个 JSON包含本地已有模型列表。如果返回Connection refused说明服务没启动或端口不对。如果返回 403检查OLLAMA_ORIGINS是否配置正确。再发一个推理请求curl http://127.0.0.1:11434/api/generate -d { model: qwen2:7b, prompt: 你好请用一句话介绍自己, stream: false }返回 JSON 里response字段就是模型输出。到这里本地 Ollama 服务已经跑通了。接下来要解决的是怎么让它和云端模型走同一个入口。3. TaoToken 统一 Key 接入Base URL 与环境变量配置本地 Ollama 跑通后你会发现一个问题它的接口是/api/generate和/api/chat虽然也兼容 OpenAI 风格但和云端 API 的鉴权方式不一样。本地不需要 Key云端需要 Key本地 Base URL 是http://127.0.0.1:11434云端是另一个地址。如果你在代码里同时用本地和云端模型就得写两套逻辑。TaoToken 的作用是提供一个统一的 API 通道你只需要配置一个 Base URL 和一个 Key就能在同一个接口下调度不同模型。它的 API 地址是https://taotoken.net/api兼容 OpenAI 的/v1/chat/completions格式。3.1 获取 Key 与配置环境变量首先去 TaoToken 控制台创建一个 API Key。拿到 Key 后不要硬编码在代码里用环境变量管理。Linux/macOS 下export TAOTOKEN_API_KEYsk-你的Key export TAOTOKEN_BASE_URLhttps://taotoken.net/apiWindows PowerShell$env:TAOTOKEN_API_KEYsk-你的Key $env:TAOTOKEN_BASE_URLhttps://taotoken.net/api如果你用 Python可以在代码里这样读import os from openai import OpenAI client OpenAI( api_keyos.environ.get(TAOTOKEN_API_KEY), base_urlos.environ.get(TAOTOKEN_BASE_URL) )这样配置的好处是本地 Ollama 和云端模型可以走同一个 client只需要在请求时指定不同的 model 名称。TaoToken 会根据 model 名称路由到对应的后端。3.2 可复制的 JSON/TOML 配置片段如果你用 Cline、Continue 这类插件或者用 Codex 的auth.json配置方式略有不同。下面给出几种常见格式。Cline / Continue 的 settings.json 片段{ models: [ { title: TaoToken Unified, provider: openai, model: qwen2-7b, apiBase: https://taotoken.net/api, apiKey: sk-你的Key } ] }Codex 的auth.json配置{ openai: { apiKey: sk-你的Key, baseURL: https://taotoken.net/api } }如果你用 TOML 格式的配置文件比如某些 CLI 工具[provider.taotoken] base_url https://taotoken.net/api api_key sk-你的Key model qwen2-7b注意无论哪种格式三件套必须齐全——Base URL、Key、Model ID。缺一个都会报 401 或 404。3.3 本地 Ollama 与统一通道的共存策略你可能会问我已经有本地 Ollama 了为什么还要走 TaoToken答案是本地模型适合离线、隐私敏感、低延迟的场景云端模型适合复杂推理、长上下文、多模态的场景。两者不是替代关系而是互补。我的做法是在代码里维护一个模型映射表本地模型走http://127.0.0.1:11434云端模型走https://taotoken.net/api。对于简单任务优先用本地模型对于复杂任务切到云端。这样既省 Key 额度又保证效果。如果你想让本地 Ollama 也走统一入口可以在 TaoToken 侧配置一个指向本地地址的通道如果支持的话或者用反向代理把本地 11434 端口映射到一个统一域名下。不过对于个人开发者来说直接维护两个 Base URL 更简单。3.4 验证统一通道是否可用配置完成后先用 curl 验证 TaoToken 通道curl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -H Content-Type: application/json \ -d { model: qwen2-7b, messages: [{role: user, content: 你好}], stream: false }正常返回应该是一个 JSON包含choices数组里面是模型回复。如果返回 401检查 Key 是否正确如果返回 404检查 Base URL 是否多了或少了/v1如果返回local proxy failed说明网络层有问题检查是否能正常访问taotoken.net。到这里本地服务和统一通道都验证过了。接下来进入实际调用环节。4. 完整调用链路验证curl 请求与返回状态码检查这一节把本地 Ollama 和 TaoToken 统一通道的调用都走一遍给出完整的 curl 命令和预期返回方便你对照检查。4.1 本地 Ollama 推理请求验证先确认本地服务在跑curl -s http://127.0.0.1:11434/api/tags | head -c 200预期返回类似{models:[{name:qwen2:7b,modified_at:2025-01-01T00:00:00Z,size:4100000000}]}然后发推理请求curl -s http://127.0.0.1:11434/api/chat -d { model: qwen2:7b, messages: [{role: user, content: 用一句话说明什么是HTTP}], stream: false }预期返回{ model: qwen2:7b, message: { role: assistant, content: HTTP是一种用于在网络上传输超文本的协议。 }, done: true }如果返回model not found说明模型名写错了用ollama list确认实际名称。如果返回空内容检查stream是否设成了true流式返回需要逐行解析。4.2 TaoToken 统一通道推理请求验证用同一个问题走 TaoTokencurl -s https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -H Content-Type: application/json \ -d { model: qwen2-7b, messages: [{role: user, content: 用一句话说明什么是HTTP}], stream: false }预期返回{ id: chatcmpl-xxx, object: chat.completion, choices: [ { index: 0, message: { role: assistant, content: HTTP是一种用于在网络上传输超文本的协议。 }, finish_reason: stop } ] }注意返回结构是 OpenAI 风格的choices数组和 Ollama 的message字段不同。如果你在代码里同时处理两种返回需要做适配。4.3 状态码对照与含义状态码含义常见原因200成功请求正常返回 JSON401未授权Key 缺失或错误403禁止访问OLLAMA_ORIGINS 未配置或 Key 权限不足404未找到Base URL 路径错误或模型名不存在500服务器错误模型加载失败或后端异常502网关错误统一通道后端不可达实测下来最常见的两个错误是 401 和 404。401 基本都是 Key 问题404 基本都是 Base URL 多了或少了/v1。记住TaoToken 的 Base URL 是https://taotoken.net/api请求路径是/v1/chat/completions拼起来就是https://taotoken.net/api/v1/chat/completions。4.4 Python 代码完整调用示例把上面的 curl 换成 Pythonimport os from openai import OpenAI client OpenAI( api_keyos.environ.get(TAOTOKEN_API_KEY), base_urlos.environ.get(TAOTOKEN_BASE_URL) ) response client.chat.completions.create( modelqwen2-7b, messages[{role: user, content: 用一句话说明什么是HTTP}], streamFalse ) print(response.choices[0].message.content)如果这段代码能跑通说明你的统一 Key 通道配置正确。如果报AuthenticationError检查环境变量是否生效如果报NotFoundError检查 base_url 是否写成了https://taotoken.net/api/v1多了/v1会 404。5. 常见报错排查401、local proxy failed、reading choices、OAuth这一节把我在实际使用中遇到的报错整理出来给出原因和解决方法。你遇到问题时可以对照排查。5.1 401 UnauthorizedKey 无效或未传递报错信息{error:{message:Invalid API key,type:invalid_request_error}}原因通常有三个Key 复制时多了空格环境变量没生效请求头格式不对。检查步骤echo $TAOTOKEN_API_KEY确认输出是sk-开头的完整 Key。然后检查请求头curl -v https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ ...-v会打印请求头确认Authorization字段存在且格式正确。注意Bearer和 Key 之间有一个空格。5.2 local proxy failed网络层不可达报错信息{error:local proxy failed: dial tcp: connection refused}这个错误说明请求没有到达 TaoToken 服务端通常是本地网络问题。检查curl -I https://taotoken.net/api如果这个命令也失败说明你的网络无法访问该地址。检查 DNS 解析、防火墙规则、代理设置。如果你在公司内网可能需要配置 HTTP 代理注意这里说的是正常的网络代理配置不是任何违规工具。5.3 reading choices返回结构解析错误报错信息KeyError: choices或者TypeError: NoneType object is not subscriptable原因是你用 OpenAI SDK 调用了 Ollama 原生接口。Ollama 的/api/chat返回的是message字段不是choices。解决方法要么用 Ollama 的 Python SDK要么把 Ollama 的返回适配成 OpenAI 格式。如果你用 OpenAI SDK 调 TaoToken返回结构是标准的choices不会报这个错。所以这个错误通常出现在混用两套接口时。5.4 OAuth 相关报错鉴权方式不匹配报错信息{error:unsupported grant type: oauth}这个错误说明你用的客户端默认走 OAuth 流程但 TaoToken 用的是 API Key 鉴权。解决方法在客户端配置里把鉴权方式改成 API Key填入sk-开头的 Key不要走 OAuth 登录流程。如果你用 Claude Code 或类似工具注意它的配置项名称可能是apiKey或token不要填成 OAuth 的clientId。5.5 模型名不存在404 或 model not found报错信息{error:{message:model not found,type:invalid_request_error}}检查模型名是否拼写正确。TaoToken 侧的模型名和 Ollama 本地的模型名可能不一样。用ollama list看本地模型名用 TaoToken 文档看支持的模型列表。两边不要混用。5.6 排查流程总结遇到报错时按这个顺序排查本地服务是否在跑curl http://127.0.0.1:11434/api/tags统一通道是否可达curl -I https://taotoken.net/apiKey 是否有效echo $TAOTOKEN_API_KEYBase URL 是否正确确认是https://taotoken.net/api不是https://taotoken.net/api/v1模型名是否匹配本地和云端分别确认请求头格式Authorization: Bearer sk-xxx按这个顺序走一遍90% 的问题都能定位。6. 从本地到云端统一 Key 通道的长期使用建议走到这里你已经完成了 Ollama 本地部署、模型拉取、服务验证、TaoToken 统一 Key 接入、curl 验证和报错排查的完整流程。最后说几个长期使用中的实用建议。第一环境变量不要写死在代码里。用.env文件或系统环境变量管理换机器时只改一处。如果你用 Docker把环境变量写进docker-compose.yml的environment段。第二本地模型和云端模型分工明确。简单问答、代码补全、离线场景用本地 Ollama复杂推理、长文档分析、多模态任务走 TaoToken 云端通道。这样既省额度又保证效果。第三定期检查模型更新。Ollama 的模型库更新很快ollama pull可以拉取最新版本。TaoToken 侧的模型列表也会更新关注控制台公告。第四如果你用 Cline、Continue、Claude Code 这类工具配置时记住三件套Base URL 填https://taotoken.net/apiKey 填sk-开头的字符串Model ID 填你实际要用的模型名。三个缺一不可。第五遇到问题先看状态码。200 是成功401 是 Key 问题404 是路径或模型名问题502 是后端不可达。按状态码定位比盲目试错快得多。如果你还没有 TaoToken 的 Key可以去控制台创建一个然后按第 3 节的配置片段接入。本地 Ollama 继续跑着云端通道配好两套环境共存按需切换。这套流程我用了几个月稳定性没问题换机器时重新配一遍也就十分钟。

相关新闻

【单片机课程设计/毕业设计】基于单片机的智能台灯光线人体双感知调光装置设计 基于物联网的智能台灯环境监测与自动调节系统设计(031001)

【单片机课程设计/毕业设计】基于单片机的智能台灯光线人体双感知调光装置设计 基于物联网的智能台灯环境监测与自动调节系统设计(031001)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/10/11 3:12:26 阅读更多 →
【计算机毕业设计单片机案例】基于WIFI的智能台灯光控调光与手机端远程管理系统设计 基于ESP32的智能台灯环境监测与语音控制装置设计(031001)

【计算机毕业设计单片机案例】基于WIFI的智能台灯光控调光与手机端远程管理系统设计 基于ESP32的智能台灯环境监测与语音控制装置设计(031001)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/10/11 3:12:26 阅读更多 →
学习C语言规划

学习C语言规划

自我介绍:大家好,我是一名大一计算机科学与技术的学生。目前正在从零基础开始学习c语言,我对编程可谓说是一窍不通,敲代码对我说是一个全新的挑战,不过我不会轻易放弃。编程学习目标:我现在还不太了解编程&…

2026/10/11 3:11:26 阅读更多 →

最新新闻

RT-Thread—STM32—EasyFlash

RT-Thread—STM32—EasyFlash

RT-Thread—STM32—EasyFlash 概述 本教程主要根据官方推荐的教程进行改编,详细信息请参考EasyFlash软件包 本例程的模板使用通用模板环境搭建里面的模板 RT-Thread——STM32——FAL库 示例工程请参见文末的源码仓库链接, 建议从头开始移植, 加深印象。 配置 打开工…

2026/10/11 3:59:54 阅读更多 →
gitlab4j-api 实战:Java 客户端封装 GitLab REST API 与 CI/CD 避坑指南

gitlab4j-api 实战:Java 客户端封装 GitLab REST API 与 CI/CD 避坑指南

简介:GitLab4J API 是一套面向 Java 开发者的 GitLab REST API 客户端库,适合需要在自有系统中集成 GitLab 仓库管理、CI/CD 或用户权限等能力的后端工程师与运维开发人员。它封装了项目、分组、合并请求、用户、议题、提交等常用子 API,并支…

2026/10/11 3:59:54 阅读更多 →
HarmonyOS V2状态管理实战:从@local开始搞懂深拷贝与嵌套观测

HarmonyOS V2状态管理实战:从@local开始搞懂深拷贝与嵌套观测

从V1那套状态管理切到V2之后,我第一个上手的就是local。说实话,刚开始看文档的时候觉得它就是State换了个名字,但真正在项目里用了两周才发现,这两个装饰器的设计思路根本不在一个维度。HarmonyOS 6.0的V2状态管理把“状态来源”这…

2026/10/11 3:59:54 阅读更多 →
Python情人节浪漫代码:心情泡泡动画小项目实现教程

Python情人节浪漫代码:心情泡泡动画小项目实现教程

每年情人节前后,总有人问我:Python除了写爬虫、做自动化,到底能不能搞点浪漫的东西?其实能,而且门槛低到让人意外。今天这篇就分享一个可以直接拿去送人的小项目:python情人节代码之心情泡泡。它的玩法很简…

2026/10/11 3:59:54 阅读更多 →
激光与电火花加工仿真:从热源到熔池流动的多物理场建模实践

激光与电火花加工仿真:从热源到熔池流动的多物理场建模实践

激光打孔看着简单——一束光打下去,材料上多了个眼。但你要是想提前算出来这个眼长什么样,事情立刻变复杂了。激光打孔时熔融金属会从孔口飞溅出来,孔壁上会留下重铸层,入口边缘还有一圈毛刺;电火花加工那边更热闹&…

2026/10/11 3:59:54 阅读更多 →
Java面试翻车现场:HashMap、线程池、JVM深度拆解

Java面试翻车现场:HashMap、线程池、JVM深度拆解

“严肃面试官 vs 搞笑水货程序员谢飞机(本名王大瓜)——互联网大厂 Java 面试实录与技术拆解”,光看这个标题你可能觉得是个段子,但我在现场的感觉是:这简直就是一场喜剧外壳下的技术解剖课。谢飞机,简历上…

2026/10/11 3:58:54 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →