Embedding向量模型选型指南:TaoToken统一API下的主流模型对比与星级推荐
1. RAG 语义搜索选型Embedding 向量模型到底在选什么做 RAG 知识库或者语义搜索很多人第一反应是去调大模型觉得生成质量决定一切。但真正跑过生产环境的人都知道检索环节才是准确率的天花板。用户问「年假怎么算」你的向量模型如果只匹配到「请假流程」而不是「带薪年休假制度」后面生成模型再强也救不回来。Embedding 向量模型做的事情就是把文本映射到一个高维空间里语义相近的句子距离更近检索时按距离排序取 Top-K。它决定了你的召回质量而召回质量决定了整个 RAG 系统的上限。选型时要看的维度其实就几个向量维度、中文语义效果、成本、是否支持多模态、能不能私有化部署。维度影响存储和检索速度1024 维和 3072 维在百万级文档下的内存差距是实打实的。中文效果不能只看 MTEB 总榜要看中文子榜和你的业务领域。成本分两块API 调用按 token 计费本地部署按显存和运维算。多模态需求现在越来越常见知识库里混着图表、扫描件、产品图纯文本模型处理不了。这篇内容面向正在搭 RAG 或语义搜索的开发者不管你是刚跑通 demo 还是准备上生产都能找到可复制的配置和验证步骤。我会用 TaoToken 的统一 API 通道来演示调用这样你不用为每个模型单独申请 Key、单独适配 SDK一个通道切换模型对比起来效率高很多。官网入口在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 注册后拿到统一 Key 就能开始。先说结论性的星级推荐后面再展开配置和验证。闭源 API 里Gemini Embedding 2 多模态能力最强五星text-embedding-3-large 生态成熟四星GLM-Embedding-3 中英文专业领域优化好四星。开源本地部署里Qwen3-VL-Embedding-8B 多模态天花板五星BGE-M3 中文 RAG 生产首选五星Jina v5-text-small 性价比之王四星。这个星级不是绝对的你的场景决定权重。我试过在同一个知识库上换不同模型跑召回率差距能到 15 个点以上。所以选型不是拍脑袋要有验证流程。下面从接入配置开始一步步带你跑通对比。2. TaoToken 统一 API 前置一个 Key 打通多模型 Embedding 调用在对比模型之前先把调用通道搭好。传统做法是每个厂商注册账号、拿 Key、读各自的文档、适配不同的请求格式光切换成本就劝退。TaoToken 的思路是提供统一的 API 通道你用同一个 Base URL 和同一个 Key通过改 model 参数就能切换不同厂商的 Embedding 模型。这对选型阶段特别有用因为你要横向对比统一通道能省掉大量适配工作。先明确几个关键信息。Base URL 是 https://taotoken.net/api 注意这个地址不带任何查询参数是纯 API 端点。API Key 在控制台的 API Keys 页面创建地址是 https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。创建后复制保存后面所有请求都用它。模型 ID 方面Embedding 类模型通常以 embedding 相关命名具体可用列表可以在模型对话页面查看地址 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。接入方式兼容 OpenAI SDK 格式这意味着你现有的 OpenAI 客户端代码几乎不用改只改 base_url 和 api_key 就行。Python 环境下装 openai 库即可pip install openai然后初始化客户端。注意 base_url 要带上 /api 路径不要多加斜杠from openai import OpenAI client OpenAI( base_urlhttps://taotoken.net/api, api_key你的TaoTokenKey )如果你用环境变量管理 Key可以这样export TAOTOKEN_API_KEYsk-xxxxxxxximport os from openai import OpenAI client OpenAI( base_urlhttps://taotoken.net/api, api_keyos.environ[TAOTOKEN_API_KEY] )对于 Node.js 或 TypeScript 项目用 openai 的 npm 包同样可以import OpenAI from openai; const client new OpenAI({ baseURL: https://taotoken.net/api, apiKey: process.env.TAOTOKEN_API_KEY, });这里有个容易踩的坑base_url 结尾不要带斜杠。有些教程写https://taotoken.net/api/多一个斜杠在某些 SDK 版本下会拼出双斜杠导致 404。统一用不带尾斜杠的写法。另外如果你用 Cline、Cursor 这类工具做开发辅助它们的配置里通常有 Base URL、API Key、Model ID 三件套。以 Cline 的 MCP 配置为例在 settings 里填{ taotoken: { baseUrl: https://taotoken.net/api, apiKey: sk-xxxxxxxx, model: text-embedding-3-large } }Codex 的 auth.json 配置也是类似逻辑把 base_url 指向 TaoToken 的 API 地址key 填统一 Keymodel 填你要用的 Embedding 模型 ID。这三件套填对通道就通了。前置工作就这些不复杂。拿到 Key、确认 Base URL、选好模型 ID接下来就能发请求了。如果你还没创建 Key先去控制台建一个后面验证步骤需要用到。3. 可复制配置主流 Embedding 模型调用参数与 settings 片段这一节给你可以直接复制粘贴的配置。我会按模型分组每个给出请求示例和关键参数说明。所有示例都走 TaoToken 统一通道你只需要替换 api_key。先看闭源 API 组。text-embedding-3-large是 OpenAI 的通用文本 Embedding支持自定义维度。默认 3072 维可以通过 dimensions 参数降到 1024 或 256 来省成本。调用示例resp client.embeddings.create( modeltext-embedding-3-large, input年假申请需要提前几天提交, dimensions1024 ) vec resp.data[0].embedding print(len(vec)) # 1024dimensions 参数是它的一大优势你可以在效果和成本之间做权衡。实测降到 1024 维召回率下降通常在 1-2 个点以内但存储和检索成本降一大截。GLM-Embedding-3支持 256 到 2048 维灵活自定义中英文专业领域表现好。调用方式resp client.embeddings.create( modelglm-embedding-3, input金融产品风险等级划分标准, dimensions1024 )Gemini Embedding 2支持多模态交错输入文本、图片、音视频、文档可以混合。纯文本调用resp client.embeddings.create( modelgemini-embedding-2, input产品发布会现场照片的语义描述 )多模态输入时input 可以传结构化内容具体格式参考模型对话页面的文档说明。再看开源本地部署组。这些模型你可以在自己服务器上跑也可以通过 TaoToken 通道调用托管版本。BGE-M3是中文开源标杆568M 参数支持稠密稀疏多向量混合检索。本地部署用 FlagEmbedding 或 sentence-transformersfrom sentence_transformers import SentenceTransformer model SentenceTransformer(BAAI/bge-m3) vecs model.encode([年假制度, 请假流程], normalize_embeddingsTrue)如果通过 TaoToken 调用托管版resp client.embeddings.create( modelbge-m3, input[年假制度, 请假流程] )Qwen3-VL-Embedding-8B是多模态开源天花板支持图文、视频、可视化文档统一语义空间。本地部署需要较大显存8B 参数建议 24G 以上。调用示例resp client.embeddings.create( modelqwen3-vl-embedding-8b, input包含图表的年度财报截图 )Jina v5-text-small只有 677M 参数资源消耗极低适合边缘设备或海量粗筛resp client.embeddings.create( modeljina-v5-text-small, input新闻标题语义向量 )为了让你更直观地对比我把关键参数整理成表格模型维度范围中文效果多模态部署方式星级Gemini Embedding 2固定强支持API五星text-embedding-3-large256-3072中上不支持API四星GLM-Embedding-3256-2048强不支持API四星Qwen3-VL-Embedding-8B固定强支持本地/API五星BGE-M31024很强不支持本地/API五星Jina v5-text-small固定中上不支持本地/API四星配置文件方面如果你用 Cline 或类似工具settings 片段可以这样写{ embedding: { provider: taotoken, baseUrl: https://taotoken.net/api, apiKey: sk-xxxxxxxx, model: bge-m3, dimensions: 1024, batchSize: 32 } }batchSize 是批量请求时一次发多少条文本太大容易超时太小效率低。32 到 64 是比较稳的范围具体看你的网络和模型响应速度。这些配置复制过去改 Key 就能用。接下来验证请求是否真的通了。4. 验证请求与成功结果跑通一次 Embedding 并检查向量质量配置填好后别急着上生产先跑一次最小验证。验证分两步先确认请求能通再确认向量质量符合预期。第一步发一个单条文本的 Embedding 请求from openai import OpenAI client OpenAI( base_urlhttps://taotoken.net/api, api_keysk-xxxxxxxx ) resp client.embeddings.create( modelbge-m3, inputRAG 系统中向量检索的召回率优化 ) vec resp.data[0].embedding print(维度:, len(vec)) print(前5个值:, vec[:5]) print(usage:, resp.usage)成功的话你会看到类似输出维度: 1024 前5个值: [0.0234, -0.0156, 0.0891, 0.0042, -0.0333] usage: Usage(prompt_tokens12, total_tokens12)维度对得上、有数值、usage 有 token 计数说明请求通了。如果维度是 0 或者报错看下一节的排查。第二步验证语义质量。构造几组语义相近和不相近的句子算余弦相似度看排序是否符合直觉import numpy as np def cosine(a, b): a, b np.array(a), np.array(b) return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b)) texts [ 年假申请流程, # 0 带薪年休假怎么请, # 1 请假需要提前几天, # 2 公司食堂菜单, # 3 ] resp client.embeddings.create(modelbge-m3, inputtexts) vecs [d.embedding for d in resp.data] print(0 vs 1:, cosine(vecs[0], vecs[1])) # 应该高 print(0 vs 2:, cosine(vecs[0], vecs[2])) # 应该中高 print(0 vs 3:, cosine(vecs[0], vecs[3])) # 应该低实测下来0 和 1 的相似度通常在 0.85 以上0 和 2 在 0.7 左右0 和 3 在 0.3 以下。如果你的结果符合这个趋势说明模型在你的中文场景下工作正常。如果 0 和 3 的相似度也跑到 0.7 以上那这个模型可能不适合你的领域需要换或者微调。第三步批量请求验证。生产环境都是批量 embedding测一下 batch 请求batch [f文档段落 {i}这是关于产品功能的描述 for i in range(100)] resp client.embeddings.create( modeltext-embedding-3-large, inputbatch, dimensions1024 ) print(返回条数:, len(resp.data)) print(总 token:, resp.usage.total_tokens)100 条一次发看返回条数是否等于 100有没有截断或报错。如果超时把 batch 拆小比如 32 条一批。第四步如果你要对比多个模型写个循环跑同一批文本记录维度和相似度分布models [bge-m3, text-embedding-3-large, glm-embedding-3] query 如何申请年假 docs [年假制度说明, 请假流程指南, 报销规定] for m in models: qv client.embeddings.create(modelm, inputquery).data[0].embedding dv client.embeddings.create(modelm, inputdocs).data scores [cosine(qv, d.embedding) for d in dv] print(m, [round(s, 3) for s in scores])跑完你就能看到不同模型对同一组文本的区分度。区分度越高检索时越容易把相关文档排前面。验证通过后就可以把配置固化到你的 RAG 流程里了。检索环节用同一个模型对 query 和文档做 embedding存向量库查询时算相似度取 Top-K。5. 本篇常见错排查401、local proxy failed、reading choices 与 OAuth 报错接入过程中遇到报错很正常这一节把高频错误和排查路径列清楚。401 Unauthorized是最常见的。报错信息通常是openai.AuthenticationError: Error code: 401 - {error: {message: Invalid API key}}排查顺序第一确认 api_key 填的是 TaoToken 控制台创建的 Key不是其他厂商的。第二确认 Key 没有多余空格复制时容易带上换行。第三确认 Key 没有过期或被删除。第四如果你用环境变量确认变量名拼写正确os.environ[TAOTOKEN_API_KEY]和 export 的名字要一致。第五base_url 确认是https://taotoken.net/api不要写成其他路径。local proxy failed这类报错通常出现在工具类客户端里比如 Cline 或某些 IDE 插件。报错长这样Error: local proxy failed to connect这通常是客户端本地代理配置问题不是 API 本身的问题。排查检查客户端的网络设置确认没有配置额外的本地代理端口确认 base_url 填的是完整地址重启客户端再试。如果你在公司网络环境确认防火墙没有拦截对 taoToken 域名的访问。reading choices 报错一般出现在流式响应或非 Embedding 的对话请求里Embedding 接口本身不返回 choices 字段。如果你在 Embedding 调用中看到这个错说明你可能把 Embedding 请求发到了对话接口或者 model 参数填了一个对话模型 ID。检查 model 是否填的是 embedding 类模型比如bge-m3、text-embedding-3-large而不是gpt-4这类对话模型。OAuth 相关报错出现在 Claude Code 或类似工具的接入场景。报错可能是OAuth token exchange failed这类工具如果用 OAuth 流程接入需要确认回调地址和客户端配置。更稳的方式是直接用 API Key 模式接入在配置里填 Base URL、API Key、Model ID 三件套绕过 OAuth。以 Claude Code 为例配置里指定Base URL: https://taotoken.net/api API Key: sk-xxxxxxxx Model ID: 你的模型ID三件套填对就不走 OAuth 流程了。维度不匹配报错出现在你把向量存入向量库时。比如你用 text-embedding-3-large 默认 3072 维建了索引后来换成 bge-m3 的 1024 维写入时报维度不一致。解决方法是换模型时重建索引或者用 dimensions 参数把维度对齐。向量库的维度是建索引时固定的不能混用。超时或 429 限流。批量请求太大或频率太高会触发。解决减小 batch size加请求间隔或者升级套餐提高配额。429 报错信息里通常有 retry-after 提示按提示等待重试。返回向量全为 0 或 NaN。这种情况少见但出现过通常是输入文本为空或全是特殊字符。检查 input 是否为空字符串过滤掉空白文本再发请求。排查的核心思路是先确认 Key 和 Base URL 对再确认 model ID 对再确认请求格式对最后看网络和配额。大部分问题在前两步就能定位。6. 选型落地与持续对比用统一通道把 Embedding 评测跑成日常选型不是一次性的业务在变模型也在迭代。今天 BGE-M3 够用明天你的知识库加了大量图表可能就得换多模态模型。所以更实际的做法是把 Embedding 评测做成一个可重复的流程用 TaoToken 统一通道换模型只改一个参数评测脚本不用动。具体做法维护一个小的评测集几十条 query 和对应的相关文档每次想换模型时跑一遍看召回率变化。评测脚本就是前面验证部分的扩展def evaluate(model_id, queries, docs, top_k3): q_vecs client.embeddings.create(modelmodel_id, inputqueries).data d_vecs client.embeddings.create(modelmodel_id, inputdocs).data hits 0 for i, qv in enumerate(q_vecs): scores [cosine(qv.embedding, dv.embedding) for dv in d_vecs] top np.argsort(scores)[::-1][:top_k] if i in top: hits 1 return hits / len(queries)这个脚本跑不同 model_id就能得到召回率对比。你的评测集越贴近真实业务结果越有参考价值。选型决策上给你几条实操建议。纯文本中文 RAGBGE-M3 是稳妥起点本地部署成本低效果经过大量生产验证。需要多模态且预算充足Gemini Embedding 2 直接上。要私有化多模态Qwen3-VL-Embedding-8B 是当前开源最优解。快速验证项目、不想折腾部署text-embedding-3-large 开箱即用。垂直领域如医疗法律金融先用通用模型跑通再抽几千条领域数据微调准确率提升通常有 10 到 20 个点。成本方面API 调用按 token 计费Embedding 通常比生成模型便宜很多百万 token 级别成本可控。本地部署省的是调用费但算上显存和运维小规模场景未必划算。用 TaoToken 统一通道的好处是你可以先用 API 模式快速对比确定模型后再决定要不要本地部署。长期编码或 Agent 场景如果你要频繁切换模型做实验Coding Plan 会更省心地址 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 里面有各模型的详细参数和示例。API Key 管理在 https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。最后说个实际经验别在选型上花超过一周。先用 BGE-M3 或 text-embedding-3-large 把 RAG 流程跑通上线收集真实 query 日志再拿日志做评测集去对比其他模型。没有真实数据的选型都是猜有日志之后的对比才有意义。统一通道的价值就在这里让你随时能换、随时能测不用被单一厂商绑死。

