返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

本地Ollama部署DeepSeek R1模型接入Word

[复制链接]
链载Ai 显示全部楼层 发表于 1 小时前 |阅读模式 打印 上一主题 下一主题



本地部署的优势如下:

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是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