openJiuwen DeepSearch 同义扩写提示词(synonym_rewrite_expand)深度解析:保真扩写的设计约束与完整调用链
人工智能大模型AI AgentRAG深度研究搜索引擎后端代码智能体【免费下载链接】deepsearchopenJiuwen DeepSearch是一款知识增强的深度搜索与研究框架有业界领先的片段级引用和溯源推理能力提供精准Agentic搜索与研究能力项目地址https://gitcode.com/openJiuwen/deepsearch点击查看免费下载导读本文聚焦 openJiuwen DeepSearch 用户反馈处理user_feedback_processor中的「同义扩写」能力以 synonym_rewrite_expand 系统提示词 为骨架完整拆解其「保真扩写」的设计约束、输入输出契约以及从前端 action 到 LLM 调用的完整源码链路。读完本文你将掌握该提示词为什么强调忠实澄清而非机械加长、如何与polish/shorten提示词协同工作、markup 剥离如何保护 citation 引用不被模型改写破坏以及如何在仓库中为扩写动作替换或扩展提示模板。一、提示词定位报告生成后的局部同义改写1.1 同义改写Synonym Rewrite是什么openJiuwen DeepSearch 生成研究报告后允许用户对报告正文中选中的局部文本发起三类编辑动作统称为同义改写前端 action子类别Subcategory对应提示模板目录语义expandSynonymRewriteActionSubcategory.EXPANDsynonym_rewrite_expand/扩写把观点展开、补充论据与逻辑关系polishSynonymRewriteActionSubcategory.POLISHsynonym_rewrite_polish/润色优化措辞、句法与可读性shortenSynonymRewriteActionSubcategory.SHORTENsynonym_rewrite_shorten/缩写压缩冗余表达保留核心观点三个动作共享同一套调用框架SynonymRewriter仅通过ACTION_TO_PROMPT映射切换到不同提示模板。该映射定义在 synonym_rewrite.pyACTION_TO_PROMPT { expand: synonym_rewrite_expand, polish: synonym_rewrite_polish, shorten: synonym_rewrite_shorten, }1.2 同义改写的能力边界从 feature 文档 synonym-rewrite.md 与源码 docstring 可以确认同义改写只生成可替换选区的正文片段不负责重新规划报告结构不主动补充外部资料补充检索由supplementary_search动作负责两者在 action_definitions.py 中分属不同的动作大类不改写选区内的 citation / inference 标记——这些结构化标记由调用方在送入模型前剥离。因此synonym_rewrite_expand提示词面对的是一段已经存在、已经写完的文本其任务是在不引入新事实的前提下把表达变厚、变清晰。二、synonym_rewrite_expand 系统提示词逐条拆解完整的系统提示词文件位于 system.md全文仅两个章节# Role与# Requirements没有独立的输出格式章节输出要求被并入最后一条。下面逐条解读。2.1 Role一个严谨的研究文本扩写助手提示词将模型定位为You are a rigorous assistant for expanding research-style text. Your task is to expand the given text while strictly preserving its original meaning, conclusion direction, and factual boundaries...两个关键词值得注意rigorous严谨直接对应下文宁可克制也不臆造的约束基调research-style text研究风格文本扩写对象是研究报告正文因此强调观点、论据、逻辑关系、约束的展开而不是文学性渲染。扩写的目标被明确为fidelity and clarification保真与澄清——让原文已有的想法、支撑点、逻辑关系与约束更清楚、更充实、更易理解而不是单纯把文字变长。这与shorten压缩冗余和polish优化表达但不改变信息量形成了清晰的三角分工。2.2 Requirements十二条保真扩写铁律逐条梳理如下并按主题归类1目的优先于长度The primary goal of expansion is fidelity and clarification, not simply making the text longer——扩写的主要目标是保真与澄清而非单纯加长。这是全部约束的总纲防止模型为扩而扩。The expanded text should usually be fuller than the original, but do not repeat yourself, pad with empty language, or introduce new information just to increase length——扩写结果通常应比原文更充实但禁止重复、空话套话和为凑长度而引入新信息。值得注意的是这里的用词是usually通常给短文本的忠于信息完整性留出了弹性。2信息边界只展开已有内容绝不虚构Expand only on information already provided in the source text; do not add new facts, data, cases, conclusions, citations, or arguments that are not stated or cannot be directly inferred——只能基于原文已提供的信息展开不得添加原文未陈述或无法直接推断的事实、数据、案例、结论、引文或论点。If the source text does not provide enough information to support a detail, do not force it; it is better to stay restrained than to invent content——信息不足时不要强行补充宁可克制也不臆造。这条约束是严禁幻觉在提示词层的直接体现。If examples are needed, use only generalized illustrations or paraphrased examples of the original meaning; do not introduce specific real-world cases, numbers, institutions, people, times, or places that are not provided in the source text——如需举例只能用泛化说明或对原意的转述禁止引入原文未提供的具体真实案例、数字、机构、人物、时间或地点。3结构与逻辑继承骨架顺序不换Preserve the structural backbone of the source text. If the source follows a pattern such as viewpoint-analysis-conclusion or problem-cause-impact, the expanded version should follow the same order rather than being arbitrarily reorganized——保留原文结构骨架若原文是观点—分析—结论或问题—原因—影响等模式扩写必须沿用同一顺序不得随意重排。Preserve the source texts core viewpoints, judgment tendency, logical order, and distribution of emphasis——保留核心观点、判断倾向、逻辑顺序与重点分布。Prioritize filling in parts that are mentioned but not fully developed in the source text; do not over-expand secondary information so that it overshadows the main point——优先补全原文提到但未充分展开的部分不要过度扩写次要信息以至于喧宾夺主。4优先展开的内容类型Prioritize expanding the following: necessary explanations of key concepts, logical transitions between sentences, causal relationships, preconditions, scope of applicability, impact or significance, and further development of viewpoints already present——优先展开关键概念的必要解释、句子间的逻辑过渡、因果关系、前置条件、适用范围、影响与意义以及已有观点的进一步深化。这条实际上给出了扩写时该往哪些方向用力的可操作清单。5语气与措辞纪律You may improve coherence and professionalism, but do not change the original tone, and do not rewrite cautious wording into stronger or more absolute claims——可以提升连贯性与专业性但不得改变原语气不得把谨慎措辞改写为更强或更绝对的断言。Do not add citation markers or reference annotations——不得添加引用标记或参考注释这一条在输出要求中也重复出现。2.3 输出要求直接输出扩写文本Output only the expanded text directly. Do not include any prefatory note, process analysis, self-check, or closing explanation.模型必须直接输出扩写后的正文不得包含前言、过程分析、自检或结束语。这一约束与SynonymRewriter._generate_synonym_rewrite_text的实现直接对应——源码对返回结果不做 JSON 解析而是把响应内容response.get(content, )或字符串当作纯文本片段直接用于替换选区参见 synonym_rewrite.py。2.4 配套的 user 模板与模板变量同目录下的 user.md 定义了输入侧模板全文非常精简# Input - Requested language: {{ language }} {% if user_instruction %}- [Top Priority] Special user instruction: {{ user_instruction }}{% endif %} # Source Text {{ original_text }}三个 Jinja 变量构成完整的输入契约变量是否必填语义源码传入位置language必填要求的输出语言如zh-CN、en-USsynonym_rewrite.py 的context_vars[language]user_instruction可选用户附加的最高优先级指令如补充技术细节同一处的context_vars[user_instruction]默认original_text必填待扩写的原文已剥离 citation/inference 标记的纯文本同一处的context_vars[original_text]注意user_instruction被标记为[Top Priority]最高优先级当用户提供了附加指令时它优先于系统提示词中的一般扩写规则。这一用户指令优先的设计也体现在源码中——user_instruction通过feedback.get(user_instruction, )从反馈负载中取出并原样传入模板参见 synonym_rewrite.py。三、从提示词到执行的完整调用链3.1 前端 action 的统一映射前端传入的expand/shorten/polish字符串首先在 action_definitions.py 中被解析为动作大类 动作小类大类UserFeedbackActionCategory.SYNONYM_REWRITE小类SynonymRewriteActionSubcategory.EXPAND / SHORTEN / POLISH同时用SYNONYM_REWRITE_ACTIONS冻结集合frozenset圈定哪些 action 属于同义改写供UserFeedbackProcessor.execute做分支判断。测试 test_rewrite.py 对映射一致性做了硬性校验SYNONYM_REWRITE_ACTIONS frozenset(ACTION_TO_PROMPT.keys())即前端合法动作集合与提示模板注册表必须一一对应未知 action如unknown_action会抛出USER_FEEDBACK_PROCESSOR_INVALID_ACTION自定义异常。3.2 UserFeedbackProcessor.execute 的分流主处理器 user_feedback_processor.py 中execute对 action 做分流if action in SYNONYM_REWRITE_ACTIONS: action_result await self._synonym_rewriter.synonym_rewrite( feedbackfeedback, report_contentreport_content, languagelanguage, ) return await apply_trace_if_enabled(action_result)同义改写结果生成后如果启用了局部溯源local source trace会继续进入apply_local_source_trace_to_action_result更新选区 citation未启用则直接返回改写结果。相关的局部溯源实现位于 local_source_trace.py。3.3 SynonymRewriter.synonym_rewrite 的六步流程核心类 SynonymRewriter 的执行流程如下从feedback读取action、start_offset、end_offset、user_instruction调用strip_markup_in_range(report_content, start_offset, end_offset)剥离选区内 markup得到可交给模型改写的纯文本original_text_clean通过get_prompt_name(action)把 action 映射为提示模板名synonym_rewrite_expand等调用build_prompt_messages(prompt_name, context_vars)构建 system user 消息调用ainvoke_llm_with_stats发起 LLM 调用取回改写文本拼接出new_report stripped_text[:start_offset] rewritten_text stripped_text[stripped_end:]并计算rewritten_start_offset/rewritten_end_offset返回。返回字典包含new_report更新后的完整报告、original_text前端选中文本、original_start_offset/original_end_offset、original_text_clean清理后的原文、rewritten_text、rewritten_start_offset/rewritten_end_offset。这个契约与 action_definitions.py 中的UserFeedbackRewriteStreamResult数据类一一对应最终由_build_synonym_rewrite_stream_result组装成流式结果发回前端。3.4 提示模板的加载与校验build_prompt_messages实现在 message_builder.py它基于 Jinja2 的FileSystemLoader根目录为algorithm/prompts/加载{prompt_name}/system.md与{prompt_name}/user.md。几个关键机制system 模板必须无变量_assert_static_template_tree递归检查 system 模板及其静态 include 不含任何运行时变量违反即抛APPLY_SYSTEM_PROMPT_FAILED。这正是synonym_rewrite_expand/system.md全文件无{{ }}占位符的原因——系统提示词是静态指令动态内容全部放在 user 模板里。user 模板渲染上下文context_vars会被渲染进 user 模板若 user 模板声明了current_date而调用方未传入构建器会自动注入 UTC 日期。synonym_rewrite_*三个模板不声明current_date属于时间无关提示词。预留键保护messages、history、prior_messages、images等键被保留不允许调用方通过上下文覆盖。仓库还提供了全量契约测试 test_deepresearch_prompt_contracts.py其中对synonym_rewrite_expand的契约定义为synonym_rewrite_expand: (language, original_text, user_instruction), # 可选变量可选{user_instruction}测试断言每个 system 模板的未声明变量必须为空集user 模板声明的变量集合必须与契约中的required_vars | optional_vars完全一致且synonym_rewrite_expand等模板不得使用遗留的apply_system_prompt/apply_vlm_prompt构建器。这意味着任何对提示词的修改例如新增一个模板变量都会被 CI 测试拦截提示词与调用方的契约是受保护的。3.5 LLM 调用与统计最终调用由 ainvoke_llm_with_stats 完成其入参包括llmLLM 配置字典、messages、agent_name等。同义改写场景传入的agent_name为AgentLlmName.USER_FEEDBACK_PROCESSOR_SYNONYM_REWRITER即user_feedback_processor_synonym_rewriter见 node_constants.py用于在 token 用量统计中单独归因该次改写调用并与 llm_utils.py 的 workflow 级 token 累计逻辑衔接。LLM 调用异常会被转换为USER_FEEDBACK_PROCESSOR_REWRITE_ERROR自定义异常见 synonym_rewrite.py。四、markup 剥离扩写如何不破坏引用4.1 为什么要先剥离再改写报告中存在两类结构化标记citation 标记如[checked_citation:0][[1]](https://a.com)、[[2]](https://b.com)、[citation: 2]inference 标记如[结论A](#inference:1)。如果直接把含标记的原文交给模型扩写模型极可能改写、拆分或删除这些标记导致引用元数据损坏。因此synonym_rewrite在调用 LLM 前先通过 report_edit_utils.py 的strip_markup_in_range剥离选区内的标记选区内 citation 标记被删除不送入模型选区内 inference 标记被还原为纯文本如[结论A](#inference:1)→结论A同时记录其 id。剥离后送入模型的original_text是干净的正文系统提示词第 12 条不得添加 citation markers与这条前置处理形成了闭环模型看不到旧标记也不允许造新标记。4.2 剥离如何做到可回填strip_markup_in_range_with_metadatareport_edit_utils.py不仅产出纯文本还返回removed_citation_ranges被删标记的原始偏移范围、removed_inference_ids被还原的 inference id以及 clean-to-raw 边界映射。这样局部溯源阶段可以精确知道选区内哪些 citation 被临时移除、改写结果里哪些位置需要重新注入 citation。测试 test_rewrite.py 对这类边界情况做了充分覆盖例如只剥离选区内的 citation选区外的[checked_citation:2][[3]](https://c.com)保持原样test_strip_citations_only_within_selected_range选区内的[citation: 2]被移除选区外的[citation: 3]保留test_strip_citations_keeps_plain_citation_format_when_trace_source_is_disabled未选中的重复引用实例同一 URL 出现两次只选了一次在改写后仍然保留test_synonym_rewrite_keeps_unselected_duplicate_reference_instances未选中的 inference 元数据与 citation 元数据原样透传test_synonym_rewrite_preserves_inference_messages。这些测试说明同义改写对选区的处理是精确到偏移量的不会波及其他区域的引用完整性。五、与 polish / shorten 提示词的对比三套提示词同属一个家族结构完全一致都是# Role# Requirements# Output Requirements但约束重心不同维度expand扩写polish润色shorten缩写主要目标保真与澄清让表达更充实优化措辞、句法、可读性压缩冗余让表达更凝练长度要求通常比原文更充实usually fuller与原文大致相当±10%约为原文 50%–70%新增内容可深化已有观点但不得新增事实不得新增任何内容或改变原意不得新增事实不得过度概括关键红线宁缺毋滥不臆造保留事实边界、判断强度不得删掉结论所依赖的约束、前提、范围、例外三者的共同底线是保留原文核心观点、逻辑顺序、判断倾向与事实边界都禁止添加原文未提供的引用标记。差异则体现在在不动事实的前提下往哪个方向用力——扩写往深里用力润色往顺里用力缩写往精里用力。对应源码见 polish system.md 与 shorten system.md。六、数据契约、错误处理与验证6.1 feedback 依赖字段同义改写依赖的feedback字段见 feature 文档 synonym-rewrite.md 与源码实现action只能是expand、shorten或polish否则按无效 action 处理selected_text前端选中文本start_offset/end_offset选区在当前报告正文中的偏移必须与正文匹配否则校验阶段拦截user_instruction用户补充要求可为空字符串。6.2 错误处理与敏感日志未知 actionget_prompt_name抛出USER_FEEDBACK_PROCESSOR_INVALID_ACTIONLLM 调用异常统一转换为USER_FEEDBACK_PROCESSOR_REWRITE_ERROR异常链保留原始错误from error敏感日志当 LogManager.is_sensitive() 开启时synonym_rewrite.py 不会记录原文与改写文本只记录长度关闭时才会输出action、original_text、rewritten_text便于排查。6.3 推荐验证命令仓库测试目录下的相关测试可用以下命令运行基于 feature 文档 synonym-rewrite.mduv run pytest tests/user_feedback_processor/test_rewrite.py uv run pytest tests/user_feedback_processor/test_processor.py uv run pytest tests/algorithm/prompts/test_deepresearch_prompt_contracts.py其中test_rewrite.py覆盖动作—模板映射、markup 剥离、整段扩写流程与引用保留test_deepresearch_prompt_contracts.py对synonym_rewrite_expand的模板变量契约做全量校验若改动影响局部溯源接入还应运行tests/user_feedback_processor/test_local_source_trace.py。七、实战指南如何基于该提示词定制扩写行为基于上面的源码链路在 openJiuwen DeepSearch 中定制扩写行为通常有两种方式方式一直接修改提示词文本不动代码编辑 system.md 中的# Requirements例如收紧禁止新增任何行业术语解释、增加中文表达需符合学术书面语等条款。注意两点system 模板必须是纯静态文本不得引入{{ }}变量否则会被_assert_static_template_tree拒绝修改后运行test_deepresearch_prompt_contracts.py确认 user 模板的变量集合与契约一致system 模板变量必须为空user 模板变量必须等于required_vars | optional_vars。方式二调整输入侧前端协议user_instruction是用户侧唯一的高优先级输入通道前端可通过它把请用三段式展开请补充因果链条等指令传给模型。该字段在 user.md 中被标记为[Top Priority]会覆盖系统提示词的一般性规则。方式三新增一个改写动作如果需要新的子动作例如rephrase需要同时修改三处并保证一致action_definitions.py在SynonymRewriteActionSubcategory与USER_INPUT_ACTION_MAP中登记新 actionsynonym_rewrite.py在ACTION_TO_PROMPT中注册新提示模板名在 prompts 目录 下新建{new_prompt}/system.md与{new_prompt}/user.md并在test_deepresearch_prompt_contracts.py的_PROMPT_VARIABLES中登记变量契约。任何一步遗漏都会在test_prompt_names_match_registered_actionsSYNONYM_REWRITE_ACTIONS frozenset(ACTION_TO_PROMPT.keys())或test_contracts_cover_every_directory_prompt中被测试捕获。八、小结synonym_rewrite_expand是 openJiuwen DeepSearch 用户反馈处理链路中同义扩写动作的提示词引擎它以保真与澄清为第一原则通过不新增事实、不改变结构、不强化语气、不添加引用四道红线把扩写严格限定在原文信息边界之内。在工程实现上它与polish、shorten共享SynonymRewriter框架与SYNONYM_REWRITE_ACTIONS动作集合通过ACTION_TO_PROMPT映射切换模板在调用前由strip_markup_in_range剥离 citation / inference 标记以保护引用完整性在调用后由局部溯源链路按需回填 citation模板变量契约则由test_deepresearch_prompt_contracts.py全量守护。理解这条提示词及其调用链即可安全地定制扩写行为而不破坏报告引用的完整性与事实准确性。赞分享人工智能大模型AI AgentRAG深度研究搜索引擎后端代码智能体【免费下载链接】deepsearchopenJiuwen DeepSearch是一款知识增强的深度搜索与研究框架有业界领先的片段级引用和溯源推理能力提供精准Agentic搜索与研究能力项目地址https://gitcode.com/openJiuwen/deepsearch点击查看免费下载相关推荐OpenJiuwen DeepSearch 同义缩写提示词解析synonym_rewrite_shorten 的设计原则与完整调用链路OpenJiuwen DeepSearch 同义缩写提示词解析 synonym_rewrite_shorten 的设计原则与完整调用链路 本文聚焦 openJ人工智能大模型AI AgentRAG深度研究搜索引擎后端代码智能体openJiuwen DeepSearch 报告模板语义抽取提示词解析template_semantic_extract 的设计与调用链openJiuwen DeepSearch 报告模板语义抽取提示词解析template_semantic_extract 的设计与调用链 本篇技术指南围绕 o人工智能大模型AI AgentRAG深度研究搜索引擎后端代码智能体openJiuwen DeepSearch 同义改写润色 Prompt 模板解析synonym_rewrite_polish 的设计、渲染与调用链路openJiuwen DeepSearch 同义改写润色 Prompt 模板解析synonym_rewrite_polish 的设计、渲染与调用链路 本篇技术人工智能大模型AI AgentRAG深度研究搜索引擎后端代码智能体上一篇GSYRickText进阶开发自定义Span实现特殊文本效果的终极指南下一篇西安电子科技大学XeLaTeX学位论文模板完整使用指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

