WPS文档中接入DeepSeek接口的方法,用wps自带的JS宏实现。

最近deepseek比较火,捣鼓了wps接入其接口的方法,记录如下。

  1. 申请deepseek接口api,不会直接问deepseek就行了。
  2. 在Project(Normal.dotm)——代码下新增一个模块,录入代码:

/**
 * 使用DeepSeek API对WPS文档中的选中文本进行润色或续写
 */
function DeepSeekPolish() {
	Console.log("开始调用接口DeepSeekPolish");
    // 获取选中的文本
    let selectedText = Application.Selection.Text;
    if (!selectedText || selectedText.trim() === "") {
        alert("请选择需要润色或续写的文本!");
        return;
    }

    // 替换特殊字符以适应JSON格式
    selectedText = selectedText.replace(/\\/g, "\\\\")
                               .replace(/\n/g, "\\n")
                               .replace(/"/g, "\\\"");
    
    // DeepSeek API密钥(请替换为你的API密钥)
    let apiKey = "改成自己的密钥";
    let url = "https://api.deepseek.com/chat/completions";

    // 构造请求数据
    let data = {
        model: "deepseek-chat",
        messages: [
            { role: "user", content: selectedText },
            { role: "assistant", content: "请润色或续写以上内容" }
        ],
        temperature: 0.7
    };

    // 发送POST请求
    let xhr = new XMLHttpRequest();
    xhr.open("POST", url, false);
    xhr.setRequestHeader("Content-Type", "application/json");
    xhr.setRequestHeader("Authorization", "Bearer " + apiKey);
    xhr.send(JSON.stringify(data));
    
    // 处理响应
    try{
        if (xhr.status === 200) {
      		let response = JSON.parse(xhr.responseText);
            let result = response.choices[0].message.content;
            result = result.replace(/\\n/g, "\n"); // 恢复换行符
        
            //移动光标到选取末尾,另起一行
            Application.Selection.MoveEnd;
            Application.Selection.TypeParagraph;
            Application.Selection.TypeBackspace;
            // 将结果插入到文档中
            Application.Selection.Text = result;
            alert("润色或续写完成!");  
        } else {
            alert("请求失败:" + xhr.statusText + "\n响应内容:" + xhr.responseText);
        }
    }catch(error){
        Console.log("错误信息" + error.message)
        }
}

这样基本上就完成了功能,选中文字,运行宏就行了。

进阶:

1.给宏添加快捷方式,入口在“文件——选项”

2.更改代码中POST的构造数据,可以实现各种自定义功能,基本原理就是更改AI的提示词。例如:

// 构造请求数据
    let data = {
        model: "deepseek-chat",
        messages: [
            { role: "user", content: selectedText },
            { role: "assistant", content: "请帮我检查错别字" }
        ],
        temperature: 0.7
    };

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