当前位置: 首页 > news >正文

开源免费的WPS AI 软件 察元AI文档助手:链路 012:structuredSystemPrompt 与单次 system 的关系

链路 012:structuredSystemPrompt 与单次 system 的关系

总体链路图

下图在全系列各篇保持一致,仅通过高亮样式标示本篇所覆盖的环节;箭头表示主成功路径,点线为异常或可选路径。阅读任意一篇时都应能回到本图定位,避免在单文件里「钻太深」而失去上下游语境。

plain

structured

multimodal

1 入口: Ribbon/对话框 → assistantId

2 startAssistantTask 占位任务

3 launchInfo 与 resolveDocumentInput

4 resolveModel 与模型清单

5 提示词拼装与 launchGuard

6 分流 plain / structured / multimodal

7a chatCompletion 文本链路 plain

7b chatCompletion 结构化批次

8a applyDocumentAction

8b executionPlan → applyDocumentProcessingPlan

7c generateMultimodalAsset

9 评测持久化与任务完成态

异常路径 normalizeError → 安全弹窗

本篇在总体链路中的位置

对应图中节点 N5:提示词、分流条件、写回守卫等均在发起请求前完成。 高亮节点:N5。若本篇同时引用 chatApi 与任务运行器,通常意味着该逻辑处于「编排层与网络层交界」:修改时要同时考虑任务取消与 UI 快照。

深度说明(工程视角)

从工程维护角度看,本篇讨论的对象应当被视为「可替换实现」:只要对外的任务状态、HTTP 契约与文档写回语义保持不变,内部可以重构函数拆分或调整日志字段。阅读时建议始终抓住三个锚点:一是数据从哪来(PluginStorage、localStorage、COM 选区还是全文);二是数据何时离开本机(进入 fetch 之前是否已完成脱敏与快照);三是失败时用户可见的文本由谁归一(chatApi 与助手错误弹窗两条路径)。

就「链路 012:structuredSystemPrompt 与单次 system 的关系」而言,源码位置可概括为:executeAssistantTask 内赋值 structuredSystemPrompt。这与摘要中的判断一致:executeAssistantTask 将 buildAssistantSystemPrompt 结果与 buildStructuredBatchInstruction 结果 join,得到 structuredSystemPrompt,供分批 JSON 调用使用;plain 管线则只用前者。关键词「join、structuredSystemPrompt」提示你在仓库内做全文检索时应优先锁定这些符号,而不是仅依赖界面文案。

与网络请求相关的修改,务必在本地用开发者工具或代理核对:请求体中的 model 字段是否与设置页保存的 modelId 一致;Authorization 是否只取 apiKey 列表的第一段(部分网关对多密钥格式敏感);stream 为 true 时宿主是否稳定消费 SSE。若你引入新的 provider,应对照 getChatApiConfigByProvider 的 URL 拼接分支补充单元测试或手测用例,避免「路径已含 v1 却又重复拼接」类错误。

与文档写回相关的修改,应优先在无界面的纯函数层复现:例如仅调用 applyDocumentAction 或 applyDocumentProcessingPlan 的入参快照,观察 Range 坐标是否在 CRLF 归一化前后发生漂移。WPS 与 Word 在选区、批注锚点上的差异会放大这类问题,因此本篇若在讲坐标或分段,请同时阅读 documentPositionUtils 与 chunk 相关教程篇目。

阅读顺序上,本篇之后建议继续看:shouldUsePlainDocumentPipeline 决定走 plain 的 chat 还是结构化批次(013–014)。若在总体图中定位,对应图中节点 N5:提示词、分流条件、写回守卫等均在发起请求前完成。 遇到与教程系列术语不一致时,以源码标识符为准:教程侧重导航与概念,本系列侧重调用次序与失败面。

最后说明写作立场:本系列不对任何云厂商或模型服务做优劣评价,也不暗示「必须开通」某类账号;所述配置项仅反映当前仓库为打通 OpenAI 兼容协议而需要的最小字段集合。若组织策略禁止外联,应在网关或 hosts 层拦截,而不是在加载项内写死假地址。

与教程系列文档的对照

下列文档来自docs/chayuan-tutorial-series,侧重「如何阅读仓库」与界面侧概念,与本链路系列互补:不重复推销功能,仅帮助建立目录与模块边界。

  • chayuan-tutorial-series/09-bianshen-moban-guize-yu-wendang-shenji.md:与本篇链路相邻的工程说明,可对照变量命名与文件职责。
  • chayuan-tutorial-series/23-jiegouhua-pici-tishi-yu-JSON.md:与本篇链路相邻的工程说明,可对照变量命名与文件职责。

