分享

Word接入DeepSeek r1,轻松实现智能文本生成与润色

 晴耕雨读天 2025-02-04 发布于广西

之前我曾利用Word的VBA宏接入ChatGPT 3.5的API。然而,由于OpenAI对中国大陆地区的限制,这一方案难以持续使用。随后出现的大型语言模型要么难以调用,要么收费昂贵。如今,随着DeepSeek的开源,结合Word这一办公常用场景,我决定将DeepSeek模型接入Word,实现文本生成和文本润色两大功能。

Vba  code

文本生成模块代码

通过VBA调用英伟达的API(具体获取方式之前已提到多次不再赘述),采用非流式生成方式。用户只需选中文字并点击模块名称,稍等片刻即可生成结果。该模块基于推理文本模型,并保留了模型的思考过程。

Sub DeepSeek()
    Dim selectedText As String
    Dim apiKey As String
    Dim response As Object, re As String
    Dim midString As String
    Dim ans As String
    If Selection.Type = wdSelectionNormal Then
        selectedText = Selection.Text
        selectedText = Replace(selectedText, ChrW$(13), '')
        apiKey = 'your_api_key_here'
        URL = 'https://integrate.api./v1/chat/completions'
        Set response = CreateObject('MSXML2.XMLHTTP')
        response.Open 'POST', URL, False
        response.setRequestHeader 'Content-Type', 'application/json'
        response.setRequestHeader 'Authorization', 'Bearer ' + apiKey
        response.Send '{''model'':''deepseek-ai/deepseek-r1'', ''messages'':[{''role'':''user'',''content'':''' & selectedText & '''}], ''temperature'':0.7}'
        
        re = response.responseText
        midString = Mid(re, InStr(re, '''content'':''') + 11)
        ans = Split(midString, '''')(0)
        ans = Replace(ans, '\n', '')
        Selection.Text = selectedText & vbNewLine & ans
        Else
        Exit Sub
    End If

End Sub

文本润色模块

文本润色模块内置了提示词,大家可根据需要修改提示词,实现翻译、润色、续写等功能。

Sub DeepSeekPolish()
    Dim selectedText As String
    Dim apiKey As String
    Dim response As Object, re As String
    Dim midString As String
    Dim ans As String
    Dim polishPrompt As String
    
    ' 检查是否有正常选中的文本
    If Selection.Type = wdSelectionNormal Then
        ' 获取选中文本并去除不需要的字符
        selectedText = Selection.Text
        selectedText = Replace(selectedText, ChrW$(13), '')
        
        ' 定义API密钥和请求URL
        apiKey = 'your_api_key_here'
        URL = 'https://integrate.api./v1/chat/completions'
        
        ' 设置润色提示词
        polishPrompt = '请润色以上文字,要求语句通顺,条理清晰,专业而合理。'
        
        ' 创建HTTP请求对象并设置参数
        Set response = CreateObject('MSXML2.XMLHTTP')
        response.Open 'POST', URL, False
        
        ' 添加必要的头部信息
        response.setRequestHeader 'Content-Type', 'application/json'
        response.setRequestHeader 'Authorization', 'Bearer ' + apiKey
        
        ' 发送请求,注意在JSON字符串中添加了polishPrompt
        response.Send '{''model'':''deepseek-ai/deepseek-r1'', ''messages'':[{''role'':''user'',''content'':''' & selectedText & '''}, {''role'':''assistant'', ''content'':''' & polishPrompt & '''}], ''temperature'':0.7}'
        
        ' 处理响应数据
        re = response.responseText
        midString = Mid(re, InStr(re, '''content'':''') + 11)
        ans = Split(midString, '''')(0)
        ans = Replace(ans, '\n', '')
        
        ' 将原选中文本与润色后的文本一起插入文档中
        Selection.Text = selectedText & vbNewLine & ans
    Else
        Exit Sub
    End If
End Sub

宏的使用

宏的使用有很多方法,快捷键、放在功能区都行,这里以自定义功能区简单介绍。

添加宏

  1. 开启开发工具。
  2. 点击“开发工具”选项卡。
  3. 点击“Visual Basic”。
  4. 右键当前文稿下的“模块”,选择“插入模块”。
  5. 复制上述代码到新建的模块中。
图片

自定义功能区

  1. 点击“文件”->“选项”->“自定义功能区”。
  2. 选择“宏”,在右侧自定义功能区新建选项卡和组。
  3. 将宏添加至组中,重命名并更换图标。图片

效果预览

图片

小结

最近几天,我一直在探索DeepSeek的应用,深感其高性能和低成本对工作生活的普惠意义。对于个人和小企业而言,人工智能的应用应紧密结合自身场景,无需考虑在本地搭建模型。尽管DeepSeek模型开源,但在本地运行全功能模型成本较高。随着各大厂商的跟进,生成式模型可能成为基础设施,如同GitHub一样普及。我们需要做的是提前跑通整个流程,以便在新模型出现时能迅速应用。目前,DeepSeek虽强大,但运行速度仍有提升空间,尤其是RI推理模型。让我们保持热情,持续关注其发展。

BY

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多