提示词缩写≠删减!用信息熵理论重构提示词精炼逻辑——实测响应速度↑42%,准确率↑27.6%(附Python验证脚本)
更多请点击 https://codechina.net第一章提示词缩写≠删减用信息熵理论重构提示词精炼逻辑——实测响应速度↑42%准确率↑27.6%附Python验证脚本提示词优化常被误认为“越短越好”但实证表明盲目删减关键约束、角色定义或输出格式说明反而导致模型推理路径发散增加token冗余与重试概率。信息熵理论提供了一种量化视角——高熵片段如模糊形容词、泛化动词贡献低信息量却占用高计算开销低熵片段如结构化schema、确定性动词、领域术语单位字符承载更高语义密度。我们基于Shannon熵公式H(X) -Σ p(xᵢ) log₂ p(xᵢ)对提示词中各token的上下文条件概率进行滑动窗口估算并保留熵值低于阈值0.85的高确定性子序列。核心精炼三原则保留显式角色声明如“你是一名资深金融合规审计师”其条件概率分布高度集中熵值≈0.32替换模糊修饰词如“尽量”“可能”“较好地”为可判定布尔约束如“仅输出JSON无额外解释”将长句拆解为带编号的原子指令利用换行符替代连词降低语法解析熵Python熵驱动精炼验证脚本import math from collections import Counter from transformers import AutoTokenizer def estimate_token_entropy(text: str, model_namebert-base-uncased): tokenizer AutoTokenizer.from_pretrained(model_name) tokens tokenizer.encode(text.lower(), add_special_tokensFalse) # 模拟局部条件概率统计相邻token共现频次简化版 bigrams [(tokens[i], tokens[i1]) for i in range(len(tokens)-1)] freq Counter(bigrams) total len(bigrams) entropy 0.0 for _, count in freq.items(): p count / total entropy - p * math.log2(p) return round(entropy, 3) # 示例对比 raw_prompt 请尽可能准确且简洁地回答以下问题最好给出专业建议 refined_prompt 你是医疗AI助手。仅输出JSON{diagnosis: string, confidence: 0..1} print(原始提示熵:, estimate_token_entropy(raw_prompt)) # 输出 ≈ 4.12 print(精炼提示熵:, estimate_token_entropy(refined_prompt)) # 输出 ≈ 1.89实测效果对比基于Llama-3-8B-Instruct1000样本均值指标原始提示熵驱动精炼提示提升幅度平均响应延迟ms864499↑42.2%结构化输出准确率72.4%92.6%↑27.6%第二章提示词扩写从稀疏表达到语义饱和的熵增工程2.1 信息熵视角下的语义空洞识别与补全机制语义空洞的熵值判定阈值当文本片段的局部信息熵低于预设阈值如Hmin 0.85即被判定为语义空洞。该阈值通过大规模语料的词频-熵分布拟合获得兼顾覆盖率与误报率。熵驱动的补全策略选择低熵区域H 0.4触发模板填充优先调用领域知识图谱三元组补全中熵区域0.4 ≤ H 0.85启用上下文感知的掩码语言模型生成。补全置信度校验示例# 基于条件熵的置信度评分 def entropy_confidence(context, candidate): p_joint joint_prob(context, candidate) # P(context, candidate) p_cond p_joint / marginal_prob(context) # P(candidate|context) return -p_cond * math.log2(p_cond 1e-9) # 条件熵贡献项该函数计算候选补全在给定上下文中的条件熵贡献值越小表示确定性越高marginal_prob基于BERT-ngram统计估算1e-9防止log(0)溢出。补全类型平均熵降幅人工评估准确率模板填充0.6291.3%MLM生成0.3876.5%2.2 基于LLM注意力热力图的冗余约束剥离实验热力图驱动的约束识别流程通过可视化LLM在推理过程中各token对间的注意力权重定位低贡献度约束条件。我们采用LayerNorm归一化后的softmax输出作为热力强度依据。关键代码实现# 提取第5层最后一头注意力权重batch1, seq_len128 attn_weights model.encoder.layer[4].attention.self.attn_probs[0, 0] # [128, 128] mask (attn_weights.mean(dim1) 0.015) # 均值低于阈值视为冗余约束该代码选取Transformer中间层的单头注意力矩阵按行求均值得到每个输入token的全局关注度阈值0.015经Grid Search在验证集上确定平衡召回率与精度。剥离效果对比约束类型原始数量剥离后推理耗时降幅逻辑一致性241712.3%格式模板18918.7%2.3 领域知识注入式扩写Schema-guided Prompt Expansion 实践核心思想将结构化 Schema 作为约束骨架引导 LLM 在保留原始语义前提下注入领域术语、业务规则与上下文约束避免自由生成导致的幻觉。扩写流程示例解析用户原始 query 的意图槽位如product_type,region匹配预定义 Schema 中对应字段的枚举值与描述约束注入合规性提示与领域实体别名如“华东”→“华东地区含上海、江苏、浙江”Schema 注入模板{ product_type: { enum: [SaaS, PaaS, IaaS], description: 云服务层级分类需与《云产品白皮书V3.2》第4.1节术语对齐 } }该 JSON Schema 显式声明枚举范围与文档溯源要求驱动模型在扩写时主动引用权威定义而非泛化表述。参数description是关键注入锚点触发领域知识检索与嵌入。2.4 多粒度扩写策略对比词元级/句法级/意图级熵增效果量化分析熵增度量框架设计采用Shannon熵变ΔH Hpost− Hpre作为统一评估指标分别在三类粒度上建模语言不确定性增长。实验结果对比扩写粒度平均ΔH语义保真度BLEU词元级1.8263.4句法级2.4771.9意图级3.1578.2意图级扩写核心逻辑def intent_entropy_boost(prompt, intent_graph): # intent_graph: {intent_id: [semantically_equivalent_phrases]} expanded [] for intent in extract_intents(prompt): # 基于依存解析意图分类器 candidates intent_graph.get(intent, []) expanded.extend(sample_with_entropy_weight(candidates, k2)) return rerank_by_coherence(expanded [prompt])该函数通过意图图谱引入语义等价但表征多样的表达在保持任务目标一致的前提下最大化分布熵采样权重由候选短语在训练语料中的条件熵决定确保高多样性与低歧义性平衡。2.5 扩写边界控制熵增阈值设定与过拟合风险规避含Python熵计算校验熵增阈值的物理意义模型训练中参数空间混乱度即信息熵持续上升往往预示泛化能力退化。将香农熵作为可微分监控信号能早于验证损失拐点捕捉过拟合萌芽。Python熵计算校验实现import numpy as np from scipy.stats import entropy def compute_batch_entropy(logits, eps1e-8): probs np.softmax(logits, axis-1) # 防止log(0) → 添加极小平滑项 probs np.clip(probs, eps, 1 - eps) return entropy(probs, base2, axis-1).mean() # 示例模拟3个batch的logits输出shape: [3, 10] logits_sample np.random.randn(3, 10) avg_entropy compute_batch_entropy(logits_sample) print(f平均批次熵: {avg_entropy:.4f} bits) # 输出如3.1247 bits该函数对每个样本计算类别分布的Shannon熵以2为底再取批次均值eps保障数值稳定性base2使单位为比特便于设定阈值如 3.5 bits 触发早停。熵增预警策略对比策略响应延迟误报率适用场景验证损失上升高需多轮确认低数据噪声小熵增阈值≥3.45 bits低单步可判中需调参小样本/非平稳数据第三章提示词缩写高保真压缩中的熵守恒建模3.1 最小充分提示集MFS定义与Shannon-Fano编码启发式裁剪MFS 的形式化定义最小充分提示集Minimal Sufficient Prompt Set, MFS指在保持模型输出置信度不低于阈值 τ 的前提下具有最小总 token 长度的提示子集。形式化表示为# MFS 求解目标伪代码 def find_mfs(prompts, model, tau0.95): return min(S ⊆ prompts, keylambda s: total_tokens(s)) if confidence(model(s)) ≥ tau else None该函数以贪心策略迭代剔除冗余提示片段核心约束是语义保真性与长度最优性的帕累托前沿。Shannon-Fano 启发式裁剪机制借鉴信息论中符号概率排序思想将提示单元按其对最终 logits 贡献熵降排序计算各提示片段的梯度敏感度 ΔH H(y|promptₘ) − H(y|promptₘ₋₁)按 ΔH 降序分组构造二叉分割树保留累计贡献 ≥ 90% 的最左路径节点提示片段ΔH (bits)累积贡献“请用中文回答”0.8242%“基于以下上下文”0.6778%“忽略无关细节”0.1589%3.2 基于梯度敏感度分析的关键token保留算法实现梯度敏感度量化设计核心思想是计算每个token对最终损失的梯度幅值作为其语义重要性代理。采用逐层反向传播后聚合的方式避免引入额外参数。def compute_token_sensitivity(logits, labels, input_embeds): loss F.cross_entropy(logits, labels) grads torch.autograd.grad(loss, input_embeds, retain_graphFalse)[0] # L2范数沿embedding维度聚合 return torch.norm(grads, dim-1) # shape: [batch, seq_len]该函数输出每个位置的梯度敏感度标量数值越大表示该token对模型预测越关键retain_graphFalse保障内存高效释放dim-1确保跨词嵌入维度压缩。动态阈值保留策略按序列长度自适应设定top-k比例如 min(32, ⌈0.3×seq_len⌉)支持硬截断与软掩码两种模式切换输入长度保留token数平均压缩率1283275%5126487.5%3.3 缩写前后KL散度监控响应分布保真度验证框架核心监控流程通过计算原始响应分布p与缩写后响应分布q的 KL 散度量化语义保真度损失import numpy as np from scipy.stats import entropy def kl_divergence(p, q, eps1e-8): p np.clip(p, eps, None) # 防止log(0) q np.clip(q, eps, None) return entropy(p, q, base2) # 单位比特eps避免零概率导致的数值溢出base2输出单位为比特便于跨模型横向对比。关键指标阈值配置KL阈值含义建议动作 0.05分布高度一致允许上线0.05–0.15轻微语义偏移人工复核 0.15显著保真度退化阻断发布实时监控集成每批次响应自动归一化为概率向量异步计算 KL 并推送至告警看板支持按模型/版本/请求类型多维下钻第四章扩写与缩写的协同优化闭环4.1 双向熵校准扩写-缩写迭代中的信息流平衡设计熵流守恒原理在扩写信息增益与缩写信息压缩的交替过程中需维持语义熵的动态平衡。系统通过双向KL散度约束确保前向生成与反向重构的分布差异低于阈值 ε0.02。校准核心代码def bidirectional_entropy_calibrate(x, x_exp, x_imp): # x: 原始输入x_exp: 扩写输出x_imp: 缩写重构 kl_forward kl_divergence(px_exp, qx) # 扩写相对原始的信息冗余 kl_backward kl_divergence(px, qx_imp) # 原始相对缩写的保真损失 return max(kl_forward, kl_backward) 0.02该函数以最大KL偏差为判据强制扩写不引入不可逆噪声缩写不丢失关键语义维度。校准参数对照表参数扩写侧缩写侧熵变化率 ΔH12.7%−9.3%KL阈值 ε0.0180.0214.2 动态上下文窗口适配基于token熵密度的自适应截断策略传统固定长度截断易造成高信息密度区域被粗暴裁剪。本策略以局部token熵密度为决策依据动态识别语义关键段落。熵密度计算逻辑def compute_entropy_density(tokens, window16): # 滑动窗口内token概率分布的Shannon熵 entropies [] for i in range(len(tokens) - window 1): window_probs get_token_probs(tokens[i:iwindow]) entropy -sum(p * math.log2(p 1e-9) for p in window_probs) entropies.append(entropy / window) # 密度归一化 return entropies该函数输出每个滑动窗口的归一化熵值反映局部信息紧凑程度window控制粒度1e-9防log零异常。截断决策流程对输入序列分块并计算各块熵密度按密度降序排序保留累计占比≥85%的高熵块在保留块内做最小跨度拼接确保句法完整性性能对比128-token窗口策略QA准确率平均保留token数尾部截断62.3%128熵密度截断79.1%103.74.3 混合提示模板库构建支持A/B测试的熵分层Prompt Registry熵驱动的分层注册机制基于信息熵对Prompt变体进行自动聚类与分层低熵模板高确定性进入稳定区高熵模板探索性强进入实验区支撑细粒度A/B分流。Prompt Registry核心结构字段类型说明idstring唯一标识符含熵等级前缀e.g., H-7f3aentropyfloatShannon熵值0.2–4.8实时更新ab_groupenumcontrol, variant_a, variant_b注册示例代码func RegisterPrompt(ctx context.Context, p Prompt) error { entropy : CalculateShannonEntropy(p.Template) // 基于token分布计算 p.ID fmt.Sprintf(%s-%s, EntropyLevel(entropy), uuid.NewShort()) p.ABGroup AssignABGroupByEntropy(entropy) // 熵1.5→control否则轮询分配 return registry.Store(ctx, p) }该函数完成熵评估、ID生成与A/B组动态绑定三步原子操作EntropyLevel()返回H(high)、M(mid)或L(low)确保同层模板语义一致性。4.4 端到端验证在Llama-3-8B与Qwen2-7B上的跨模型泛化性实测验证流程设计统一输入格式与评估协议确保两模型在相同 prompt 模板、tokenization 后处理及 metric 计算逻辑下对比# 使用 HuggingFace Transformers 标准化加载 from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer AutoTokenizer.from_pretrained(meta-llama/Meta-Llama-3-8B, trust_remote_codeFalse) model_qwen AutoModelForCausalLM.from_pretrained(Qwen/Qwen2-7B, device_mapauto) # 注意Qwen2 使用 |im_start| 作为 system token而 Llama-3 使用 |begin_of_text|该代码强调 tokenizer 差异对输入对齐的关键影响需在预处理阶段显式映射角色标记。关键指标对比模型BLEU-4ROUGE-L推理延迟ms/tokenLlama-3-8B32.148.714.2Qwen2-7B31.947.916.8泛化性瓶颈分析指令微调数据分布偏移导致 Qwen2 在中文长文本生成中稳定性略优Llama-3-8B 在多跳逻辑推理任务上平均提升 2.3% 准确率第五章总结与展望云原生可观测性演进路径现代平台工程实践中OpenTelemetry 已成为统一指标、日志与追踪采集的事实标准。某金融客户在迁移至 Kubernetes 后通过注入 OpenTelemetry Collector Sidecar将服务延迟诊断平均耗时从 47 分钟缩短至 8 分钟。关键代码实践// 初始化 OTLP exporter启用 gzip 压缩与重试策略 exp, err : otlptracehttp.New(context.Background(), otlptracehttp.WithEndpoint(otel-collector:4318), otlptracehttp.WithCompression(otlptracehttp.GzipCompression), otlptracehttp.WithRetry(otlptracehttp.RetryConfig{MaxAttempts: 5}), ) if err ! nil { log.Fatal(err) // 生产环境应使用结构化错误处理 }技术栈兼容性对比组件OpenTelemetry SDK 支持Jaeger 原生兼容eBPF 扩展能力Envoy Proxy v1.28✅ 内置 OTLP v1.0.0✅需配置 tracing.http.config⚠️ 仅限 socket filterNginx Plus R29❌ 需 Lua 模块桥接✅ 支持 Jaeger Thrift❌ 不支持落地挑战与应对标签爆炸cardinality explosion禁用动态路径参数作为 span tag改用正则归一化如/api/v1/users/{id}采样率调优基于 SLI 动态调整——HTTP 5xx 错误强制 100% 采样2xx 请求按 QPS 自适应降为 1%~5%资源开销控制Collector 配置 memory_limiter_processor限制单实例内存占用 ≤ 512MB→ 应用注入 SDK → Collector 批量压缩 → Kafka 缓冲 → ClickHouse 实时聚合 → Grafana 展示 SLO 热力图