相关新闻

SpringBoot+Vue宠物店管理系统实战:从环境配置到二次开发

SpringBoot+Vue宠物店管理系统实战:从环境配置到二次开发

每年毕业设计和课程设计的节点,都会有一批同学抱着“springbootvue宠物店管理系统(源码文档调试基础修改答疑)”这个项目来找我。压缩包解压得很顺利,一运行不是依赖缺失就是连不上数据库,文档里写了操作步骤却没说清楚…

2026/10/7 10:23:03 阅读更多 →
谁在国内做 AIGC 检测研究?机构、城市与引用量对照(2026 样本)

谁在国内做 AIGC 检测研究?机构、城市与引用量对照(2026 样本)

国内 AIGC 检测研究不是没人做,而是集中在四个城市群——清华/南开/哈工大深圳/鹏城实验室联合发布了中文基准 C-ReD,南开的检测系统已有 1000 月活用户;但中文基准的引用量与国外代表作差了 600 倍,这块蓝海才刚开垦。本文按&quo…

2026/10/7 10:23:03 阅读更多 →
ARP协议详解:原理、GNS3抓包实验与网络排障实战

ARP协议详解:原理、GNS3抓包实验与网络排障实战

做网络这一行,最绕不开的课题就是"排查通与不通"。很多刚入行的朋友一上来就ping、traceroute、翻防火墙策略,折腾半天没思路,其实有相当一部分问题的根源,就藏在一个不起眼的协议里——ARP协议。ARP协议全称Address Re…

