本地部署的优势如下:
1.响应速度快
本地处理减少网络传输,响应速度更快。且本地部署的稳定性更强,不受网络波动影响,确保服务持续可用。
2.数据隐私与安全
文本数据无需上传至外部服务器,降低了泄露风险。3.完全免费虽然DeepSeek的API key费用极低,但在高强度的办公场景下仍需要消耗一笔费用。本地部署模型能够做到完全免费,不花一分钱。接下来,本文将讲述如何本地部署DeepSeek-R1模型,并将其集成到Word中。
1.本地部署DeepSeek-R1模型
访问ollama官网,点击download。https://ollama.com/
根据电脑系统选择相应的版本。点击下载。若下载速度过慢,可关注公众号并回复“ollama”领取安装包。
打开下载的安装包,点击“Install”
等待安装完成后,按win+r键,输入cmd调出命令行窗口。
输入
ollama--version
按下回车后出现版本号,即为安装成功。
我们选择推理能力更强的deepseek-r1模型进行本地部署。小编的笔记本显存为6G,因此选择最小的1.5b模型进行部署,如果显存更大的话,可以选择更大的模型。
在命令行窗口中输入:
ollamarundeepseek-r1:1.5b
按下回车,模型开始自动下载。
模型下载成功后,自动进入对话模式,我们可以在这里跟模型进行对话。
至此,恭喜你已经完成了deepseek-r1模型的本地部署
。
2.接入Word
在进行接下来的操作之前,希望你已经阅读了这篇文章办公新利器:DeepSeek+Word,让你的工作更高效。
这篇文章讲的是如何利用API key来调用云端的大模型,而本文讲的是调用本地部署的模型,请按照这篇文章办公新利器:DeepSeek+Word,让你的工作更高效进行Word端所有的操作,但在复制代码时,替换为下面的代码:
FunctionCallDeepSeekAPI(api_keyAsString,inputTextAsString)AsStringDimAPIAsStringDimSendTxtAsStringDimHttpAsObjectDimstatus_codeAsIntegerDimresponseAsString'本地部署的大模型API地址API="http://localhost:11434/api/chat"'修改请求体为与本地大模型相匹配的格式SendTxt="{""model"":""deepseek-r1:1.5b"",""messages"":[{""role"":""user"",""content"":"""&inputText&"""}],""stream"":false}"SetHttp=CreateObject("MSXML2.XMLHTTP")WithHttp.Open"
OST",API,False.setRequestHeader"Content-Type","application/json".setRequestHeader"Authorization","Bearer"&api_key.sendSendTxtstatus_code=.Statusresponse=.responseTextEndWith'弹出窗口显示API响应(调试用)'MsgBox"APIResponse:"&response,vbInformation,"DebugInfo"Ifstatus_code=200ThenCallDeepSeekAPI=responseElseCallDeepSeekAPI="Error:"&status_code&"-"&responseEndIfSetHttp=NothingEndFunctionSubDeepSeekV3()Dimapi_keyAsStringDiminputTextAsStringDimresponseAsStringDimregexAsObjectDimmatchesAsObjectDimoriginalSelectionAsObjectapi_key="pass"Ifapi_key=""ThenMsgBox"
leaseentertheAPIkey."ExitSubElseIfSelection.Type<>wdSelectionNormalThenMsgBox"
leaseselecttext."ExitSubEndIf'保存原始选中的文本SetoriginalSelection=Selection.Range.DuplicateinputText=Replace(Replace(Replace(Replace(Replace(Selection.Text,"\","\\"),vbCrLf,""),vbCr,""),vbLf,""),Chr(34),"\""")response=CallDeepSeekAPI(api_key,inputText)IfLeft(response,5)<>"Error"ThenSetregex=CreateObject("VBScript.RegExp")'步骤1:提取大模型回复内容Withregex.Global=True.MultiLine=True.Pattern="""content"":\s*""([\s\S]*?)"""'更稳健的提取逻辑EndWithIfregex.Test(response)Thenresponse=regex.Execute(response)(0).SubMatches(0)'步骤2:处理Unicode转义字符(如\u003c-><)response=Replace(response,"\u003c","<")response=Replace(response,"\u003e",">")'步骤3:删除标签及其内容Withregex.Global=True.MultiLine=True.IgnoreCase=True.Pattern="[\s\S]*?"EndWithresponse=regex.Replace(response,"")'步骤4:转换\n为实际换行符response=Replace(response,"\n",vbCrLf)'步骤5:移除Markdown格式Withregex.Global=True.Pattern="(#+\s*|\*\*|__|`|\*{1,2}|_{1,2}|~~|^>\s)"response=.Replace(response,"")EndWithresponse=regex.Replace(response,"")'取消选中原始文本Selection.CollapseDirection:=wdCollapseEnd'将内容插入到选中文字的下一行Selection.TypeParagraph'插入新行Selection.TypeTextText:=response'将光标移回原来选中文本的末尾originalSelection.SelectElseMsgBox"FailedtoparseAPIresponse.",vbExclamationEndIfElseMsgBoxresponse,vbCriticalEndIfEndSub此代码在上一次代码的基础上进行了优化,对大模型md格式的输出进行了优化,去掉了md格式的修饰,只保留纯文本;在上一个版本中,大模型输出的“\n”会被当做文本显示,而此版本的代码直接将“\n”当作回车处理,结果更加美观。
替换代码后,即可实现本地大模型的Word调用。
3.效果演示
选中文本后,点击生成,即可看到大模型的回复。
4.问题反馈
此外,还有读者反应,会出现“配置完之后重启word配置的宏消失的问题”,这个问题的解决办法如下:
点击 开发工具 -> 宏。
选中我们配置的DeepSeekV3,点击管理器。
选中左侧的模块1,点击复制,右侧将会出现模块1,最后点击关闭。
问题顺利解决,再次重启word后,不会出现宏消失的问题。
| 欢迎光临 链载Ai (https://www.lianzai.com/) | Powered by Discuz! X3.5 |