本地知识库问答系统实战:从RAG架构到大模型部署的完整指南
1. 项目概述为什么要做本地知识库问答做技术这么多年我越来越频繁地遇到这样一个场景公司内部积累了上百份产品文档、几十个项目的复盘纪要、还有散落在各处的技术方案平时想知道“上次那个线上事故的根因总结是什么”“某台设备的出厂参数上限是多少”只能靠找人问、翻聊天记录、挨个打开文档搜索。信息明明就在那里却怎么也“够不着”。后来我想清楚了缺的不是资料管理工具而是一个能理解这些资料、用自然语言帮我检索和总结的东西。于是就有了这次项目在本地搭建一套私有知识库问答系统。说直白点就是把自己的文档喂给一个大语言模型然后在网页上或者命令行里问它问题它从这些文档里找答案并回答。这个方案的核心价值在于数据不出本地、回答带出处、定制性完全由自己掌控。它适合谁用适合那些对数据隐私有要求、文档量不小且想提升检索效率的技术团队、个人知识管理者也适合单纯想折腾大模型应用的开发者。为什么非要“本地”而不是直接用各家云厂商的在线服务我在实际评估后发现抛开成本因素很多内部文档根本不适合传到外部接口光是合规那一关就过不去。如果只是用现成的问答工具它读不到你的私有知识效果也打折。而本地部署这条路从选型到调优每个环节都自己说了算虽然要踩的坑不少但走通之后收益非常明显。我在这个项目里把整个链路的选型思路、部署命令、参数调整和排错过程都完整记录了下来。2. 方案选型与技术拆解2.1 本地大模型怎么选第一步得选一个能在自己机器上跑得动的模型。我评估过好几条路线一类是通用聊天模型比如各类中英文对话模型的中小尺寸版本另一类是专门针对中文优化的模型还有一类是多模态模型虽然能看图但对纯文档问答来说有点浪费算力。我的取舍标准主要有三条第一模型本身有多大的上下文窗口。知识库问答里经常要把检索到的片段拼进提示词如果上下文窗口太小稍微长一点的文档就塞不进去。第二指令跟随能力是否扎实。大模型聊天和严格按格式输出答案是两码事我需要它具备稳定的“只根据给定材料回答”的能力而不是自由发挥。第三显存占用要友好。我手上是一块消费级显卡24GB显存这意味着7B-14B参数的量化模型比较合适再大就要卡到没法用。实际选型时我还做了一组对比测试让几个候选模型回答同一个涉及文档细节的问题重点关注两点是否老老实实从材料里找答案以及是否会给出来源片段。最终留下的是7B级别、经过中文指令微调的模型量化掉之后体积大约5-6GB显存占用还能留出余量给检索侧。如果你显卡只有8GB显存可以选更小尺寸的4B量化版效果弱一些但流程完全能跑通。2.2 RAG架构的核心逻辑整套系统用的技术框架叫RAG也就是检索增强生成。原理并不复杂先把你手里的文档切成一小块一小块每块用向量模型转成一串数字表示这个数字表示就叫向量语义相近的两个片段向量在空间里离得近用户提问时同样把问题转成向量去向量数据库里找最接近的几块文档最后把这些文档块连同问题一起交给大模型让模型基于这些材料组织回答。我画过一张特别简单的类比帮助自己理解这就像考试开卷你不需要背完整本教材只需要知道答案在第几章第几节翻到那一页抄下来就能答题。RAG里的“向量检索”就是那个帮你翻书的动作大模型则是那个负责用找到的内容写答案的人。没有检索环节大模型只能凭训练时记住的东西回答遇到专业私有文档就会一本正经地“编”加了检索大模型被锁在资料范围内幻觉问题大幅缓解。为什么不是直接把整个文档库全塞进上下文让模型回答这不现实。按500GB资料算全部文本化之后可能有上千万个token任何模型的上下文窗口都装不下。退一步说就算硬塞进去模型对长文本中细节信息的关注度会急剧下降你问一个埋藏在第200页的小细节它大概率答不准。所以“先检索再生成”几乎是目前工程上最优的解法。2.3 Embedding模型与向量数据库的选择知识库问答的效果一半取决于检索而检索的质量又取决于embedding模型的语义理解能力。embedding模型的本职工作是“衡量两段文字是否在说同一件事”选得好不好会直接反映在最终回答上。我用过几款开源的中文embedding模型对比下来发现BGE系列在中文长文本和领域术语上的表现比较均衡于是最终选定了它。向量数据库这块可选的项目很多各有侧重。我评估了几种主流方案后选了轻量级的Qdrant。理由很实际作为RAG场景使用它部署简单一个容器就能拉起来支持多种向量索引类型官方Python客户端易用社区案例丰富遇到问题搜得到答案。替代方案里Milvus我更倾向于当成大规模集群场景用几十个节点那种规模才有优势单机场景下它的运维成本有点高。Chroma上手最快但性能和高级检索能力都有些欠缺数据量大了容易露怯。选型这件事我到最后发现一个规律不存在“最好”的工具只存在“对你的场景足够好”的工具。我的场景就是单机、中等数据量、重视隐私、希望快速出效果所以技术栈自然收敛到“文本模型向量模型QdrantWeb框架”这套组合上。3. 环境准备与基础部署3.1 硬件与系统要求先说我这次部署的环境一台装了Ubuntu的机器32GB内存一块24GB显存的显卡。硬盘上划了200GB给数据和模型文件。这套配置在本地大模型应用里属于中规中矩CPU性能不敏感主要看内存和显存。如果你的配置比我低也不是不能跑但要适当调低预期。8GB显存可以跑4B量化模型速度慢一些16GB显存可以跑7B量化模型基本可用24GB以上就从容很多甚至能给文档重排模型留出位置。内存方面加载模型本身不占太多系统内存但向量索引和数据缓存会占用不少32GB内存属于舒服区16GB的话需要精简文档库规模或者换更紧凑的索引类型。磁盘IO也会影响文档批量入库的速度建议系统盘和数据盘分离免得索引写入时把系统IO堵死。系统环境上我用的是Docker来跑向量数据库和Web服务本地模型则直接跑在物理环境下因为要充分利用GPU并方便调整推理参数。这一步没太多花活倒是环境变量和版本对齐值得留意踩过不少版本不匹配的坑后面专门讲。3.2 模型文件与推理服务模型文件我直接下载量化后的开源格式这里建议统一走Hugging Face官方仓库或镜像站文件名和SHA256对得上才放心。下载这一步我建议耐心些断点续传工具要用起来好几GB的文件中断重下很影响心情。推理服务这块我用的是vLLM这个高性能推理引擎。为什么不直接用transformers库跑起来就完事因为知识库问答场景里用户提问是高频、间歇性的vLLM在并发调度、显存管理、推理速度上都有实打实的优势尤其是它维护了一个显存缓存连续回答多个问题时Token复用效率高很多。对于只自己用、不追求并发的场景也可以直接用Ollama这类全家桶方案一条命令拉模型起来代价是可定制性弱一些。启动推理服务时有一个重要细节模型的上下文长度参数。需要根据显卡显存合理设置太长会爆显存太短会限制回答长文的能力。我最终设成够用的范围配合检索侧文档切片控制在合理长度整条链路跑起来很稳。另一个参数是量化格式的选择市面上常见的几种量化格式各有特点我综合速度和精度选了性价比较高的那种。3.3 Web界面与API服务整套系统跑通之后不可能每次都去命令行敲代码提问于是配了一个开源的Web界面封装底层推理API支持会话式问答。原始界面长得很朴素但我恰恰喜欢这种“功能优先”的东西它自带的知识库管理、聊天记录和来源显示功能已经能满足日常需要我只需要做两件事一是配置好API地址让它指向本机推理服务二是调整界面里“搜索TopK”检索返回几块文档和“回答最大长度”这两个参数。API端vLLM暴露出来的接口兼容OpenAI格式这意味着现有写好的各种调用脚本几乎不用改换个base_url就能直接复用。我把这个便利性看得挺重因为这意味着后续如果想写自动化脚本批量问文档完全可以用一套已经熟悉的工具链学习成本很低。4. 知识库构建与向量化处理4.1 文档解析与清洗做知识库问答最终效果的上限取决于文档处理的质量。不是说随便把PDF丢进去就完事那样检索出来的片段往往是乱码、页眉、水印混杂的垃圾。我踩过的最大的坑就在这里所以单独把文档解析这一步拿出来讲。先说格式。PDF是最常见的但也是坑最多的。我试过几种解析方案最终留下了一个基于深度学习版面识别的方案它能识别出标题、正文、表格区域把文本按阅读顺序抽出来。对比明显之前用简单规则解析出来的PDF问个问题检索出来的片段里全是页眉和编号换了版面识别之后干净很多。表格类内容建议单独处理一种做法是转成Markdown表格再入库另一种是干脆把表格区域截成图片等需要时靠多模态模型识别——后者成本高我建议优先尝试文本化。文本清洗也不容忽视。原始文档里经常包含各种特殊字符、多余空行、乱码的控制符。我写了一个清洗脚本按顺序做这几件事统一换行符剔除不可见字符把全角字符转半角合并异常重复的空行按文档结构识别并标注大标题。清洗完的文本我会抽样目检确认没有奇怪的符号残留再进行下一步。4.2 文本切片策略切片的逻辑通俗说就是把文档切成若干有独立含义的小段落后续检索和生成都以“块”为单位。切片切得好不好直接影响两个关键指标检索召回是不是命中要害、模型回答时拿到的上下文够不够用。我参考了主流的切片思路最终用的是“按结构层级”加“按长度”的双重策略。具体做法是先用文档的标题结构把大章节分开再在每个章节内部按固定长度比如400到600个字符进一步切割同时保留相邻片段的一部分重叠比如80个字符。重叠的目的是为了防止一个完整信息刚好被切在边界上两边都缺了一半。切完还要做一步过滤如果某个片段清洗后太短比如少于30个字符大概率是目录、页码、孤立标题这类无意义内容直接丢掉。反之太长的片段也不留因为检索时向量表示会被无关信息“稀释”回答时占用的上下文又太大整体效果反而下降。这一步看起来无足轻重实际调参时它对精度的贡献非常明显。4.3 向量化入库清洗和切片完成后进入embedding和入库环节。我写了一个批处理脚本读取所有切片文本调用本机的embedding模型接口逐个转成向量然后写入Qdrant的collection里同时把原文本和文档元信息一并存进去。批量入库时有几个性能优化点值得说。第一个是并发embedding接口支持批量我把每批大小调到32条至64条测下来吞吐和显存占用最平衡。第二个是向量维度要和embedding模型匹配这个很容易忽略我最初就因为配置错了维度入库直接报错。第三个是要用Qdrant的批量upsert而不是逐条insert速度差距大概有数量级。等到向量索引构建完毕还需要做一个采样测试手动输入几个问题看看TopK检索返回的片段是不是符合预期。这一步建议认真做如果检索出来牛头不对马嘴不用急着调大模型提示词先回头检查切片和embedding更有效。5. 检索与生成链路的实操实现5.1 从用户提问到检索结果的全过程当用户输入一个问题后系统内部经历了好几步。我在代码里接下这个流程一步步说清楚。第一步把用户问题标准化处理去掉多余的标点和空白。第二步调用embedding模型把问题转成向量。这里要注意一个问题问题通常短促且缺乏上下文我试过直接把原问题转向量效果一般后来参考社区做法给问题加了一个固定的改写前缀让它变成一个更利于检索的句式TopK命中的准确率明显提升。第三步用这个向量去Qdrant里查最相似的N个片段我用的是余弦相似度返回时还带上了每条的分数方便我观察阈值。第四步很关键叫重排。向量检索本质上是语义模糊匹配偶尔会把意思相近但并非答案的片段排在最前面。我在检索结果后面加了一个重排序环节用专门的rerank模型对Top20结果再做一次精细打分然后取前5条给大模型。重排序这一步增加的开销不大但对回答准确率的提升却非常明显我后来把它当作标准配置没有特殊情况不再去掉。第五步把重排后的片段按“与问题相关度”从高到低拼接成上下文连同用户问题一起组装成提示词模板发送给推理服务生成回答。提示词模板里我明确写了要求模型只能依据提供的材料回答、材料没有提到时直接承认不知道、并且每句话尽量标出对应的片段编号这样模型回答时会更克制。5.2 提示词模板与参数调优心得提示词是这个链路里成本最低但效果上限最高的“旋钮”。我不厌其烦地调整过很多版分享一个比较满意的结构你是一个严谨的知识库问答助手。请仅根据下面提供的文档片段回答用户问题并标注信息来源。 注意如果片段中没有足够信息请明确说“当前资料中未找到相关信息”不得自行编造。回答应使用与文档相同的语言。引用的内容需严格来自给定片段不得扩展。文档片段如下 【片段1】xxx 【片段2】xxx用户问题xxx这套模板看似啰嗦实测下来效果最稳。我对比过不加约束的版本模型确实会“自由发挥”尤其是在资料覆盖不足时它会凭常识强行补充一段看似合理的答案。RAG系统里最怕这种情况因为用户分不清哪句话是资料里的哪句是模型编的。推理参数上温度temperature我设置在较低的档位。原因很直接知识库问答要的是稳定、可复现的答案不需要太强的创造性。top_p保持默认范围就行这两者配合可以避免模型在关键实体上发散。回答最大长度我会调到适中太短会截断关键结论太长会浪费显存缓存。5.3 多轮对话中的上下文处理技巧实际用起来用户不会每次都把问题描述得清清楚楚比如问了“QPS太高怎么办”下一句跟着“那怎么优化超时设置”这里的“那”指的是什么模型得结合历史才能明白。多轮对话处理不好答非所问是家常便饭。我的做法是对历史对话做压缩改写而不是简单地把所有历史消息全部拼接进上下文。具体思路是每次用户提问时先拿最近两轮对话和当前问题让模型生成一个独立、自包含的检索查询语句比如“那怎么优化超时设置”会被改写为“当系统QPS过高导致超时时如何优化超时设置”。这一步做完再拿改写后的查询去走检索流程准确率会提升很多。还有一个细节是来源引用。我在Web界面上能看到每条回答引用了哪些片段点击能跳到原始文档位置。这个功能在调试阶段极其有用——如果回答不对我能立刻看出是检索错了还是生成错了不用瞎猜。实际使用中用户也明显更信任“能看到出处”的回答。6. 常见问题与排查技巧实录6.1 推理服务显存溢出与服务崩溃这个坑我在调试期遇到过好几次。症状很统一推理服务运行一段时间后日志报显存不足然后服务自动退出。最开始我以为是模型太大后来排查发现真正原因是连续提问触发了显存碎片化。每次对话的KV Cache在显存里分配又释放碎片多了即使显存总量够也会申请失败。解决办法有几个层面一是在推理启动参数里加上显存利用率的预留池让缓存管理更积极二是定时清理无用的会话缓存三是如果用户量多起来建议把服务的最大并发数限死宁可排队等待也别让请求把显存撑爆。我是三种手段一起用的再也没出现过崩溃。6.2 向量检索召回率低如果你发现问一个问题检索出来的片段文不对题大概率不是embedding模型的问题而是前处理环节出毛病了。我把自己遇到的情况列个小表供你排查时对照现象常见原因处理方向检索结果包含大量杂讯文档清洗不干净检查切片前是否剔除了页眉页脚、目录、水印关键词对但语义不对切片粒度太大调小切片长度增加重叠检索不到内容embedding维度不匹配检查变量配置核对模型输出维度检索结果单一TopK太小适当增大召回数量并加上重排序我自己最常犯的错是偷懒跳过清洗步骤结果后面花在调参上的时间远远超过洗文档的时间。现在我把“清洗-切片-抽样验证”固定为入库前必须走完的三道工序宁可在前处理多花一小时也绝不到上线后再头疼。6.3 回答质量差但检索似乎没问题这种情况更隐蔽因为检索出来的片段看着都挨着边但模型回答就是不如预期。我排查了几轮后发现问题往往出在上下文拼配上多个片段拼在一起时顺序不对或者中间混入了无关片段模型被“带偏”了。我后来做了三处修改第一按相关度分数降序排列片段最相关的放最前面第二在上文里对每个片段加上标题前缀比如“【产品手册-设备参数】”让模型知道这句出自哪个文档第三过滤掉分数过低的片段宁可让模型面对信息不足直接说不知道也不给它糊弄的机会。改完之后回答乱七八糊的情况基本消失了。6.4 常用检查命令与调试工具日常运维时几个命令帮我快速定位问题。一个是查看推理服务日志能看到每秒处理的请求数和显存占用另一个是直接调用API接口用一个简单的curl命令模拟问题绕开Web界面的干扰直接看最原始的输出再有就是查询Qdrant里的向量数量有没有异常减少比如批量误删会造成数据量骤降。这些命令本身没什么技术含量但真出问题的时候有它们能省下大量翻阅日志的功夫。7. 最终体验与个人改进方向整个系统跑通之后我的使用体验可以说超过了预期。现在遇到“某个故障单里提到的超时阈值是多少”这类问题直接在对话框一敲十几秒内给出答案还带着出处片段。这种体验在之前的文档堆里是完全无法想象的。我个人体会最深的一点是大模型只是这个系统里最容易吸引眼球的部分真正决定系统天花板的反而是检索链路的扎实程度。花了三分力气部署模型要用七分力气打磨文档清洗、切片、检索和重排序。最后分享一个想继续扩展的方向目前检索的单位是文本片段如果想处理更多扫描版PDF或者带截图的文档就得引入视觉理解能力把图片和文字联合起来做向量化这是我把这套单模态知识库升级成多模态知识库的一个明确路径。另外现在入库是“全量重来”后续我会改成增量式更新配合一个上游文档变更监听机制让知识库始终跟着源文档走不用每次手动重建索引。

