news 2026/4/22 22:19:37

免费开源的WPS AI插件 察元AI助手:getSelectedText 与 resolveDocumentInput 的组合使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
免费开源的WPS AI插件 察元AI助手:getSelectedText 与 resolveDocumentInput 的组合使用

摘要

本篇聚焦 documentActions 中选区与全文的衔接。实现新助手时,应明确 sourceMode,并在无选区时是否允许回退全文,以避免误处理整篇公文。

关键词

选区;全文;sourceMode

扩展阅读与维护提示

本篇围绕「getSelectedText 与 resolveDocumentInput 的组合使用」组织材料。仓库内与主题最直接相关的检索词包括:选区、全文、sourceMode。建议在阅读正文所列片段后,用 IDE 全局搜索这些符号,沿 import 与调用栈向上追问「谁在什么时机调用」,而不是只记住单文件路径。

摘要所概括的要点为:本篇聚焦 documentActions 中选区与全文的衔接。实现新助手时,应明确 sourceMode,并在无选区时是否允许回退全文,以避免误处理整篇公文。落地到排障时,可把现象粗分为三类交叉验证:配置是否按预期写入持久化介质;WPS COM 上下文是否可用(例如是否缺少 ActiveDocument);以及网络与证书策略是否拦截了 fetch。本篇涉及的模块通常只覆盖其中一两类,需要与相邻篇目拼成完整拼图。

教程文件名「16-wendang-shuru-laiyuan-jiekou.md」仅用于导航与排序,不等价于源码模块名。若正文中的行号与本地分支不一致,多半因合并导致行偏移,此时应以函数名、导出名为锚重新检索;团队若维护了生成脚本,可在变更大段源码后重新运行以保持摘录大致对齐。

本文刻意避免对产品能力做营销式承诺:所述行为均以当前仓库可见实现为准。若组织策略要求离线或内网模型,应在网关、证书与代理层收口,而不是假设加载项能绕过浏览器安全模型。

若你同时阅读 docs/chayuan-llm-chain-series,可先对照其中的总体链路图理解「请求从 UI 到 chatApi」的次序,再回到本教程看数据结构、默认值与修改风险面;两者互补,不重复堆砌功能列表。

正文

1. 选区 API

getSelectionRange、getSelectedText、hasMeaningfulSelectionText 形成最小工具集。

阅读源码摘录时,请把它当作「定位入口」而非完整实现:同一函数可能在其他分支还有早退条件或 try/catch。修改默认行为前,建议用最小文档手工走一遍相关助手或对话框,并观察任务清单与日志中的字段是否与预期一致,再决定是否做数据迁移或配置重置。

// src/utils/documentActions.js 第29-40行 export function getSelectionRange() { return getSelection()?.Range || null } export function getSelectedText() { const sel = getSelection() return normalizeText(sel?.Text || '') } export function hasMeaningfulSelectionText(text, minLength = 2) { return String(text || '').trim().length >= Math.max(1, Number(minLength || 2)) }

2. 解析入口

resolveDocumentInput 为助理任务统一入口,返回 text 与 source 元数据。

阅读源码摘录时,请把它当作「定位入口」而非完整实现:同一函数可能在其他分支还有早退条件或 try/catch。修改默认行为前,建议用最小文档手工走一遍相关助手或对话框,并观察任务清单与日志中的字段是否与预期一致,再决定是否做数据迁移或配置重置。

// src/utils/documentActions.js 第46-58行 export function resolveDocumentInput(sourceMode = 'selection-preferred') { const selectionText = getSelectedText().trim() const documentText = getDocumentText().trim() const hasMeaningfulSelection = hasMeaningfulSelectionText(selectionText, 2) if (sourceMode === 'selection-only') { return { text: selectionText, source: 'selection', hasSelection: selectionText.length > 0, hasDocument: documentText.length > 0 }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 22:12:13

LabVIEW 强度图与强度图表

​LabVIEW 中强度图(Intensity Graph)与强度图表(Intensity Chart)均可接收二维数组作为输入,用于二维数据色彩可视化,二者核心差异体现在前面板运行行为上。强度图单次刷新、仅显示当前一组数据&#xff0…

作者头像 李华
网站建设 2026/4/22 22:03:12

计算机毕业设计:Python大盘行情与个股诊断预测系统 Flask框架 TensorFlow LSTM 数据分析 可视化 大数据 大模型(建议收藏)✅

博主介绍:✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久,选择我们就是选择放心、选择安心毕业✌ > 🍅想要获取完整文章或者源码,或者代做,拉到文章底部即可与…

作者头像 李华
网站建设 2026/4/22 22:03:10

备忘录:微软开源MarkItDown,万能文档转Markdown神器

MarkItDown(GitHub: microsoft/markitdown)是微软开源的 Python 万能文档→Markdown 转换引擎,专为 LLM / RAG 预处理设计。核心逻辑:统一接口 插件式转换器 流式处理 结构化 Markdown 输出。一、核心定位目标:把 P…

作者头像 李华
网站建设 2026/4/22 22:01:19

机器学习项目实战:避免十大常见陷阱的关键策略

1. 机器学习项目失败的十大隐形陷阱在过去的五年里,我参与过47个不同规模的机器学习项目,其中有12个最终没能投入生产环境。最令人沮丧的是,这些失败往往不是因为技术难题,而是源于一些看似简单却极易被忽视的错误。今天我要分享的…

作者头像 李华
网站建设 2026/4/22 21:59:32

Bili2text:当视频学习遇上文字效率的革命性解法

Bili2text:当视频学习遇上文字效率的革命性解法 【免费下载链接】bili2text Bilibili视频转文字,一步到位,输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 你是否曾在观看B站知识类视频时,为了记…

作者头像 李华
网站建设 2026/4/22 21:58:58

WarcraftHelper技术解析:基于API拦截的魔兽争霸3现代化兼容方案

WarcraftHelper技术解析:基于API拦截的魔兽争霸3现代化兼容方案 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper WarcraftHelper是一款专为…

作者头像 李华