之前我曾利用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.nvidia.com/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.nvidia.com/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
宏的使用
宏的使用有很多方法,快捷键、放在功能区都行,这里以自定义功能区简单介绍。
添加宏
- 开启开发工具。
- 点击“开发工具”选项卡。
- 点击“Visual Basic”。
- 右键当前文稿下的“模块”,选择“插入模块”。
- 复制上述代码到新建的模块中。
自定义功能区
- 点击“文件”->“选项”->“自定义功能区”。
- 选择“宏”,在右侧自定义功能区新建选项卡和组。
- 将宏添加至组中,重命名并更换图标。
效果预览
小结
最近几天,我一直在探索DeepSeek的应用,深感其高性能和低成本对工作生活的普惠意义。对于个人和小企业而言,人工智能的应用应紧密结合自身场景,无需考虑在本地搭建模型。尽管DeepSeek模型开源,但在本地运行全功能模型成本较高。随着各大厂商的跟进,生成式模型可能成为基础设施,如同GitHub一样普及。我们需要做的是提前跑通整个流程,以便在新模型出现时能迅速应用。目前,DeepSeek虽强大,但运行速度仍有提升空间,尤其是RI推理模型。让我们保持热情,持续关注其发展。
BY
纯个人经验,如有帮助,请收藏点赞,如需转载,请注明出处。
微信公众号:环境猫 er
CSDN : 细节处有神明
个人博客: https://maoyu92.github.io/
相关文章
GPT3.5 与word的结合,提前享受office copilot_wordgpt-CSDN博客
nivdia 接入 deepseek r1 免费调用API-CSDN博客
DeepSeek 崛起引发的思考:一场颠覆性技术革命如何重塑全球AI与半导体格局-CSDN博客
使用Streamlit与DeepSeek API快速构建Chat应用-CSDN博客
deepseek+cursor打造免费智能代码编辑器-CSDN博客