【WPSAI】当WPS遇上本地版DeepSeek-零帧起手创建不联网也能使用的AI助手

Tam Kingsley

创作者俱乐部成员

前言

还在因为在线版DeepSeek的不稳定而烦恼?还在因为离线环境下无法使用AI而烦恼?为了解决这个问题,今天我们尝试部署一个本地版的AI,一个属于自己的WPSAI~

效果展示

平时都是先看操作,今天就先把效果展示了,看看真正属于我们自己的WPSAI助手

本地AI效果

WPSAI效果

代码展示

代码截图

代码解析

/**
* 调用本地部署AI大模型的JSA
* @功能:对WPS选中文字进行扩写功能
* @author:TKing
* @version 0.1—Alpha
* @date 2025-02-10
*/

const LOCALAI_API_URL = "http://localhost:11434/v1/chat/completions"; //本地ollama的API接口地址
const LOCALAI_MODEL = "deepseek-r1:1.5b";//加载的模型

function LocalAIProcess()
{

const selection = Application.Selection;

const SelectText = "你是一位专业写作专家,要求保持原文的核心意思不变增加相关细节和背景信息,使得原文更加完善,请扩写以下文本:"+selection.Text;


try {
// 显示加载提示
//alert("AI思考中,请稍候...");
console.log("AI思考中,请稍候...");
callLocalAI(SelectText)

} catch (error) {
console.error("扩写失败:", error);
alert("扩写失败:" + error.message);
}

}

function callLocalAI(intext){
const xhr = new XMLHttpRequest();

const requestData = JSON.stringify({
"model": LOCALAI_MODEL,
"messages": [
{"role": "system", "content": "你是一个本地的AI助理"},
{"role": "user", "content": intext}
],
"temperature": 0.7
});

xhr.open("POST", LOCALAI_API_URL, false); // 同步请求
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(requestData);

if (xhr.status == 200) {
const response = JSON.parse(xhr.responseText);
const reText = response.choices[0].message.content;

nPara = ActiveDocument.Content.Paragraphs.Add(ActiveDocument.Paragraphs.Last.Range)

// 在新段落中写入内容
nPara.Range.Text = '\n生成内容如下:\n' + reText

console.log(reText)

} else {
alert("API调用失败!状态码:" + xhr.status + "响应内容:" + xhr.responseText);
//console.log("API调用失败!状态码:" + xhr.status + "响应内容:" + xhr.responseText);
}
}
💡

部分解析:

  1. 接口地址针对本地部署不需要修改 "http://localhost:11434/v1/chat/completions",如果是局域网其他电脑本地部署了ollama大模型且本机能正常访问部署电脑,将localhost改为部署电脑的IP地址即可

  1. 模型名称deepseek-r1:1.5b根据下载的大模型填写即可,可以通过命令行查看

本地AI环境部署

Ollama部署

Ollama官方网站

这是Ollama官方网站界面,官方地址:https://ollama.com

Ollama安装包下载

官网提供Windows、MacOS和Linux这几个系统的安装包,用户可以按照各自系统情况下载对应按照包,文章以Windows系统为例子介绍~

Ollama安装步骤

下载完成后点击安装包图标,安装过程为全自动执行不需要人工干预~

💡

注意:以0.5.7版本为例,在Windows的系统下安装是默认安装在C盘的~

Ollama安装成功

在命令行输入ollama能如下图所示显示就代表安装成功

AI大模型挂载

大模型安装选择

点击Model下面能看到包括deepseek-r1在内的众多大模型

以deepseek-r1举例,在点击进入详细页面后能看见其模型包括1.5b到671b的大模型,选择自己适合的版本下载即可

大模型安装下载

以deepseek-r1:7b这个模型为例子,当选择后点击可以获得ollama run deepseek-r1:7b这串命令代码,将这串命令代码在命令行窗口粘贴回车运行等待下载部署即可

💡

