WPS如何接入DeepSeek(通过JS宏调用)

WPS如何接入DeepSeek

  • 一、文本扩写
  • 二、校对
  • 三、翻译

本文介绍如何通过 WPS JS宏调用 DeepSeek 大模型,实现自动化文本扩写、校对和翻译等功能。

一、文本扩写

1、随便打开一个word文档,点击工具栏“工具”。

在这里插入图片描述

2、点击“开发工具”。

在这里插入图片描述

3、点击“查看代码”。

在这里插入图片描述

4、在打开的WPS宏编辑器界面中,左侧找到“Project(Normal.dotm)”,在“代码”上右击,选择“插入”->“模块”。

在这里插入图片描述

5、在新建的模块“Module1”上右击,点击“重命名”,重命名为“deepseek_expand”。

在这里插入图片描述

6、在右边的代码编辑器中,粘贴JS宏代码 ,保存。

const OPENAI_API_KEY = "改成自己的";
const OPENAI_API_URL = "https://api.deepseek.com/v1/chat/completions";
const OPENAI_MODEL = "deepseek-chat";

function PROMPT_TEMPLATE(text) {
  return `你是一位专业的文本扩写助手。请根据以下要求扩写文本:
1. 保持原文核心意思不变
2. 增加相关细节和背景信息
3. 使用正式、专业的语言风格
请扩写以下文本:
${text}`;
}

async function expandText() {
    const selection = Application.Selection;
    if (!selection || !selection.Text) {
        alert("请选中需要扩写的文本");
        return;
    }
    const originalText = selection.Text;
    const prompt = PROMPT_TEMPLATE(originalText);

    try {
        const response = await fetch(OPENAI_API_URL, {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'Authorization': `Bearer ${OPENAI_API_KEY}`
            },
            body: JSON.stringify({
                model: OPENAI_MODEL,
                messages: [{role: "user", content: prompt}]
            })
        });

        const data = await response.json();
        if (data.choices && data.choices.length > 0) {
            const expandedText = data.choices[0].message.content;
            selection.Text = expandedText; // 替换选中文本为扩写后的文本
        } else {
            throw new Error("未获取到有效的扩写文本");
        }
    } catch (error) {
        console.error("扩写文本时出错: ", error);
        alert("扩写文本失败,请检查网络或API密钥");
    }
}

代码中接口定义相关内容(API_key)改成自己的,除了DeepSeek也可以使用其他模型。

在这里插入图片描述

7、回到文字编辑界面,点击“文件”菜单,选择“选项”。

在这里插入图片描述

8、在选项对话框中,找到“自定义功能区”,在右侧的“自定义功能区”中,“工具”选项卡下点击“新建组”。

在这里插入图片描述

9、选中上一步新建的组,在左侧“自定义功能区”中下拉,找到“宏”,可以看到宏代码的名称“Project.deepseek.expandText”,选中,点击中间的“添加”按钮,添加到新建的组下。

在这里插入图片描述

10、在右侧“自定义功能区”中,选择新添加的“Project.deepseek.expandText”,点击“重命名”。
在这里插入图片描述

11、名称修改为“扩写”,点击确定。

在这里插入图片描述

12、点击“确定”。

在这里插入图片描述

13、回到文字编辑界面,看到“工具”栏下,多了“扩写”工具。

在这里插入图片描述

14、写一句文字“从前有座山”,用鼠标滑动选择需要扩写的内容,点击“扩写”,稍等片刻,等待deepseek返回。

这一步取决于你自己的网速以及deepseek服务器的服务响应能力,有可能很慢或者无法生成,可以多试几次。

在这里插入图片描述

15、看到文字“从前有座山”成功被扩写。

在这里插入图片描述

至此,已经完成了 WPS 宏的基本环境搭建,并掌握了如何调用 AI API 进行文本扩写。后续可以进一步优化代码,增加更多智能化功能,例如自动摘要、润色和智能翻译等。

二、校对

步骤完全一样,只是第6步的代码粘贴换成

async function proofreadText() {
    const selection = Application.Selection;
    if (!selection || !selection.Text) {
        alert("请选中需要校对的文本");
        return;
    }
    const originalText = selection.Text;
    const prompt = `请校对以下文本,修正语法和拼写错误:\n${originalText}`;

    try {
        const response = await fetch(OPENAI_API_URL, {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'Authorization': `Bearer ${OPENAI_API_KEY}`
            },
            body: JSON.stringify({
                model: OPENAI_MODEL,
                messages: [{role: "user", content: prompt}]
            })
        });

        const data = await response.json();
        if (data.choices && data.choices.length > 0) {
            const proofreadText = data.choices[0].message.content;
            selection.Text = proofreadText; // 替换选中文本为校对后的文本
        } else {
            throw new Error("未获取到有效的校对文本");
        }
    } catch (error) {
        console.error("校对文本时出错: ", error);
        alert("校对文本失败,请检查网络或API密钥");
    }
}