摘要

executeAssistantTask 将 buildAssistantSystemPrompt 结果与 buildStructuredBatchInstruction 结果 join,得到 structuredSystemPrompt,供分批 JSON 调用使用;plain 管线则只用前者。

关键词

join;structuredSystemPrompt

链路位置(源码索引)

executeAssistantTask 内赋值 structuredSystemPrompt。

正文

1. 两次 build 的合并

filter(Boolean).join 避免空段。

维护时建议把本节涉及的符号在 IDE 里「查找引用」:确认是否还有对话框专用服务、拼写检查服务或评测脚本以拷贝粘贴方式重复了相似逻辑。若发现重复,优先抽到 chatApi 之上的薄封装,而不是在业务层再次拼接 URL 或 Authorization,以降低安全审查时的遗漏面。

// src/utils/assistantTaskRunner.js 第1546-1556行constsystemPrompt=[buildAssistantSystemPrompt(config,definition),buildReportSystemPrompt(reportSettings,reportTypeLabel)].filter(Boolean).join('\n\n')conststructuredSystemPrompt=[systemPrompt,buildStructuredBatchInstruction(assistantId,{targetLanguage,documentAction:runtimeDocumentAction})].filter(Boolean).join('\n\n')

上下游衔接

shouldUsePlainDocumentPipeline 决定走 plain 的 chat 还是结构化批次(013–014)。

http://www.jsqmd.com/news/717275/

相关文章:

  • 全域数学三元本源公理体系 核心公式汇总表(永久典藏版)
  • Burp_Suite_Professional_2026.4
  • 终极指南:如何快速免费提取Ren‘Py游戏RPA归档文件
  • 基于AFSIM的空间目标动能拦截系统:最小化完整案例
  • 数据结构----插入排序
  • real-anime-z实战教程:用‘cherry blossom’+‘soft focus background’营造日系氛围感
  • OpCore Simplify:3步轻松搞定黑苹果OpenCore EFI配置的智能工具
  • 微服务-Docker
  • 2026MCX关键任务通信哪家好?融合通信厂商推荐与核心能力盘点 - 栗子测评
  • YOLOv13实战入门:快速上手图片和视频中的物体识别
  • GD32F470内存布局详解:为什么你的SRAM只有448KB,以及如何用RT-Thread的memheap管理那64KB TCMSRAM
  • 2026_年网安必读!Metasploit_圣经第_2_版终
  • 算法博士和台湾算法工程师的职场焦虑
  • 全域三元共振AGI计算机 完整版终极合辑(终稿)
  • Aspinity AML100扩展板:超低功耗模拟机器学习实践
  • 【企业级AI沙箱部署白皮书】:基于Kubernetes+Docker 24.0.0实测的12项关键参数调优清单(含CUDA 12.4兼容矩阵)
  • 激光雷达动态物体剔除总漏检?(实时性<8ms的C++滑动窗口聚类算法逆向工程)
  • AI智能体工程化实践:使用agent-pack-n-go实现标准化部署
  • DownKyi哔哩下载姬:5分钟掌握B站视频高效下载与管理终极方案
  • 【Docker AI Toolkit 2026终极接入指南】:5分钟零配置完成LLM微服务容器化部署,含企业级安全沙箱配置清单
  • 五分钟带你认识并安装使用OpenSpec
  • 生成式AI如何重塑游戏NPC:从动态对话到多模态交互
  • 如何让导航栏的下落动画效果更缓慢?
  • 从SerDes眼图到代码同步:一个硬件工程师的JESD204B物理层与链路层联调笔记
  • 华为S5700三层交换机组网:静态路由与默认路由到底怎么选?一个实验讲透区别与配置要点
  • 从/dev/nume0n1p2:clean到登录循环:一次完整的NVIDIA驱动灾难恢复记录(Ubuntu 22.04)
  • 向华为学习——详解华为流程化组织【附全文阅读】
  • AI智能体工程化实践:使用agent-pack-n-go实现一键打包与部署
  • 图像篡改定位:ForMa论文解读与简单复现:翻译+代码跑通(Vision Mamba)
  • 全域数学电子结构模型与张祥前 “环形螺旋模型” 对比研究