2026/10/7 10:23:02 阅读更多 →

最新新闻

车载废气测量系统实战:OBS-ONE SPN10从装机到RDE数据后处理全记录

车载废气测量系统实战:OBS-ONE SPN10从装机到RDE数据后处理全记录

开题先讲个背景。前阵子我带团队做某款轻型汽油车的实际道路排放验证,后备箱里装的正是这台OBS-ONE SPN10车载废气测量系统。很多人第一次听“SPN10”以为只是个型号后缀,其实它对应的是固态颗粒物数量(Solid Particle Number)测量…

2026/10/7 11:32:42 阅读更多 →
Caveman主题:高对比度深色编辑器,专注代码可读性

Caveman主题:高对比度深色编辑器,专注代码可读性

作为一个常年盯着代码的人,我对编辑器主题的挑剔程度可能比大多数人都高。但也正因如此,我才会在接触到一个叫 caveman 的主题后,第一时间把它当成了主力方案。第一次听到这个名字,你可能会和我一样疑惑:caveman&…

2026/10/7 11:32:42 阅读更多 →
TextureUnpacker实战:从图集切割到GPU压缩纹理还原的完整指南

TextureUnpacker实战:从图集切割到GPU压缩纹理还原的完整指南

简介:TextureUnpacker是一款面向游戏开发者、UI设计师及图形资源管理程序员的轻量工具,用于解析TexturePacker生成的图集资源,读取plist中的精灵位置、尺寸与裁剪参数,并支持预览和导出到指定文件夹。压缩包共34个文件&#xff0c…

