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

news/2025/2/5 23:30:00 标签: word, 开发语言, 人工智能, 深度学习, DeepSeek, nlp

目录

DeepSeek-R1%E6%A8%A1%E5%9E%8B-toc" name="tableOfContents" style="margin-left:0px">1.本地部署DeepSeek-R1模型

2.接入Word

3.效果演示

4.问题反馈


上一篇文章办公新利器:DeepSeek+Word,让你的工作更高效-CSDN博客https://blog.csdn.net/qq_63708623/article/details/145418457?spm=1001.2014.3001.5501https://blog.csdn.net/qq_63708623/article/details/145418457?spm=1001.2014.3001.5501我们通过API key的方式,实现了DeepSeek与Word的有机结合,帮助我们提高办公效率。而DeepSeek由于近期服务器压力较大,暂时停止了API key的注册服务,那么要想实现DeepSeek与Word的结合,我们也可以通过本地部署的方式进行。

本地部署的优势如下:

1.响应速度快

本地处理减少网络传输,响应速度更快。且本地部署的稳定性更强,不受网络波动影响,确保服务持续可用。

2.数据隐私与安全

文本数据无需上传至外部服务器,降低了泄露风险。

3.完全免费

虽然DeepSeek的API key费用极低,但在高强度的办公场景下仍需要消耗一笔费用。本地部署模型能够做到完全免费,不花一分钱。

接下来,本文将讲述如何本地部署DeepSeek-R1模型,并将其集成到Word中。

DeepSeek-R1%E6%A8%A1%E5%9E%8B" name="1.%E6%9C%AC%E5%9C%B0%E9%83%A8%E7%BD%B2DeepSeek-R1%E6%A8%A1%E5%9E%8B">1.本地部署DeepSeek-R1模型

访问ollama官网,点击download。Ollama

根据电脑系统选择相应的版本。点击下载。若下载速度过慢,可关注公众号并回复“ollama”领取安装包。

打开下载的安装包,点击“Install”    

等待安装完成后,按win+r键,输入cmd调出命令行窗口。

输入

ollama --version 

按下回车后出现版本号,即为安装成功。

我们选择推理能力更强的deepseek-r1模型进行本地部署。小编的笔记本显存为6G,因此选择最小的1.5b模型进行部署,如果显存更大的话,可以选择更大的模型。

在命令行窗口中输入:

ollama run deepseek-r1:1.5b

按下回车,模型开始自动下载。

模型下载成功后,自动进入对话模式,我们可以在这里跟模型进行对话。

至此,恭喜你已经完成了deepseek-r1模型的本地部署。

2.接入Word

在进行接下来的操作之前,希望你已经阅读了这篇文章。

办公新利器:DeepSeek+Word,让你的工作更高效-CSDN博客https://blog.csdn.net/qq_63708623/article/details/145418457?spm=1001.2014.3001.5501https://blog.csdn.net/qq_63708623/article/details/145418457?spm=1001.2014.3001.5501

这篇文章讲的是如何利用API key来调用云端的大模型,而本文讲的是调用本地部署的模型,请按照这篇文章进行Word端所有的操作,但在复制代码时,替换为下面的代码: 

