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

目录

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中。

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后,不会出现宏消失的问题。    

<think>好的,用户想了解如何在本地部署Ollama,并结合DeepSeek知识库、联网查询以及上传附件功能。首先,我需要确认Ollama是什么。Ollama是一个支持本地运行大型语言模型的开源工具,类似LM Studio,允许用户在本地运行如Llama、Mistral等模型。 接下来,用户提到的DeepSeek知识库可能是指深度求索公司的开源模型或知识库,需要确认是否已有相关集成或如何将两者结合。可能需要将DeepSeek模型导入Ollama,或者通过API调用。 联网查询功能意味着在本地部署模型需要访问互联网获取实时信息。这可能需要配置网络代理或使用插件,比如类似LangChain的框架来实现外部数据源的接入。 上传附件功能涉及到文件处理,用户可能希望模型能读取本地文件进行分析。这需要Ollama支持文件上传接口,或者通过REST API传递文件内容,再由模型处理。可能需要开发自定义脚本或集成现有文件解析库(如PyPDF2处理PDF,docx处理Word文档)。 本地部署的步骤大致包括:安装Ollama,下载所需模型(如DeepSeek模型),配置网络权限允许联网,设置文件上传接口,并整合知识库。可能需要使用Docker容器化部署,确保环境一致性。同时,考虑安全性和权限管理,避免敏感数据泄露。 用户可能的深层需求是希望在本地环境中拥有一个功能齐全的AI助手,能够结合本地知识库、实时网络信息和处理上传的文件,同时保证数据隐私。需要评估各个组件的兼容性,是否有现成的解决方案,或者需要自行开发部分功能。例如,Ollama本身可能不支持联网和文件处理,需借助外部工具或编写扩展代码来实现。</think>以下是对 Ollama 本地部署结合深度求索(DeepSeek)知识库、联网查询及文件上传功能的介绍,采用清晰的中文分点说明: --- ### **1. 核心组件解析** - **Ollama** 开源工具,支持在本地运行大型语言模型(如 Llama3、DeepSeek 等),提供简洁的 CLI 和 API 接口,无需联网即可调用模型。 - **DeepSeek 知识库** 深度求索公司开源的高质量模型(如 DeepSeek-R1DeepSeek-MoE),擅长中文场景,可通过 Ollama 直接拉取部署: ```bash ollama run deepseek-chat # 示例命令(具体模型名以官方仓库为准) ``` - **联网查询** 通过插件或代码扩展模型访问互联网的能力,常用方案: - **LangChain**:框架集成搜索引擎 API(如 Serper、Google Custom Search)。 - **BingAPI**:直接调用微软搜索接口获取实时信息。 - **文件上传与解析** 支持用户上传 PDF、Word 等文件,常用工具: - **LangChain Document Loaders**:解析多种格式的文档为结构化文本。 - **OCR 工具**:处理扫描件或图片中的文字(如 Tesseract)。 --- ### **2. 本地部署流程** #### **步骤 1:安装基础环境** ```bash # 安装 Ollama(以 Linux 为例) curl -fsSL https://ollama.com/install.sh | sh ``` #### **步骤 2:部署 DeepSeek 模型** ```bash # 拉取模型(假设模型已上架官方库) ollama pull deepseek-chat # 启动模型服务 ollama serve # 默认监听 11434 端口 ``` #### **步骤 3:集成联网功能** ```python # 示例:使用 LangChain + Serper 实现联网 from langchain.utilities import GoogleSerperAPIWrapper search = GoogleSerperAPIWrapper(serper_api_key="YOUR_KEY") result = search.run("今日北京天气") print(result) # 将结果输入模型增强回答 ``` #### **步骤 4:实现文件上传接口** ```python # 使用 FastAPI 创建文件上传端点 from fastapi import FastAPI, File, UploadFile from langchain.document_loaders import PyPDFLoader app = FastAPI() @app.post("/upload") async def upload_file(file: UploadFile = File(...)): with open("temp.pdf", "wb") as f: f.write(await file.read()) loader = PyPDFLoader("temp.pdf") pages = loader.load() return {"text": pages[0].page_content} # 返回解析后的文本 ``` #### **步骤 5:整合所有功能** 通过 API 将模型、搜索、文件解析连接,构建完整流水线: 1. 用户上传文件 → 解析为文本。 2. 用户提问 → 自动判断是否需要联网检索。 3. 模型综合本地知识库、网络结果、文件内容生成回答。 --- ### **3. 关键配置与优化** - **硬件要求** - 7B 模型需 8GB 以上显存,推荐 NVIDIA GPU。 - 使用量化版本(如 4-bit)降低资源占用。 - **安全增强** - 文件隔离:在 Docker 容器中运行,防止敏感数据泄露。 - 访问控制:通过 Nginx 配置 API 密钥认证。 - **效率优化** - 缓存机制:对常见搜索结果进行缓存(Redis/Memcached)。 - 异步处理:使用 Celery 处理耗时任务(如大文件解析)。 --- ### **4. 应用场景示例** - **企业知识库** 上传内部文档,模型快速检索制度、流程等信息。 - **学术研究** 分析上传的论文,结合最新网络数据撰写综述。 - **个人助手** 管理本地笔记,联网查询实时新闻并生成摘要。 --- ### **5. 资源推荐** - [Ollama 官方文档](https://ollama.ai/) - [DeepSeek 开源模型仓库](https://github.com/deepseek-ai) - [LangChain 集成指南](https://python.langchain.com/) 部署时需根据具体需求调整架构,建议从基础功能逐步扩展,确保系统稳定性和数据安全。
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

G.E.N.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值