大模型token成本怎么拆开算账:用TaoToken统一Key看清input与output账单
1. 从一张看不懂的账单说起大模型 token 成本拆解到底难在哪大模型 token 成本拆解说白了就是把一次 API 调用花掉的钱按 input输入和 output输出两个方向分别算清楚而不是只盯着账单末尾那个总数。它适合所有按量付费调模型的人——尤其是同时接了两三个模型、月底对不上账的开发者。你如果只知道这个月花了 800 块却说不清这 800 块里有多少是系统提示词烧的、多少是模型啰嗦回答烧的那预算控制基本靠猜。我见过太多人把 token 当成一个笼统的数。请求发出去返回一个 usage 对象里面 prompt_tokens、completion_tokens 摆在那儿很多人扫一眼总数就关了。问题在于input 和 output 的单价往往差好几倍混在一起看你根本判断不出该优化哪一头。有人一上来就压回答长度结果发现 input 才是大头有人拼命精简提示词结果 output 因为任务复杂反而涨了。方向搞反力气白费。更麻烦的是多模型场景。你今天用 A 模型跑问答明天用 B 模型跑代码补全两家的计价单位、计费口径、甚至 token 切分方式都不一样。账单拉出来是两套数字想横向比价得先统一到同一个口径上。这时候如果没有一个统一的调用入口你连同一个请求在不同模型上各花多少都测不出来。所以这篇要解决的核心问题就一个给你一套可复制的拆账方法把 input 和 output 分开统计、分开对照最后落到一张能复用的核算模板上。我会用 TaoToken 的统一 Key 和 API 通道做一次真实调用记录把每一步的配置、请求、返回字段都摊开给你看。你跟着走一遍就能拿到属于自己业务的那张拆账单。先说清楚 TaoToken 在这里扮演什么角色。它是一个统一的模型调用入口你申请一个 Key就能通过同一套 API 格式去调不同的模型返回的 usage 字段结构一致。这对拆账特别关键——因为口径统一了你才能把不同模型的 input/output 放在一张表里比。官网在 https://taotoken.netAPI 入口是 https://taotoken.net/api两个地址记一下后面配置要用。我试过最笨的办法每个模型单独写一套请求代码各自解析各自的返回。结果光维护解析逻辑就够呛更别说对齐口径。换成统一通道之后请求体结构一样返回的 usage 字段名一样拆账脚本写一遍就能跑所有模型。这是后面所有步骤能可复制的前提。2. 用 TaoToken 统一 Key 打通调用通道前置准备与口径对齐在动手拆账之前得先把调用通道搭好并且把口径这件事定死。所谓口径就是你要统计哪些字段、按什么单位换算、单价从哪来。这三件事不提前定后面数据一多就乱。TaoToken 的统一 Key 解决的是入口统一问题。你去官网 https://taotoken.net 注册后进控制台创建 API Key这个 Key 对所有支持的模型通用。控制台地址是 https://taotoken.net/consoleAPI Key 管理页在 https://taotoken.net/api-keys。拿到 Key 之后你不需要为每个模型单独申请凭证也不用记多套 Base URL。这里有个细节值得说很多人拆账拆不明白是因为不同模型的返回字段名不一样。有的叫 prompt_tokens有的叫 input_tokens有的把缓存命中单独列一个字段。你如果直接拿原始返回去写统计得为每个模型写一套映射。TaoToken 的通道把这些统一成一套结构你拿到的 usage 里输入和输出是分开的、字段名是固定的。这一步省下来的对齐成本比你想的大。前置准备清单你照着核对第一一个可用的 TaoToken API Key。创建时给它起个能认出来的名字比如cost-audit-test方便后面在账单里定位这次测试的调用。第二一个能发 HTTP 请求的环境。curl 就行或者你熟悉的 Python/Node 脚本。我下面用 curl 演示因为最直观复制就能跑。第三一张单价表。这是拆账的基准必须自己维护。不同模型、不同计费档位input 和 output 的单价都不一样而且会调整。你要做的是把你实际在用的模型各自的 input 单价、output 单价、缓存命中单价如果有记到一张表里单位统一成元/百万 token。这张表是后面所有计算的输入别偷懒用记忆里的数字。第四一个记录落盘的地方。拆账的本质是采样 汇总你得把每次请求的 usage 存下来哪怕先存成一行 CSV。临时打印到屏幕上看一眼是拆不出账的。口径对齐这一步我建议你明确三件事并写下来统计粒度按单次请求记还是按小时/天聚合建议先按单次记原始数据聚合后面用脚本做。字段定义input 用量取哪个字段output 用量取哪个字段缓存命中算不算进 input。定义清楚别中途改。单价来源写清楚单价的出处和生效日期。单价会变不写日期三个月后你自己都不信这张表。把这三件事定下来你后面拿到的每一个数字才有意义。否则数据越多越糊涂跟一开始盯着总数看没区别。通道搭好、口径定好接下来就是真正发请求、拿数据。下一节给你可直接复制的配置和请求代码。3. 可复制的成本核算配置请求体、单价表与拆账脚本这一节是整篇的核心操作部分给你三样可直接复制的东西调用配置、单价表模板、拆账脚本。三样凑齐你就能跑出第一份 input/output 拆账单。先说调用配置。TaoToken 的 API 入口是 https://taotoken.net/api请求走标准的 chat completions 格式。下面是一个最小可用的 curl 请求你把 Key 换成自己的就能跑curl https://taotoken.net/api/v1/chat/completions \ -H Content-Type: application/json \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -d { model: your-model-id, messages: [ {role: system, content: 你是一个客服助手回答控制在100字内。}, {role: user, content: 退货流程是什么} ], temperature: 0.3 }注意model字段填你实际要测的模型 IDmessages里 system 和 user 分开写——这样你后面才能看清 input 里系统提示词占了多少。返回体里会带一个 usage 对象input 和 output 的用量就在里面。这是拆账的原始数据来源。如果你用 Python配置可以写成这样方便批量跑import os, json, time, csv import requests API_URL https://taotoken.net/api/v1/chat/completions API_KEY os.environ[TAOTOKEN_API_KEY] def call_model(model_id, system_prompt, user_prompt): payload { model: model_id, messages: [ {role: system, content: system_prompt}, {role: user, content: user_prompt} ], temperature: 0.3 } headers { Content-Type: application/json, Authorization: fBearer {API_KEY} } resp requests.post(API_URL, headersheaders, jsonpayload, timeout60) resp.raise_for_status() return resp.json()这段代码的关键在于它把 system 和 user 分开传返回的 usage 你原样存下来。别在这一步做任何加工原始数据最值钱。接下来是单价表模板。用 JSON 存路径建议放项目根目录pricing.json内容长这样{ your-model-id: { input_per_million: 4.0, output_per_million: 12.0, cache_hit_per_million: 1.0, currency: CNY, effective_date: 2025-01-01 }, another-model-id: { input_per_million: 2.0, output_per_million: 8.0, cache_hit_per_million: 0.5, currency: CNY, effective_date: 2025-01-01 } }单价一定要自己填真实数字并且写上生效日期。这张表是你拆账的基准填错了后面全错。缓存命中单价如果该模型不支持缓存就填和 input 一样的值或者留空并在脚本里跳过。最后是拆账脚本。它读原始 usage 记录按单价表算出 input 成本、output 成本、合计并输出占比def load_pricing(pathpricing.json): with open(path, r, encodingutf-8) as f: return json.load(f) def calc_cost(usage, pricing): input_tokens usage.get(prompt_tokens, 0) output_tokens usage.get(completion_tokens, 0) cached_tokens usage.get(cached_tokens, 0) input_cost input_tokens / 1_000_000 * pricing[input_per_million] output_cost output_tokens / 1_000_000 * pricing[output_per_million] cache_cost cached_tokens / 1_000_000 * pricing.get(cache_hit_per_million, 0) total input_cost output_cost cache_cost return { input_tokens: input_tokens, output_tokens: output_tokens, cached_tokens: cached_tokens, input_cost: round(input_cost, 6), output_cost: round(output_cost, 6), cache_cost: round(cache_cost, 6), total_cost: round(total, 6), input_ratio: round(input_cost / total, 4) if total else 0, output_ratio: round(output_cost / total, 4) if total else 0 }跑一次调用把返回的 usage 喂给calc_cost你立刻就能看到这次请求里 input 和 output 各占多少。这就是拆账的最小闭环。把这三样拼起来写个采样循环跑个几十上百次把结果写进 CSVdef sample_and_log(model_id, system_prompt, user_prompt, n50, outusage_log.csv): pricing load_pricing()[model_id] rows [] for i in range(n): data call_model(model_id, system_prompt, user_prompt) usage data.get(usage, {}) cost calc_cost(usage, pricing) cost[model] model_id cost[ts] int(time.time()) rows.append(cost) time.sleep(0.5) with open(out, w, newline, encodingutf-8) as f: writer csv.DictWriter(f, fieldnamesrows[0].keys()) writer.writeheader() writer.writerows(rows) return rows跑完你就有了一份带 input/output 拆分的原始数据。注意time.sleep(0.5)是防止请求过密按你的额度调整。采样次数建议至少 30 次太少波动大看不出真实占比。这套配置的好处是换模型只改model_id和单价表脚本不用动。多模型比价的时候你跑几轮把几份 CSV 合起来看input/output 占比一目了然。4. 验证请求与成功结果对照账单确认拆账口径配置写完得验证它真的能跑通、数据真的对得上。这一步别跳过很多人拆账拆到一半发现字段取错了前面全白干。先发一次单请求看返回结构。跑上面那段 curl你会拿到类似这样的返回字段名以实际为准{ id: chatcmpl-xxx, object: chat.completion, model: your-model-id, choices: [ { index: 0, message: {role: assistant, content: 退货流程是……}, finish_reason: stop } ], usage: { prompt_tokens: 42, completion_tokens: 88, total_tokens: 130 } }重点看usage。prompt_tokens就是这次请求的 input 用量completion_tokens是 output 用量。如果模型支持缓存可能还会多一个缓存命中字段。你把这个 usage 原样喂给calc_cost得到这次请求的 input 成本和 output 成本。验证的关键动作是拿脚本算出来的总成本去对照平台账单里这次调用的计费。TaoToken 控制台 https://taotoken.net/console 里能看到调用记录和用量你把同一时间段的记录拉出来跟脚本算的对一遍。如果对得上说明你的单价表和字段口径是对的对不上先查单价是不是填错了再查字段是不是取错了。我建议你做个对照表长这样项脚本计算平台账单差异input 用量42420output 用量88880input 成本0.0001680.0001680output 成本0.0010560.0010560合计0.0012240.0012240差异为 0 或者极小浮点误差就说明口径对齐了。有差异就逐项排查别放过。跑完单次验证再跑采样循环。50 次跑完打开usage_log.csv你会看到每一行的 input/output 拆分。把 input_cost 和 output_cost 分别求和算出占比。这一步的结果就是你业务的真实成本结构。我实测下来很多问答类业务的 input 占比会超过六成因为系统提示词和检索片段每次都全量塞进去。output 反而没想象中贵。这个结论只有拆开算才看得到盯着总数永远发现不了。验证通过之后把这份 CSV 存好它是你后续优化的基线。改任何东西之前先有基线数据改完再采样对比才知道有没有效果。还有一点验证的时候多跑几个不同模型。同一个请求A 模型和 B 模型的 input/output 用量可能不一样因为 token 切分方式不同。用统一通道的好处就是你换模型只改一个字段其他全不变对比起来干净。5. 本篇常见错排查401、local proxy failed、reading choices 与 OAuth 报错拆账过程中最容易卡住的不是算法是各种报错。这一节把几个高频错误和排查路径列清楚你遇到了直接对号入座。401 Unauthorized。这是最常见的。原因基本是 Key 没传对或者传了失效的 Key。检查三处请求头里Authorization: Bearer xxx格式对不对Key 前后有没有多余空格环境变量TAOTOKEN_API_KEY有没有真的导出。如果你在脚本里读环境变量先echo $TAOTOKEN_API_KEY确认有值。还有一种情况是 Key 被删了或者额度用尽去 https://taotoken.net/api-keys 看一眼状态。local proxy failed。这个报错通常出现在你本地配了网络代理但代理没起来或者配置冲突。排查方向检查你的 shell 里有没有http_proxy/https_proxy环境变量有的话临时 unset 掉再试。如果你用的是某些客户端工具自带的代理设置去设置里关掉。这个报错跟拆账逻辑无关纯粹是网络层没通先让请求能发出去再说。reading choices 相关报错。典型表现是脚本里访问data[choices][0]时报 KeyError 或 IndexError。原因一般是返回体结构跟你预期的不一样——可能是请求失败了返回的是错误对象而不是正常 completion。排查先把原始返回print(json.dumps(data, ensure_asciiFalse))打出来看别直接取字段。如果返回里有error字段先处理错误。另外有些模型在特定情况下 choices 为空数组取[0]就崩加个长度判断。OAuth 相关报错。如果你用的是需要 OAuth 授权的客户端比如某些编码工具报错通常跟 token 过期或授权范围有关。排查重新走一遍授权流程确认授权时勾选的权限包含你要调用的能力。OAuth 的 token 和 API Key 是两回事别混用。如果你在配置文件里同时填了 OAuth 凭证和 API Key确认工具读的是哪一个。除了报错还有几个不报错但结果不对的坑一是单价表填错。input 和 output 单价填反了算出来的占比完全颠倒。跑完第一次采样拿单次结果跟平台账单对一遍能发现这个问题。二是字段名取错。不同模型返回的 usage 字段名可能不同你如果硬编码prompt_tokens遇到用input_tokens的模型就取到 0。用统一通道能缓解这个问题但还是要打印一次原始返回确认。三是采样量太少。跑 5 次就下结论波动太大。至少 30 次最好 100 次占比才稳定。四是忘了算缓存。如果模型支持缓存且你的 input 有大量重复缓存命中的部分单价更低不算进去会高估 input 成本。把这几条对着查一遍大部分拆账过程中的坑都能填上。报错不可怕怕的是不打印原始数据就瞎猜。6. 把拆账变成日常统一 Key 下的多模型比价与预算控制拆账跑通一次不难难的是让它变成日常动作。你不可能每次调模型都手动跑脚本得把它嵌到你的调用流程里。最省事的做法在call_model返回之前顺手把 usage 和成本写一行日志。这样你正常跑业务成本数据自动就攒下来了。攒够一周按天聚合你就能看到成本趋势。哪天突然涨了翻日志定位是哪个接口、哪个模型、input 还是 output 涨的。多模型比价也靠这套。你同一个请求分别打到 A 模型和 B 模型各自记一行。跑一周把两份数据放一起input 成本、output 成本、总成本、响应质量这个得人工看横向比。比完你就知道哪个模型在你的场景下更划算。注意别只看单价要看实际用量——单价低的模型可能 output 更啰嗦总成本反而高。预算控制是拆账的最终目的。有了 input/output 拆分数据你能做两件具体的事第一设阈值告警。比如 input 单日成本超过某个数就提醒你。因为 input 通常是大头盯住它就盯住了大部分成本。第二针对性优化。input 占比高就去查系统提示词是不是太长、检索片段是不是塞太多、能不能上缓存。output 占比高才去压回答长度。优化完再采样对比基线看降了多少。TaoToken 的统一 Key 在这里的价值是你所有模型的调用都从一个入口走成本数据天然汇总在一起不用去几个平台分别拉账单再手动合并。控制台 https://taotoken.net/console 能看整体用量配合你自己的日志内外对照账就清楚了。如果你要长期跑编码类或 Agent 类任务调用量大、模型切换频繁可以考虑用 Coding Plan 这类按周期计费的方式把成本从按量波动变成可预期。具体适不适合看你自己的调用曲线——拆账数据正好能帮你判断如果你的月调用量稳定且大包月可能更划算如果波动大按量更灵活。模型对话入口在 https://taotoken.net/chat接入文档在 https://taotoken.net/docAPI Key 管理在 https://taotoken.net/api-keys这几个地址存一下后面配置和排障都用得上。最后给你一个可复用的拆账模板思路原始日志每次调用的 usage 模型 时间戳→ 单价表JSON带生效日期→ 聚合脚本按天/按模型汇总 input/output 成本→ 对比表优化前后、模型之间。这四样凑齐你的 token 成本就从一笔糊涂账变成了可追踪、可优化、可预测的数字。拆开算钱花在哪一目了然省起来才有方向。