Function CallDeepSeekAPI(api_key As String, 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
           
    '本地部署的大模型API地址
    API = "http://localhost:11434/api/chat"
    
    ' 修改请求体为与本地大模型相匹配的格式
    SendTxt = "{""model"": ""deepseek-r1:1.5b"", ""messages"": [{""role"":""user"", ""content"":""" & inputText & """}], ""stream"": false}"
           
    Set Http = CreateObject("MSXML2.XMLHTTP")
    With Http
        .Open "POST", API, False
        .setRequestHeader "Content-Type", "application/json"
        .setRequestHeader "Authorization", "Bearer " & api_key
        .send SendTxt    
        status_code = .Status
        response = .responseText
    End With
           
    ' 弹出窗口显示 API 响应(调试用)
    '
 MsgBox 
"API Response: "
 & response, vbInformation, 
"Debug Info"
           
    If status_code = 200 Then
        CallDeepSeekAPI = response
    Else
        CallDeepSeekAPI = "Error: " & status_code & " - " & response
    End If
           
    Set Http = Nothing
End Function
           
Sub DeepSeekV3()
    Dim api_key As String
    Dim inputText As String
    Dim response As String
    Dim regex As Object
    Dim matches As Object    
    Dim originalSelection As Object
           
    api_key = "pass"
    If api_key = "" Then
        MsgBox "Please enter the API key."
        Exit Sub
    ElseIf Selection.Type <> wdSelectionNormal Then
        MsgBox "Please select text."
        Exit Sub
    End If
           
    ' 保存原始选中的文本
    Set originalSelection = Selection.Range.Duplicate
           
    inputText = Replace(Replace(Replace(Replace(Replace(Selection.Text, "\", "\\"), vbCrLf, ""), vbCr, ""), vbLf, ""), Chr(34), "\""")
    response = CallDeepSeekAPI(api_key, inputText)
           
    If Left(response, 5) <> "Error" Then
        Set regex = CreateObject("VBScript.RegExp")
        
        '
 步骤
1
:提取大模型回复内容    
        With regex
            .Global = True
            .MultiLine = True
            .Pattern = """content"":\s*""([\s\S]*?)"""  ' 更稳健的提取逻辑
        End With
        If regex.Test(response) Then
            response = regex.Execute(response)(0).SubMatches(0)
            
            '
 步骤
2
:处理
Unicode
转义字符(如\u003c -> <)
            response = Replace(response, "\u003c", "<")
            response = Replace(response, "\u003e", ">")
            
            ' 步骤3:删除标签及其内容
            With regex
                .Global = True
                .MultiLine = True
                .IgnoreCase = True
                .Pattern = "[\s\S]*?"
            End With
            response = regex.Replace(response, "")
            
            '
 步骤
4
:转换\n为实际换行符    
            response = Replace(response, "\n", vbCrLf)
            
            ' 步骤5:移除Markdown格式
            With regex
                .Global = True
                .Pattern = "(#+\s*|\*\*|__|`|\*{1,2}|_{1,2}|~~|^>\s)"
                response = .Replace(response, "")
            End With
            response = regex.Replace(response, "")
           
            '
 取消选中原始文本
            Selection.Collapse Direction:=wdCollapseEnd
           
            ' 将内容插入到选中文字的下一行
            Selection.TypeParagraph '
 插入新行
            Selection.TypeText Text:=response
           
            ' 将光标移回原来选中文本的末尾
            originalSelection.Select
        Else
            MsgBox "Failed to parse API response.", vbExclamation
        End If    
    Else
        MsgBox response, vbCritical
    End If
End Sub

此代码在上一次代码的基础上进行了优化,对大模型md格式的输出进行了优化,去掉了md格式的修饰,只保留纯文本;在上一个版本中,大模型输出的“\n”会被当做文本显示,而此版本的代码直接将“\n”当作回车处理,结果更加美观。

替换代码后,即可实现本地大模型的Word调用。

3.效果演示

选中文本后,点击生成,即可看到大模型的回复。

4.问题反馈

此外,还有读者反应,会出现“配置完之后重启word配置的宏消失的问题”,这个问题的解决办法如下:

点击 开发工具 -> 宏。

选中我们配置的DeepSeekV3,点击管理器。    

选中左侧的模块1,点击复制,右侧将会出现模块1,最后点击关闭。

问题顺利解决,再次重启word后,不会出现宏消失的问题。    


http://www.niftyadmin.cn/n/5842469.html

相关文章

【NLP 20、Encoding编码 和 Embedding嵌入】

目录 一、核心定义与区别 二、常见Encoding编码 (1) 独热编码&#xff08;One-Hot Encoding&#xff09; (2) 位置编码&#xff08;Positional Encoding&#xff09; (3) 标签编码&#xff08;Label Encoding&#xff09; (4) 注意事项 三、常见Embedding词嵌入 (1) 基础词嵌入…

Spring 实现注入的方式

一、XML配置文件注入 概念&#xff1a;这是一种传统的依赖注入方式&#xff0c;通过在XML文件中配置bean的相关信息来实现依赖注入。在Spring框架中&#xff0c;需要在applicationContext.xml或spring-config.xml等配置文件中定义bean&#xff0c;并通过<property>标签或…

结合机器视觉与深度学习的 Python 项目

以下是一个结合机器视觉与深度学习的 Python 项目示例&#xff0c;用于对茶汤照片进行背景处理、识别颜色最均匀的区域、进行色彩校正并提取 RGB 值&#xff0c;同时可以处理从采集装置传输到电脑的照片。 项目思路 背景处理&#xff1a;使用 OpenCV 库对图像进行预处理&…

毕业设计:基于深度学习的高压线周边障碍物自动识别与监测系统

目录 前言 课题背景和意义 实现技术思路 一、算法理论基础 1.1 卷积神经网络 1.2 目标检测算法 1.3 注意力机制 二、 数据集 2.1 数据采集 2.2 数据标注 三、实验及结果分析 3.1 实验环境搭建 3.2 模型训练 3.2 结果分析 最后 前言 &#x1f4c5;大四是整个大学…

idea隐藏无关文件

idea隐藏无关文件 如果你想隐藏某些特定类型的文件&#xff08;例如 .log 文件或 .tmp 文件&#xff09;&#xff0c;可以通过以下步骤设置&#xff1a; 打开设置 在菜单栏中选择 File > Settings&#xff08;Windows/Linux&#xff09;或 IntelliJ IDEA > Preference…

Matlab 2023a 安装教程(含安装包)

前言 MATLAB是一种高级技术计算语言和环境&#xff0c;被广泛用于算法开发、数据可视化、数据分析以及科学和工程计算。它提供了丰富的函数库&#xff0c;包括线性代数、统计分析、优化、信号处理、图像处理等方面的函数&#xff0c;使用户能够快速有效地完成各种计算任务。 MA…

有限单元法的相关概念

1. 当单元数目较多时&#xff0c;结构刚度矩阵为什么会呈现稀疏性的特征 一般&#xff0c;一个节点的相关结点不会超过九个&#xff0c;如果网格中有200个节点&#xff0c;则一行中非零子块的个数与该行的子块总数相比不大于9/200&#xff0c;即在5%以下&#xff0c;如果网格的…

【大数据技术】用户行为日志分析(python+hadoop+mapreduce+yarn+hive)

用户行为日志分析(python+hadoop+mapreduce+yarn+hive) 搭建完全分布式高可用大数据集群(VMware+CentOS+FinalShell) 搭建完全分布式高可用大数据集群(Hadoop+MapReduce+Yarn) 本机PyCharm远程连接虚拟机Python 搭建完全分布式高可用大数据集群(MySQL+Hive)