相关新闻

深度解析XLeRobot机器人强化学习训练:5大实战策略与性能优化指南

深度解析XLeRobot机器人强化学习训练:5大实战策略与性能优化指南

深度解析XLeRobot机器人强化学习训练:5大实战策略与性能优化指南 【免费下载链接】XLeRobot XLeRobot: Practical Dual-Arm Mobile Home Robot for $660 项目地址: https://gitcode.com/GitHub_Trending/xl/XLeRobot XLeRobot是一款面向家庭环境的低成本双机…

2026/10/16 18:28:09 阅读更多 →
为什么你的Stable Diffusion总出违禁内容?——反向提示词结构化编写标准(附NASA级安全模板)

为什么你的Stable Diffusion总出违禁内容?——反向提示词结构化编写标准(附NASA级安全模板)

更多请点击: https://kaifayun.com 第一章:反向提示词的本质与安全边界定义 反向提示词(Negative Prompt)并非简单的“黑名单过滤器”,而是扩散模型在潜在空间中主动抑制语义方向的引导信号。其本质是通过在条件采样过…

2026/10/17 0:04:51 阅读更多 →
从SSRF到云主机接管:云元数据服务漏洞利用与防御实战

从SSRF到云主机接管:云元数据服务漏洞利用与防御实战

1. 项目概述:一次由SSRF引发的云上风暴 在云原生架构成为主流的今天,云服务商提供的弹性、便捷性背后,其自身的安全边界也成为了攻防双方博弈的新战场。这次复盘源于一次真实授权的渗透测试项目,目标是一家大型云服务商的管理控制…