相关新闻

思科ONS15454配置实战:从机箱选型到CTC业务开通与运维

思科ONS15454配置实战:从机箱选型到CTC业务开通与运维

简介:面向需要部署和维护Cisco ONS15454光网络系统的SDH工程师,这份教学课件以《ONS15454 SDH配置指南》为核心,系统梳理从客户端端口、SFP模块到用户电路(Circuit)的完整配置路径。内容按操作流程编排,先介…

2026/10/9 14:25:47 阅读更多 →
基于Python的网络舆情分析系统:源码、数据库与论文写作全流程

基于Python的网络舆情分析系统:源码、数据库与论文写作全流程

简介:基于Python与MySQL的网络舆情分析系统毕业论文,适合计算机相关专业学生、网络管理相关部门开发人员及毕业设计选题者参考。论文以新浪微博等平台为背景,针对特定城市或地区的关键词言论,设计了一套集言论分析、言论管理、用户…

2026/10/9 14:24:46 阅读更多 →
数控机床数据采集系统:从点位表到边缘网关部署的实战指南

数控机床数据采集系统:从点位表到边缘网关部署的实战指南

简介:《数控机床数据采集系统方案》面向工业互联网与制造业信息化领域的工程师、MES系统开发人员,系统讲解数控机床实时监控与数据采集的整体设计。方案采用B/S架构,服务器端负责参数配置、数据库交互、权限管理及统计分析,客户端…