相关新闻

零代码搭建本地知识库:FireCrawl爬取+CherryStudio构建实战指南(TaoToken 统一 Key 接入版)

零代码搭建本地知识库:FireCrawl爬取+CherryStudio构建实战指南(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/10 1:37:42 阅读更多 →
AI应用开发工程师面试题汇总(五):踩坑复盘与实战经验25问|TaoToken统一Key接入RAG与Prompt工程

AI应用开发工程师面试题汇总(五):踩坑复盘与实战经验25问|TaoToken统一Key接入RAG与Prompt工程

/* 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 1:37:42 阅读更多 →
OpenClaw技能安全执行MySQL增删改查:让大模型只懂抽参,执行器守护数据库

OpenClaw技能安全执行MySQL增删改查:让大模型只懂抽参,执行器守护数据库

/* 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 1:37:42 阅读更多 →

最新新闻

llama-swap 客户端兼容性与加载反馈详解:sendLoadingState 与 includeAliasesInList 实战指南

llama-swap 客户端兼容性与加载反馈详解:sendLoadingState 与 includeAliasesInList 实战指南

后端API网关LLM 网关人工智能大模型本地部署 【免费下载链接】llama-swap Reliable model swapping for any local OpenAI/Anthropic compatible server - llama.cpp, vllm, etc 项目地址: https://gitcode.com/gh_mirrors/ll/llama-swap 点击查看 免费下载 本文围…

2026/10/10 2:26:59 阅读更多 →
PaddleX 3.0 通用目标检测产线实战:以 FashionPedia 服装时尚元素检测为例的模型微调与部署全流程

PaddleX 3.0 通用目标检测产线实战:以 FashionPedia 服装时尚元素检测为例的模型微调与部署全流程

人工智能大模型低代码计算机视觉深度学习NLP模型推理服务RAG 【免费下载链接】PaddleX All-in-One Development Tool based on PaddlePaddle 项目地址: https://gitcode.com/paddlepaddle/PaddleX 点击查看 免费下载 导读 本文以「服装时尚元素检测」为实战场景&a…

2026/10/10 2:26:59 阅读更多 →
pnpm 生态新能力:pnpr 对 npm、Cargo 与 Python 注册表包名的统一规范化(Canonicalization)解析

pnpm 生态新能力:pnpr 对 npm、Cargo 与 Python 注册表包名的统一规范化(Canonicalization)解析

包管理器开发工具CLI 【免费下载链接】pnpm Fast, disk space efficient package manager 项目地址: https://gitcode.com/gh_mirrors/pn/pnpm 点击查看 免费下载 pnpr 是 pnpm 仓库中基于 Rust 实现的多生态包注册表/代理服务(源码位于 pnpr/crates&am…

2026/10/10 2:26:59 阅读更多 →
C盘空间管理实战指南:分析、清理与防护一次讲透

C盘空间管理实战指南:分析、清理与防护一次讲透

C盘又飘红了?这个问题几乎每隔几个月就会遇到一次。网上关于“C盘清理”的说法很多,但大部分教程要么只给几个点击步骤,要么直接让你删某个文件夹,完全不管后续会不会出问题。这篇内容我想换个思路,不搞“一键清理”那…

2026/10/10 2:26:59 阅读更多 →
横评:Claude-Red 对 SkillAttack——对话红队与 Agent Skill 红队,谁更接近真实攻击面

横评:Claude-Red 对 SkillAttack——对话红队与 Agent Skill 红队,谁更接近真实攻击面

横评:Claude-Red 对 SkillAttack——对话红队与 Agent Skill 红队,谁更接近真实攻击面 【免费下载链接】Claude-Red claude-red is a curated library of offensive security skills designed for the Claude skills system. Each skill is a structured…

2026/10/10 2:26:59 阅读更多 →
Stable Preference Optimization for LLMs: A Bilevel Approach Beyond Direct Preference Optimization

Stable Preference Optimization for LLMs: A Bilevel Approach Beyond Direct Preference Optimization

文章主要内容和创新点 主要内容 本文聚焦于大型语言模型(LLMs)的偏好对齐问题,针对直接偏好优化(Direct Preference Optimization, DPO)方法的局限性展开研究。 DPO的局限性分析:从概率演化角度对DPO进行了全面理论分析,发现DPO存在三大问题:对初始化高度敏感;可能导…

2026/10/10 2:25:58 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

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/8 15:26:32 阅读更多 →
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/10 1:36:08 阅读更多 →
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/9 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 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/8 21:13:17 阅读更多 →
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/9 6:17:20 阅读更多 →