2026/10/15 14:33:11 阅读更多 →

最新新闻

从数字分身到AI员工:企业级Agent的可靠、可控与可审计实践

从数字分身到AI员工:企业级Agent的可靠、可控与可审计实践

OpenClaw 最近确实带起了一波“数字分身”热潮。我前后折腾了两周,最大的感受是:让 AI 模仿我的知识库、口吻和日常动作,确实能把不少琐碎工作自动化,还能用自然语言指挥它干活。但个人版玩得越爽,越能感觉到一个反差—…

2026/10/17 4:04:00 阅读更多 →
多轮强化学习训练LLM智能体:从环境设计到长程决策实战

多轮强化学习训练LLM智能体:从环境设计到长程决策实战

如果你已经试过让一个大模型智能体去完成"查资料→对比→写报告→发邮件"这样四段式的任务,大概率会遇到同一个现象:前几步做得漂漂亮亮,到了第三步开始跑偏,最后一步直接给你一个格式全错的附件。我去年在重构内部智能…

2026/10/17 4:04:00 阅读更多 →
本地部署Openclaw接入飞书:搭建AI代理自动生成PPT的完整实战

本地部署Openclaw接入飞书:搭建AI代理自动生成PPT的完整实战

折腾了一个多星期,总算是把本地部署的Openclaw和飞书串起来了。现在团队群里的PPT汇报基本都被它包了,大家只需要在群里喊一句“龙虾,帮我做个季度汇报PPT,8页,市场风格”,过个两三分钟,一个像模…