2026/10/9 14:24:46 阅读更多 →

最新新闻

燃料智能化管理系统解决方案:从PPT到落地的数据链路与接口设计

燃料智能化管理系统解决方案:从PPT到落地的数据链路与接口设计

简介:这份PPT方案面向火力发电企业的燃料管理与信息化建设人员,系统梳理了燃料智能化管理的整体解决思路。内容从燃料成本约占火电总成本七成的行业背景切入,阐述自2012年以来各大发电集团推动燃料系统智能化升级的动因,并围绕业务…

2026/10/9 14:56:28 阅读更多 →
X切LNOI波导倍频仿真:COMSOL建模与相位匹配实战

X切LNOI波导倍频仿真:COMSOL建模与相位匹配实战

最近研究X切型绝缘体上铌酸锂薄膜(LNOI)的倍频(SHG)转化效率,COMSOL仿真前前后后跑了一个多月,越跑越觉得这东西比想象中有意思得多。LNOI这两年几乎是集成光子学里的“顶流”平台,几百纳米厚的…

2026/10/9 14:56:28 阅读更多 →
智慧零碳园区解决方案:从66页PPT到落地的四层架构与避坑指南

智慧零碳园区解决方案:从66页PPT到落地的四层架构与避坑指南

简介:这份《智慧零碳园区解决方案》PPT面向园区规划者、能源管理者、智慧城市方案商及政企数字化转型从业者,围绕“有温度、善感知、智生长”的数字生命体理念,系统梳理零碳园区从背景认知到落地运营的完整路径。资源包仅含1个pptx文件&#…