2026/10/7 11:32:42 阅读更多 →
MES系统整体解决方案设计:从边界到落地的完整指南

MES系统整体解决方案设计:从边界到落地的完整指南

简介:面向卫浴工厂与智能制造从业者的MES系统整体解决方案设计文档,围绕柔性制造与精准制造目标,系统讲解从车间设备监控到生产全流程管控的落地路径。文档为doc格式,压缩包约8.04MB,已有1935人学习下载。内容覆盖项目…

2026/10/7 11:32:42 阅读更多 →
企业能源管理系统综合解决方案:从计量点表到节能验证的落地指南

企业能源管理系统综合解决方案:从计量点表到节能验证的落地指南

简介:企业能源管理系统(EMS)建设是企业信息化与节能降耗的关键环节,本资料以力控科技综合解决方案为蓝本,面向企业能源管理负责人、自动化工程师及方案设计人员,系统回答从能源数据采集、过程监控到能耗分析…

2026/10/7 11:32:42 阅读更多 →
I2C通信协议实战指南:从时序原理到故障排查

I2C通信协议实战指南:从时序原理到故障排查

搞嵌入式这些年,I2C(IIC)这个通信协议几乎是躲不开的必修课。不管是调OLED屏幕、读写EEPROM,还是接各种传感器芯片,I2C永远以“两根线搞定一切”的姿态出现在你的原理图上。我最早接触I2C的时候,被时序图绕…

2026/10/7 11:31:41 阅读更多 →

日新闻

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

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

2026/10/7 1:01:58 阅读更多 →
用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

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

2026/10/7 1:02:00 阅读更多 →
芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

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

2026/10/7 1:02:00 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

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

2026/10/6 7:15:40 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

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

2026/10/6 5:29:09 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

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

2026/10/7 9:29:10 阅读更多 →

月新闻

我发现了一个新思路:用 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/6 8:21:32 阅读更多 →
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/6 4:21:51 阅读更多 →
黑夜航拍船只数据集训练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/6 1:18:13 阅读更多 →