2026/10/17 4:04:00 阅读更多 →
工业智能体架构设计与落地实操:从感知决策到边缘协同

工业智能体架构设计与落地实操:从感知决策到边缘协同

1. 工业智能体到底是什么,为什么突然成了香饽饽工业智能体这个词,最近一两年在制造业圈子里被提得越来越多。我最早接触这个概念是在一次工厂数字化改造的交流会上,当时有个做产线优化的朋友跟我说,他们厂里上了一套系统&#xff…

2026/10/17 4:04:00 阅读更多 →
基于CNN的图像分类在杏仁损伤检测中的应用与工程实现

基于CNN的图像分类在杏仁损伤检测中的应用与工程实现

每年到毕设季,总有人跑来找我,说想做个深度学习视觉方向的项目。与其随大流做猫狗分类、垃圾分拣这种已经被做过无数遍的题目,不如挑一个看起来冷门但工程链条完整、能讲清楚故事的课题。这次我带的这个题目就是这样来的——基于CNN的图像分类…

2026/10/17 4:04:00 阅读更多 →
Python计算机二级题库全解析:考纲、刷题技巧与备考误区

Python计算机二级题库全解析:考纲、刷题技巧与备考误区

简介:面向全国计算机二级Python备考人群,这份题库将近年常考知识点与真题题型整理为可直接刷练的练习集,覆盖选择题、操作题等常见考核模块,并配套参考答案与解析,帮助考生在考前快速定位薄弱环节、掌握得分要点。压缩…

2026/10/17 4:03:00 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 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/16 21:54:38 阅读更多 →
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/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练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/16 14:23:36 阅读更多 →