office和deepseek对接有两个方式,两种方式都使用的是本地模型Deepseek-v2:16b。(使用Deepseek-R1:14b模型会出现大段推理过程,使用Deepseek-v2:16b则会直接出结果)
一、使用vba代码制作office 插件
前提条件:
1)下载wps.vba.exe,下载地址:wps.vba.exe 下载链接
2)WPS打开开发工具。
安装wps.vba.exe
打开WPS开发工具。点击左上角【文件】->【选项】->【自定义功能】->自定义功能区中选择【所有选项卡】->选中【开发工具】->点击【添加(A)】->最后点击【确定】,如下图所示:
添加【开发工具】后重启,出现VB编辑器;
点击【VB编辑器】,选择【Nornal】,点击【插入】,选择【模块】;
在模块中将下面代码复制,【API】输入安装Deepseek-v2:16b 服务器的IP地址,【model】输入你所需要调用的模型名称,ctrl + s 保存并关闭,如下图所示;
Function CallDeepSeekAPI(inputText As String) As String
Dim API As String
Dim SendTxt As String
Dim Http As Object
Dim status_code As Integer
Dim response As String
Dim regex As Object
Dim matches As Object
' 本地 Ollama API
API = "http://192.168.X.X:11434/api/chat"
' 构造 JSON 请求体
SendTxt = "{""model"": ""deepseek-v2:16b"", ""messages"": [{""role"":""system"", ""content"":""You are a Word assistant""}, {""role"":""user"", ""content"":""" & inputText & """}], ""stream"": false}"
' 发送 HTTP 请求
Set Http = CreateObject("MSXML2.XMLHTTP")
With Http
.Open "POST", API, False
.setRequestHeader "Content-Type", "application/json"
.send SendTxt
status_code = .Status
response = .responseText
End With
' 检查请求是否成功
If status_code = 200 Then
' 解析 JSON 响应,提取 AI 回复
Set regex = CreateObject("VBScript.RegExp")
With regex
.Global = True
.MultiLine = True
.IgnoreCase = False
.Pattern = """content"":""(.*?)"""
End With
Set matches = regex.Execute(response)
' 提取 AI 回复的内容
If matches.Count > 0 Then
response = matches(0).SubMatches(0)
' 去除换行符与 `###` 之类的格式
response = Replace(response, "\n", " ")
response = Replace(response, "#", "")
' 返回优化后的 AI 结果
CallDeepSeekAPI = response
Else
CallDeepSeekAPI = "AI 解析失败"
End If
Else
CallDeepSeekAPI = "Error: " & status_code & " - " & response
End If
Set Http = Nothing
End Function
Sub DeepSeekV3()
Dim inputText As String
Dim response As String
Dim originalSelection As Object
' 检查是否有选中文本
If Selection.Type <> wdSelectionNormal Then
MsgBox "请先选择文本!", vbExclamation
Exit Sub
End If
' 记录原始选中文本
Set originalSelection = Selection.Range.Duplicate
inputText = Trim(Selection.Text)
' 处理文本,防止 JSON 解析错误
inputText = Replace(inputText, "\", "\\")
inputText = Replace(inputText, vbCrLf, " ")
inputText = Replace(inputText, vbCr, " ")
inputText = Replace(inputText, vbLf, " ")
inputText = Replace(inputText, Chr(34), "\""") ' 转义引号
' 调用本地 DeepSeek API
response = CallDeepSeekAPI(inputText)
' 插入 AI 结果到 WPS
If Left(response, 5) <> "Error" Then
Selection.Collapse Direction:=wdCollapseEnd
Selection.TypeParagraph
Selection.TypeText Text:=response
originalSelection.Select
Else
MsgBox response, vbCritical
End If
End Sub
点击左上角【文件】->【选项】->【自定义功能】->点击右侧【工具】->点击【新建组】;
点击左侧选择【宏】->选中生成的脚本,点击上述【新建组】->点击【添加(A)】->最后点击【确定】;
添加效果如下图所示:
此时输入文本并选中,点击【Normal 模块1:Deepseek-V2】
最终效果如下图所示:
二、使用海鹦office-ai助手
海鹦office-AI是将以插件形式存在,此插件除WPS的word 和excel 之外,微软 office的word 和excel 之外也可用此插件。
前提条件:
下载海鹦office-AI助手:海鹦office-AI助手下载地址
下载软件后双击安装,将自动安装所需要插件等
下载后打开WPS,将出现一个office-AI助手,使用微信登录;
点击【编辑】->【大模型设置】->输入【服务地址】->点击【刷新模型列表】->选择【deepseek-v2:16b】模型->最后点击【保存】,
此时模型调用的模型为本地模型,输入需生成文档,则可生成;
点击导出到左侧,文本将以正常格式导出到word文档中。
本文由 yorickbao 创作,采用 知识共享署名4.0 国际许可协议进行许可。
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。