如果想要扩展多个功能,也可以直接在扩写的代码下边粘贴上述代码也可以,只需要在9中选择宏时选择对应的函数即可。

三、翻译

与步骤二中一致,代码使用

async function translateText() {
    const selection = Application.Selection;
    if (!selection || !selection.Text) {
        alert("请选中需要翻译的文本");
        return;
    }
    const originalText = selection.Text;
    const prompt = `请将以下文本翻译成英文:\n${originalText}`;

    try {
        const response = await fetch(OPENAI_API_URL, {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'Authorization': `Bearer ${OPENAI_API_KEY}`
            },
            body: JSON.stringify({
                model: OPENAI_MODEL,
                messages: [{role: "user", content: prompt}]
            })
        });

        const data = await response.json();
        if (data.choices && data.choices.length > 0) {
            const translatedText = data.choices[0].message.content;
            selection.Text = translatedText; // 替换选中文本为翻译后的文本
        } else {
            throw new Error("未获取到有效的翻译文本");
        }
    } catch (error) {
        console.error("翻译文本时出错: ", error);
        alert("翻译文本失败,请检查网络或API密钥");
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/968012.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端快速生成接口方法

大家好,我是苏麟,今天聊一下OpenApi。 官网 : umijs/openapi - npm 安装命令 npm i --save-dev umijs/openapi 在根目录(项目目录下)创建文件 openapi.config.js import { generateService } from umijs/openapi// 自…

云消息队列 ApsaraMQ Serverless 演进:高弹性低成本、更稳定更安全、智能化免运维

如今,消息队列已成为分布式架构中不可或缺的关键服务,为电商、物联网、游戏和教育等行业,提供了异步解耦、集成、高性能和高可靠的核心价值。 过去一年,我们发布了云消息队列 ApsaraMQ 全系列产品 Serverless 化,面向…

Spring依赖注入方式

写在前面:大家好!我是晴空๓。如果博客中有不足或者的错误的地方欢迎在评论区或者私信我指正,感谢大家的不吝赐教。我的唯一博客更新地址是:https://ac-fun.blog.csdn.net/。非常感谢大家的支持。一起加油,冲鸭&#x…

Mysql索引失效的场景

对索引列使用函数或表达式,或参与计算(优化方法:将计算移到条件右侧:)例 优化 对索引列进行隐式类型转换,条件中的数据类型与索引列的数据类型不匹配,会进行隐式类型转换 以like 通配符开头索…

CTFHub-RCE系列wp

目录标题 引言什么是RCE漏洞 eval执行文件包含文件包含php://input读取源代码远程包含 命令注入无过滤过滤cat过滤空格过滤目录分隔符过滤运算符综合过滤练习 引言 题目共有如下类型 什么是RCE漏洞 RCE漏洞,全称是Remote Code Execution漏洞,翻译成中文…

算法学习笔记之并查集

简介 问题描述:将编号为1-N的N个对象划分为不相交集合,在每个集合中,选择其中的某个元素代表所在集合。 常见两种操作: 1.合并两个集合 2.查找某元素属于哪个集合 实现方法1 用编号最小的元素标记所在集合; 定义…

渗透利器工具:Burp Suite 联动 XRAY 图形化工具.(主动扫描+被动扫描)

Burp Suite 联动 XRAY 图形化工具.(主动扫描被动扫描) Burp Suite 和 Xray 联合使用,能够将 Burp 的强大流量拦截与修改功能,与 Xray 的高效漏洞检测能力相结合,实现更全面、高效的网络安全测试,同时提升漏…

菌贝:云南鸡枞菌走向世界的第一品牌

云南,这片神奇的土地,孕育了无数珍稀的野生菌,而鸡枞菌无疑是其中的佼佼者。它以其独特的口感和丰富的营养价值,被誉为“菌中之王”。在云南鸡枞菌的品牌化进程中,菌贝以其卓越的品质和广泛的影响力,成为云…

如何恢复使用 Command+Option+Delete 删除的文件:完整指南

在日常使用 Mac 时,我们经常会使用 CommandOptionDelete 组合键来快速删除文件。这种删除方式会将文件直接移出废纸篓,而不会经过废纸篓的中间步骤,因此文件看似被永久删除。然而,即使文件被这样删除,仍然有几种方法可…

windows生成SSL的PFX格式证书

生成crt证书: 安装openssl winget install -e --id FireDaemon.OpenSSL 生成cert openssl req -x509 -newkey rsa:2048 -keyout private.key -out certificate.crt -days 365 -nodes -subj "/CN=localhost" 转换pfx openssl pkcs12 -export -out certificate.pfx…

用户认证综合实验

实验需求 需求一:根据下表,完成相关配置 需求二:配置DHCP协议,具体要求如下 需求三:防火墙安全区域配置 需求四:防火墙地址组信息 需求五:管理员 为 FW 配置一个配置管理员。要求管理员可以通…

5.7.2 进度管理

文章目录 进度管理Gantt图PERT图 进度管理 进度安排:通过将项目分解成多个活动,分析活动间的依赖关系,估算工作量,分配资源,制定活动时序。 Gantt图 Gantt图横坐标表示时间,纵坐标表示不同任务。使用一条条…

MQTT(Message Queuing Telemetry Transport)协议(二)

下面为你详细介绍如何基于 TCP 协议对 MQTT 进行封装&#xff0c;包括实现思路、代码示例及代码解释。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <arpa/inet.h> #include <sys/socket.h>…

b站——《【强化学习】一小时完全入门》学习笔记及代码(1-3 多臂老虎机)

问题陈述 我们有两个多臂老虎机&#xff08;Multi-Armed Bandit&#xff09;&#xff0c;分别称为左边的老虎机和右边的老虎机。每个老虎机的奖励服从不同的正态分布&#xff1a; 左边的老虎机&#xff1a;奖励服从均值为 500&#xff0c;标准差为 50 的正态分布&#xff0c;即…

Unity 接入Tripo 文生模型,图生模型

官方网站&#xff1a;https://www.tripo3d.ai/app/home自行注册账号并且登陆下载Unity插件&#xff1a;https://cdn-web.tripo3d.ai/plugin/tripo-unity.zip申请apikey&#xff1a; https://platform.tripo3d.ai/api-keys使用&#xff08;后续过程就按照第二步下载的插件里面的…

Arduino 第十一章:温度传感器

Arduino 第十一章&#xff1a;LM35 温度传感器 一、LM35 简介 LM35 是美国国家半导体公司&#xff08;现德州仪器&#xff09;生产的一款精密集成电路温度传感器。与基于热力学原理的传统温度传感器不同&#xff0c;LM35 能直接将温度转换为电压输出&#xff0c;且输出电压与…

【并发控制、更新、版本控制】.NET开源ORM框架 SqlSugar 系列

系列文章目录 &#x1f380;&#x1f380;&#x1f380; .NET开源 ORM 框架 SqlSugar 系列 &#x1f380;&#x1f380;&#x1f380; 文章目录 系列文章目录一、并发累计&#xff08;累加&#xff09;1.1 单条批量累计1.2 批量更新并且字段11.3 批量更新并且字段list中对应的…

5 分钟用满血 DeepSeek R1 搭建个人 AI 知识库(含本地部署)

最近很多朋友都在问&#xff1a;怎么本地部署 DeepSeek 搭建个人知识库。 老实说&#xff0c;如果你不是为了研究技术&#xff0c;或者确实需要保护涉密数据&#xff0c;我真不建议去折腾本地部署。 为什么呢&#xff1f; 目前 Ollama 从 1.5B 到 70B 都只是把 R1 的推理能力…

opc da 服务器数据 转 EtherCAT项目案例

目录 1 案例说明 2 VFBOX网关工作原理 3 应用条件 4 查看OPC DA服务器的相关参数 5 配置网关采集opc da数据 6 启动EtherCAT从站转发采集的数据 7 在服务器上运行仰科OPC DA采集软件 8 案例总结 1 案例说明 在OPC DA服务器上运行OPC DA client软件查看OPC DA服务器的相…

微信小程序地图开发总结-规划路线

在现代移动应用中&#xff0c;地图导航功能已成为必不可少的一部分。通过地图 API&#xff0c;我们可以轻松地在应用中集成位置服务和路径规划功能。本篇文章将带大家一起实现一个简单的路径导航功能&#xff0c;使用腾讯地图 API结合微信小程序&#xff0c;实现从当前位置到目…