注意:以上通过命令行部署的方法,需要在网络畅通的情况下操作,在离线环境下不能使用该命令行进行在线拉取部署

大模型安装成功

当下载并部署完成后,命令行窗口会显示success此时代表该模型已经下载部署成功~

💡

注意:通过该命令部署的大模型也是默认保存在C盘上的~

大模型使用体验

在成功后,在命令行输入提问词,例如:“你是谁”,AI大模型就会进行回答,通过使用证明功能已经部署成功~

其它补充

  1. 上面关于本地部署的情况展示的是本机上的情况,那么大家是不是疑问在局域网中其它电脑能不能连自己的电脑的AI呢?答案是肯定可以的~

  1. 上面说的大模型部署下载时其实还是需要联网的,那有没有能够下好安装包后完全离线的部署呢?答案也是肯定可以的~

WPS版本

12.1.0.20259-release

系统版本

WIndows11

广东省
浏览 5647
4
16
分享
16 +1
17
4 +1
全部评论 17
 
闵鑫

创作者俱乐部成员

老师这个可以啊,学习
· 湖北省
回复
 
学习
· 浙江省
回复
 
学习
· 广东省
回复
 
懒得批爆

创作者俱乐部成员

想看看你的本地硬件配置,按照你说的使用了7b的大数据模型,那就是4.7GB的模型数据,还需要12GB的显存和16GB的内存才行。 我想让公司配置个671b的大模型,那个要齐全些,对公司的数据分析也更到位。
· 四川省
回复
 
您好,我这边总是扩写提示XMLHttpRequest is not defined
· 浙江省
回复
解决了,公司wps不能联网,访问不到自己部署的模型
· 浙江省
回复
 
api,地址应该怎样写,我下面几个都不对 端口是对的 ,案例里const LOCALAI_API_URL = "http://localhost:11434/v1/chat/completions"; //本地ollama的API接口地址 //const LOCALAI_API_URL = "http://localhost:11434/api/chat";//本地ollama的API接口地址 //const LOCALAI_API_URL = "http://localhost:11434";//本地ollama的API接口地址 网页返回Ollama is running但是wps返回API调用失败代码404 //const LOCALAI_API_URL = "http://localhost:11434/v1/";//本地ollama的API接口地址 const LOCALAI_MODEL = "deepseek-r1:7b";//加载的模型";
· 宁夏
回复
Tam Kingsley

创作者俱乐部成员

这个要看你HTTP请求URL是什么,上面说的请求URL是http://localhost:11434/v1/chat/completions的情况下,当以POST方式时,请求体要是const requestData = JSON.stringify({ "model": LOCALAI_MODEL, "messages": [ {"role": "system", "content": "你是一个本地的AI助理"}, {"role": "user", "content": intext} ], "temperature": 0.7 }); 这种格式,这个是兼容openai接口的传参方式,您按照文章的代码API接口地址都不需要改(本机部署的情况下),你只需要修改一下模型的名称就可以(看您本地部署的模型)
· 广东省
回复
 
这段代码要放在哪里运行呢
· 重庆
回复
Tam Kingsley

创作者俱乐部成员

Alt+F11组合键 或者 或者在功能区的开发工具打开WPS宏编辑器,然后复制这段代码保存就可以了,文件要保存为docm格式~
· 广东省
回复
 
打卡
· 黑龙江省
回复
 
大佬,Mac系统也可以这样将deepseek接入WPS吗
· 上海
回复
Tam Kingsley

创作者俱乐部成员

Mac没试过,如果支持JS宏的一般都应该支持~
· 广东省
回复
 
王禹成

创作者俱乐部成员

哦吼可以啊
· 浙江省
回复
Tam Kingsley

创作者俱乐部成员

看着其他大神都是写连接在线API的,我就写写连接本地API的了~
· 广东省
回复
 
跟着大佬学
· 福建省
回复
Tam Kingsley

创作者俱乐部成员

互相学习~
· 广东省
回复