摘要:通过VBA调用英伟达的API(具体获取方式之前已提到多次不再赘述),采用非流式生成方式。用户只需选中文字并点击模块名称,稍等片刻即可生成结果。该模块基于推理文本模型,并保留了模型的思考过程。
如今,随着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 IfEnd 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 IfEnd Sub宏的使用
宏的使用有很多方法,快捷键、放在功能区都行,这里以自定义功能区简单介绍。
开启开发工具。点击“开发工具”选项卡。点击“Visual Basic”。右键当前文稿下的“模块”,选择“插入模块”。复制上述代码到新建的模块中。自定义功能区
点击“文件”->“选项”->“自定义功能区”。选择“宏”,在右侧自定义功能区新建选项卡和组。将宏添加至组中,重命名并更换图标。效果预览
小结
最近几天,我一直在探索DeepSeek的应用,深感其高性能和低成本对工作生活的普惠意义。对于个人和小企业而言,人工智能的应用应紧密结合自身场景,无需考虑在本地搭建模型。尽管DeepSeek模型开源,但在本地运行全功能模型成本较高。随着各大厂商的跟进,生成式模型可能成为基础设施,如同GitHub一样普及。我们需要做的是提前跑通整个流程,以便在新模型出现时能迅速应用。目前,DeepSeek虽强大,但运行速度仍有提升空间,尤其是RI推理模型。让我们保持热情,持续关注其发展。
BY
纯个人经验,如有帮助,请收藏点赞,如需转载,请注明出处。
来源:千寻
免责声明:本站系转载,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本站联系,我们将在第一时间删除内容!