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

开源免费的WPS AI 软件 察元AI文档助手

链路 042:getAssistantLaunchInfo 对外的只读视图

总体链路图

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

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 → 安全弹窗

本篇在总体链路中的位置

对应图中 N2 与 N5 之间偏编排一侧:任务 data、占位与对外 launchInfo 视图。 高亮节点:N2、N5。若本篇同时引用 chatApi 与任务运行器,通常意味着该逻辑处于「编排层与网络层交界」:修改时要同时考虑任务取消与 UI 快照。

深度说明(工程视角)

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

就「链路 042:getAssistantLaunchInfo 对外的只读视图」而言,源码位置可概括为:assistantTaskRunner.js export function getAssistantLaunchInfo。这与摘要中的判断一致:Popup 或确认对话框在发起请求前调用 getAssistantLaunchInfo,获取 requiresFullDocumentConfirm、inputLength 等,不触发模型调用。与 getAssistantLaunchInfoInternal 成对理解。关键词「requiresFullDocumentConfirm」提示你在仓库内做全文检索时应优先锁定这些符号,而不是仅依赖界面文案。

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

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

阅读顺序上,本篇之后建议继续看:Ribbon 在 executeAssistantFromRibbon 内使用(002)。若在总体图中定位,对应图中 N2 与 N5 之间偏编排一侧:任务 data、占位与对外 launchInfo 视图。 遇到与教程系列术语不一致时,以源码标识符为准:教程侧重导航与概念,本系列侧重调用次序与失败面。

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

与教程系列文档的对照

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

  • chayuan-tutorial-series/01-chayuan-gailan-yu-dingwei.md:与本篇链路相邻的工程说明,可对照变量命名与文件职责。

  • chayuan-tutorial-series/12-yuanma-fenceng-yu-AI-bianma-zai-ben-xiangmu.md:与本篇链路相邻的工程说明,可对照变量命名与文件职责。

摘要

Popup 或确认对话框在发起请求前调用 getAssistantLaunchInfo,获取 requiresFullDocumentConfirm、inputLength 等,不触发模型调用。与 getAssistantLaunchInfoInternal 成对理解。

关键词

requiresFullDocumentConfirm

链路位置(源码索引)

assistantTaskRunner.js export function getAssistantLaunchInfo。

正文

1. 导出结构

从 internal 结果映射 hasSelection、usesDocument 等。

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

// src/utils/assistantTaskRunner.js 第2502-2518行exportfunctiongetAssistantLaunchInfo(assistantId,overrides={}){constinfo=getAssistantLaunchInfoInternal(assistantId,overrides)return{assistantId,title:info.taskTitle,displayTitle:info.displayTitle,inputSource:info.inputInfo.source,configuredInputSource:info.effectiveInputSource,configuredDocumentAction:info.effectiveDocumentAction,launchSource:info.launchSource,strictAssistantDefaults:info.strictAssistantDefaults===true,hasSelection:info.inputInfo.hasSelection===true,usesDocument:info.inputInfo.source==='document',inputLength:info.inputText.length,requiresFullDocumentConfirm:info.inputInfo.source==='document'&&info.inputInfo.hasSelection!==true}}

上下游衔接

Ribbon 在 executeAssistantFromRibbon 内使用(002)。

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

相关文章:

  • 尝试使用qemu学习正点原子《手把手教你学Linux》
  • 【学习笔记】动手学深度学习(自用)
  • 环保设备厂家推荐:宁波常青环保RCO催化燃烧设备、沸石转轮RTO除尘设备技术解析与工程案例 - 深度智识库
  • 别再傻傻分不清了!一文搞懂HIS、EMR、PACS这些医院核心系统到底管啥
  • ComfyUI Segment Anything 终极指南:一键实现精准AI图像分割
  • 基于OpenWrt与MT7621开发板构建高性能无线中继网络
  • 潍坊悍龙机械设备:杭州u钻设备出售哪家专业 - LYL仔仔
  • 小微团队如何利用Taotoken进行多模型选型与成本控制
  • YOLOv4的‘武器库’拆解:Mosaic、CmBN、CIoU损失这些‘黑科技’到底提升了多少AP?
  • 官方认证|2026年国内五大正规木纹砖供应商排名,布局广东佛山等地,大自然综合实力遥遥领先 - 十大品牌榜
  • LRC歌词制作工具终极指南:手把手教你轻松搞定歌词同步
  • 无锡遗产纠纷案件处理:资深律所的技术实操与案例复盘 - 奔跑123
  • 2分钟完成B站缓存视频转换:m4s转MP4一站式解决方案
  • 2025最权威的六大降重复率工具实际效果
  • 拯救者工具箱终极指南:轻量级开源笔记本控制工具完全解析
  • 数学论文降AI工具免费推荐:2026年数学毕业论文知网AIGC超标4.8元一次过免费完整方案
  • 淘宝开放平台商品类目接口实战:全量类目获取 + 子类目递归查询 + 结构化缓存(附 Python 生产级代码)
  • 泊头市同辉会展服务:西城专业的会展沙发租赁怎么联系 - LYL仔仔
  • magic-api异常处理与错误排查:常见问题解决方案大全
  • 海南美尔居家具:儋州KTV金属模块公司推荐 - LYL仔仔
  • 2026昆明资质办理公司选择指南及实力排名 - 榜单测评
  • 2026年北京短视频代运营与AI搜索优化全景指南:从冷启动到商机闭环的企业获客方案 - 企业名录优选推荐
  • 3大核心技术深度解析:cursor-free-vip如何高效破解Cursor AI编辑器限制
  • 算法基础应用精讲【自动驾驶】-自动驾驶激光雷达点云空洞:成因、影响与解决方案
  • 微信好友关系检测:3步找出谁删了你,告别单向好友的烦恼
  • 别再死磕回归分析了!用fsQCA软件(3.0版)做组态分析,5步搞定你的社科/商科论文
  • 珠海黄金回收六大品牌深度测评|2026 正规靠谱商家排行榜(梯队版) - 润富黄金珠宝行
  • 还在用Google查Python报错?Perplexity编程搜索实战对比报告(含23个真实error日志实测数据)
  • 口碑好的智能电动晾衣机厂家:盼盼引领智能晾晒新时代 - 博客万
  • 飞书项目 vs Siemens Teamcenter:制造业 IPD 集成产品开发项目管理深度对比评测