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

WPS如何接入DeepSeek

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

一、文本扩写

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

2、点击"开发工具"。

3、点击"查看代码"。

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

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

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

javascript 复制代码
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步的代码粘贴换成

javascript 复制代码
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中选择宏时选择对应的函数即可。

三、翻译

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

javascript 复制代码
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密钥");
    }
}
相关推荐
鲸临城下9 分钟前
R-CNN 模型算法流程梳理
人工智能·深度学习·算法·目标检测·目标跟踪·cnn·r-cnn
池央17 分钟前
调用蓝耘Maas平台大模型API打造个人AI助理实战
人工智能·语言模型·自然语言处理
汪子熙27 分钟前
Angular 与 rxjs 中 take(1) 的运用解析
前端·javascript·面试
audyxiao00134 分钟前
AAAI 2025论文分享│STD-PLM:基于预训练语言模型的时空数据预测与补全方法
人工智能·计算机·语言模型·自然语言处理·预训练·时空预测·注意力模块
vijaycc43 分钟前
python学习打卡day40
人工智能·深度学习·机器学习
阿巴阿阿巴巴巴巴1 小时前
【深度学习相关安装及配环境】Anaconda搭建虚拟环境并安装CUDA、cuDVV和对应版本的Pytorch,并在jupyter notebook上部署
人工智能·pytorch·python·深度学习·jupyter·cuda
deephub1 小时前
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
人工智能·python·jupyter·大语言模型·mcp
李昊哲小课1 小时前
脱发因素机器学习数据分析
人工智能·机器学习·数据分析·scikit-learn
焦耳加热1 小时前
多元素纳米颗粒:开启能源催化新纪元
人工智能·自动化·能源·材料工程
bug总结1 小时前
如何在 Vue.js 中集成 Three.js —— 创建一个旋转的 3D 立方体
前端·javascript·vue.js