2026/10/9 14:56:28 阅读更多 →
信号完整性补充:从时序预算到实际工程排查

信号完整性补充:从时序预算到实际工程排查

写一篇关于"什么是信号完整性?补充"的技术博文,这事儿说难不难,说简单也不简单。因为在很多硬件工程师眼里,信号完整性(Signal Integrity)已经是个被讲烂了的话题,随便一搜就是一堆解…

2026/10/9 14:56:28 阅读更多 →
Altium Designer 17.0.6安装避坑指南:从环境检查到静默部署的完整方案

Altium Designer 17.0.6安装避坑指南:从环境检查到静默部署的完整方案

简介:Altium Designer 17.0.6安装教程PDF,面向电子设计工程师及PCB初学者,解决Altium Designer软件安装、破解与汉化流程不熟悉的问题。资源包内共1个pdf文件,整体大小3.03MB,内容紧凑,以图文步骤方式组织&…

2026/10/9 14:55:27 阅读更多 →
5G网络切片隔离性验证:从测试设计到pytest自动化落地

5G网络切片隔离性验证:从测试设计到pytest自动化落地

去年做5G行业专网交付的时候,客户在验收会上问了我一个很要命的问题:"你说切片隔离,那我车间里的视频监控流量和AGV控制流量在同一个基站下跑,监控业务能不能把控制业务挤垮?你拿什么证明它不会?"…

2026/10/9 14:55:27 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

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/8 15:26:40 阅读更多 →
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/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练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 阅读更多 →