LLM驱动的移动端自动化:Mobile-Agent-v3与GUI-Owl模型实践解析

LLM驱动的移动端自动化:Mobile-Agent-v3与GUI-Owl模型实践解析

移动端自动化测试做了这么多年,最大的感受就是:选对路线比优化执行重要得多。这系列前面几篇聊完 Web 和接口,今天把镜头转到移动端,重点拆解一条我认为目前比较有生命力的技术路线——LLM 驱动的移动端自动化,尤其是 …

2026/10/13 2:13:26 阅读更多 →
Godot 4 骨骼弹簧物理:SpringBoneCollisionCapsule3D 胶囊碰撞体完全指南

Godot 4 骨骼弹簧物理:SpringBoneCollisionCapsule3D 胶囊碰撞体完全指南

文档教程游戏开发 【免费下载链接】godot-docs Godot Engine official documentation 项目地址: https://gitcode.com/GitHub_Trending/go/godot-docs 点击查看 免费下载 SpringBoneCollisionCapsule3D 是 Godot 引擎骨骼弹簧模拟体系中用于约束骨骼链摆动的胶囊形…

2026/10/13 2:12:25 阅读更多 →
SpringBoot+Vue+MySQL公交线路查询系统:从架构到部署全解析

SpringBoot+Vue+MySQL公交线路查询系统:从架构到部署全解析

