网站首页 > 知识剖析 正文
一、接入前准备
1.WPS最新版本(老版本没有开发工具菜单)
点击检查更新,按照步骤安装最新版本
2.硅基流动平台注册账号及秘钥
(1)目前deepseek官方平台,无法进行充值,除非原来有余额没有用完。所以采用通过硅基流动平台进行api能力接入。
添加图片注释,不超过 140 字(可选)
(2)地址:硅基流动平台地址如下,按照正常流程注册即可。
https://cloud.siliconflow.cn/cloud.siliconflow.cn/
(3)按照如下步骤创建秘钥
添加图片注释,不超过 140 字(可选)
二、WPS接入deepseek操作(源码在尾部)
1启用 Word 的开发者工具
(1)打开 Word。
(2)点击菜单栏中的 “工具”,然后选择”开发者工具“。
添加图片注释,不超过 140 字(可选)
2.设置宏安全性
开发工具——宏安全性——设置为”低“,因为苹果系统的安全度要求高,所以正常安全级会影响宏文件的运行。
添加图片注释,不超过 140 字(可选)
3.编辑接入deepseek的宏文件
(1)点击WPS宏编辑器,然后复制代码,粘贴到代码框内
(2)替换自己的apiKey文件 为了各位操作方便,我在代码中已经将,调取的api地址和模型内置好,大家只需要替换下秘钥即可完成接入。
var apiUrl = 'https://api.siliconflow.cn/v1/chat/completions';
var apiKey = '替换为自己创建的apiKey';
var model = 'deepseek-ai/DeepSeek-R1';
添加图片注释,不超过 140 字(可选)
(3)保存文件,即可使用。
三、WPS接入deepseek程序代码
function callDeepSeekAPI() {
// 获取选中文本
var selection = this.Application.Selection;
var selectedText = selection.Text;
// 保存选中范围
var range = selection.Range;
// DeepSeek API配置
var apiUrl = 'https://api.siliconflow.cn/v1/chat/completions';
var apiKey = '替换成自己的apiKey';
var model = 'deepseek-ai/DeepSeek-R1';
// 构建请求体
var requestBody = {
"model": model,
"messages": [
{"role": "user", "content": selectedText}
],
"stream": false
};
requestBody = JSON.stringify(requestBody);
// 创建XMLHttpRequest对象
var xhr = new XMLHttpRequest();
xhr.open('POST', apiUrl, false);
// 设置请求头
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.setRequestHeader('Authorization', 'Bearer ' + apiKey);
// 设置超时时间(单位:毫秒)
xhr.timeout = 30000; // 设置为30秒
// 超时处理函数
xhr.ontimeout = function () {
alert('请求超时,请稍后重试!');
};
// 发送请求
xhr.send(requestBody);
// 处理响应
if (xhr.status === 200) {
try {
var response = JSON.parse(xhr.responseText);
var answer = '\r\n【DeepSeek回答】\r\n' + response.choices[0].message.content;
// 移动到选中范围末尾
range.Collapse(1); // 折叠到末尾
range.InsertAfter(answer); // 在末尾插入回答
// 移动光标到插入内容之后
selection.MoveEnd(1, 1);
selection.Collapse(1);
} catch (error) {
alert('处理响应内容时出错:' + error.message + ',响应内容:' + xhr.responseText);
}
} else {
alert('API调用失败!状态码:' + xhr.status + ' 响应内容:' + xhr.responseText);
}
}
四、使用方法
(1)word中选中提示词,点击运行宏
(2)选择自己创建的宏名(第一次需要选择,后续自动默认),然后运行即可得到答案。
添加图片注释,不超过 140 字(可选)
五、其他说明
1.目前硅基流动调用的api,新用户会赠送一定额度,可以使用,超出额度,需要进行购买,不过费用也不算太贵,后续如果找到免费的版本,我会进行更新。
2.目前亲测的调用其实没有,免费网页版及时,会出现调用超时或者响应速度慢的问题。
如果在运行过程中,出现如下错误就是请求超时
添加图片注释,不超过 140 字(可选)
如果想要更加快捷的调用方法,选中提示词后自动弹出运行的宏,可以参考如下操作
需要通过第三方软件进行自动触发Keyboard Maestro
在 Keyboard Maestro 中创建一个新的宏(Macro),可以按照以下详细步骤操作:
1. 打开 Keyboard Maestro
在 Launchpad 中找到 Keyboard Maestro 的图标并点击打开它,或者使用 Spotlight 搜索(按下 Command + 空格,输入 “Keyboard Maestro” 后回车)来启动该应用程序。
2. 进入宏编辑界面
- 打开 Keyboard Maestro 后,在菜单栏中点击 “Keyboard Maestro”,选择 “Preferences”(偏好设置)。
- 在弹出的偏好设置窗口中,切换到 “Macros”(宏)选项卡。这里会显示你当前已有的宏列表,如果是首次使用,列表可能为空。
3. 创建新的宏
- 点击窗口左下角的 “+” 按钮,在弹出的菜单中选择 “New Macro”(新建宏)。这将在宏列表中添加一个新的空白宏。
- 你可以为新宏设置一个有意义的名称,双击宏的默认名称进行修改,方便后续识别和管理。
4. 设置宏的触发器(Trigger)
触发器决定了宏在什么条件下会被触发执行。以实现选中文字后触发宏为例,操作如下:
- 点击新宏中的 “Triggers”(触发器)部分,然后点击右侧的 “+” 按钮。
- 在弹出的触发器类型列表中,选择 “Selected Text”(选中文字)。
- 可以进一步设置触发条件,比如选择 “Any change to the selected text”(选中文字有任何变化),这样只要选中的文字发生改变,宏就会被触发。
5. 添加执行动作(Actions)
动作定义了宏被触发后要执行的具体操作。假设你要调用 WPS 宏,可以通过执行 AppleScript 来实现,步骤如下:
- 点击 “Actions”(动作)部分,然后点击右侧的 “+” 按钮。
- 在动作类型列表中,选择 “Execute AppleScript”(执行 AppleScript)。
-- 获取选中的文本
set the clipboard to ""
tell application "System Events" to keystroke "c" using command down
set selectedText to the clipboard
-- 这里可以继续添加调用 WPS 宏的代码,可能需要模拟按键操作来触发 WPS 中的宏
如果要调用 WPS 宏,可能需要根据 WPS 的具体操作方式进行模拟按键等操作。例如,若 WPS 宏对应的菜单路径是 “工具” -> “宏” -> “运行指定宏”,可以通过模拟按键依次按下对应菜单快捷键来触发宏。
6. 保存和测试宏
- 完成触发器和动作的设置后,点击窗口左上角的 “Save”(保存)按钮保存宏的设置。
- 为了验证宏是否能正常工作,可以在支持文本选择的应用程序中选中一段文字,观察宏是否按照预期被触发执行。如果没有达到预期效果,可以返回宏编辑界面检查触发器和动作的设置是否正确。
- 上一篇: 一文带你掌握CORS
- 下一篇: 前端百题斩之原来跨域也是可以进行分类的
猜你喜欢
- 2025-05-24 前端面试:异步加载和延迟加载的理解?
- 2025-05-24 dart系列之:浏览器中的舞者,用dart发送HTTP请求
- 2025-05-24 Ajax异步JavaScript和XML
- 2025-05-24 编写个人的Ajax:感受前端异步世界的魅力
- 2025-05-24 SpringBoot 项目处理跨域的四种技巧
- 2025-05-24 前端——CORS跨域请求的限制与解决
- 2025-05-24 面试官:说说你对options请求的理解
- 2025-05-24 在B站看猫片被老板发现?不如按下F12学学HTTP
- 2025-05-24 Web性能的计算方式与优化方案(二)
- 2025-05-24 Spring Security在前后端分离项目中的使用
- 05-24前端面试:异步加载和延迟加载的理解?
- 05-24dart系列之:浏览器中的舞者,用dart发送HTTP请求
- 05-24Ajax异步JavaScript和XML
- 05-24编写个人的Ajax:感受前端异步世界的魅力
- 05-24SpringBoot 项目处理跨域的四种技巧
- 05-24前端——CORS跨域请求的限制与解决
- 05-24面试官:说说你对options请求的理解
- 05-24在B站看猫片被老板发现?不如按下F12学学HTTP
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)