最近如果你在刷毕业设计选题,这个标题大概率已经在你眼前出现过很多次了——SpringBootVueMySQL公交线路查询系统。说句实话,这个组合几乎成了当下前后端分离毕设里的“标配三件套”:SpringBoot负责后端接口和业务逻辑,Vue负责前端…

2026/10/13 2:12:25 阅读更多 →

最新新闻

Mathesar 0.5.0 版本详解:表单构建器、记录查看体验与安装流程的全面升级

Mathesar 0.5.0 版本详解:表单构建器、记录查看体验与安装流程的全面升级

数据库后端前端协作 【免费下载链接】mathesar An intuitive spreadsheet-like interface that lets users of all technical skill levels view, edit, query, and collaborate on Postgres data directly. 100% open source and self hosted, with native Postgres access co…

2026/10/13 2:56:40 阅读更多 →
把 79 个数据工具塞进一个 Python 脚本,再用 n8n 排成日更流水线:TaoToken 统一 Key 接入实践

把 79 个数据工具塞进一个 Python 脚本,再用 n8n 排成日更流水线: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/13 2:56:40 阅读更多 →
OpenSpiel 中的 Hive 棋实现:面向 AlphaZero 的六边形棋盘建模、UHP 协议与动作空间设计

OpenSpiel 中的 Hive 棋实现:面向 AlphaZero 的六边形棋盘建模、UHP 协议与动作空间设计

人工智能强化学习深度学习 【免费下载链接】open_spiel OpenSpiel is a collection of environments and algorithms for research in general reinforcement learning and search/planning in games. 项目地址: https://gitcode.com/gh_mirrors/op/open_spiel 点击…

2026/10/13 2:56:40 阅读更多 →
Ask Dr. Andrew Huberman 系统提示词深度解析:TheBigPromptLibrary 中神经科学人物模拟 GPT 的指令设计

Ask Dr. Andrew Huberman 系统提示词深度解析:TheBigPromptLibrary 中神经科学人物模拟 GPT 的指令设计

提示工程AI 安全治理 【免费下载链接】TheBigPromptLibrary A collection of prompts, system prompts and LLM instructions 项目地址: https://gitcode.com/gh_mirrors/th/TheBigPromptLibrary 点击查看 免费下载 本篇技术指南围绕 TheBigPromptLibrary 仓库中收…

2026/10/13 2:56:40 阅读更多 →
C#反编译实战:从dll/exe还原可编译源码的完整流程与避坑

C#反编译实战:从dll/exe还原可编译源码的完整流程与避坑

简介:这份C#反编译工具包面向需要查看、分析和理解.NET程序集内部结构的开发者,适用于代码逆向、调试排错和技术学习等场景。压缩包共16个文件,大小2.19MB,以dll、exe、txt、rtf等类型为主,其中包含RedGate Reflector及…

2026/10/13 2:56:40 阅读更多 →
Bresenham画圆算法:整数微分与八分对称的嵌入式图形实现

Bresenham画圆算法:整数微分与八分对称的嵌入式图形实现

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

2026/10/13 2:55:39 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 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/12 21:05:09 阅读更多 →
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/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练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/12 18:11:17 阅读更多 →