Word中接入大模型教程
前言
为什么要在word中接入大模型呢?
个人觉得最大的意义就是不用来回切换与复制粘贴了吧。
今天分享一下昨天实践的在word中接入大模型的教程。
在word中接入大模型最简单的方式就是使用vba。
vba代码要做的事,拆分一下就是:
- 获取用户选中的文本,未选择弹窗提示。
- 向大模型API接口发送一个Post请求。
- 解析返回的json数据,获取content的内容。
- 为了用户体验,打造假流式效果。
效果

实践
第一步:获取用户选中的文本,未选择弹窗提示。
vba代码:
Sub GetSelectedText()
Dim selectedText As String
If Selection.Type = wdSelectionIP Then ' 如果是插入点(光标闪烁),则未选择文本
MsgBox "未选中任何文本!请先选择文本。", vbExclamation
Else
selectedText = Selection.Text
If Trim(selectedText) = "" Then ' 再次检查 Trim 后的文本是否为空,以防用户只选择了空格
MsgBox "未选中任何文本!请先选择文本。", vbExclamation
Else
MsgBox "选中的文本是: " & selectedText
End If
End If
End Sub
效果:


第二步:向大模型API接口发送一个Post请求。
在第一步中获取的文本大概率会包含换行符,如果没有去掉,在发送请求的时候会报错,因此第一步的完整代码还需要包括去除换行符的部分,完整代码如下所示:
Dim selectedText As String
If Selection.Type = wdSelectionIP Then ' 如果是插入点(光标闪烁),则未选择文本
MsgBox "未选中任何文本!请先选择文本。", vbExclamation
Else
selectedText = Selection.Text
If Trim(selectedText) = "" Then ' 再次检查 Trim 后的文本是否为空,以防用户只选择了空格
MsgBox "未选中任何文本!请先选择文本。", vbExclamation
Else
' **** 在这里添加删除换行符的代码 ****
selectedText = Replace(selectedText, Chr(13), "") ' 删除回车符 (CR)
selectedText = Replace(selectedText, Chr(10), "") ' 删除换行符 (LF)
End If
End If
在vba中发送Post,可以使用MSXML2.XMLHTTP,代码如下:
API = "https://api.siliconflow.cn/v1/chat/completions"
inputText = selectedText
SendTxt = "{""model"": ""meta-llama/Llama-3.3-70B-Instruct"", ""messages"": [{""role"":""system"", ""content"":""你是一个word助手,直接输出文本,不要用md格式。""}, {""role"":""user"", ""content"":""" & inputText & """}], ""stream"": false}"
'MsgBox SendTxt, vbExclamation
'Selection.TypeText Text:=SendTxt
api_key = "sk-xxx"
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接口地址、模型名称与对应的api_key。
第三步:解析返回的json数据,获取content的内容。
为方便起见,我使用的是正则表达式进行content内容的提取。
代码如下所示:
Dim regExp As Object
Set regExp = CreateObject("VBScript.RegExp")
regExp.Pattern = """content"":""([^""]*)"""
regExp.Global = True
Dim matches As Object
Set matches = regExp.Execute(response)
Dim content As String
content = matches(0).SubMatches(0)
第四步:为了用户体验,打造假流式效果。
为了不覆盖选中的内容,需要移动光标。然后为了用户体验,打造假流式效果。
代码如下所示:
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.TypeParagraph ' 插入一个新段落,确保在下一行开始
For i = 1 To Len(content)
Dim char As String
char = Mid(content, i, 1)
Selection.TypeText Text:=char
Dim startTime As Single
startTime = Timer
Do While Timer < startTime + 0.02
DoEvents
Loop
Next i
直接使用我分享的插件
感兴趣的朋友,可以根据我的分享,直接去写一下。但是很多朋友对vba可能不感兴趣,只是想在word中直接使用。
接下来我将手把手分享,如何使用我分享的插件。
首先关注公众号“小铭同学的AI工具学习记录”,发送“Word插件”,即可获取word插件。
第一步:获取大模型的API Key。
这里根据大家自己使用的大模型平台而定。
如果没有使用过,我比较推荐硅基流动这个平台,新用户注册有14元永久额度,很多其它平台额度都是有期限的。
邀请链接:https://cloud.siliconflow.cn/i/Ia3zOSCU。
注册完成之后,点击API密钥,新建一个API密钥。

模型名称在模型广场可以复制,比较推荐的是:deepseek-ai/DeepSeek-R1、deepseek-ai/DeepSeek-V3、meta-llama/Llama-3.3-70B-Instruct、Qwen/Qwen2.5-72B-Instruct-128K与Qwen/Qwen2.5-72B-Instruct。
第二步:在word中导入插件。
关注公众号“小铭同学的AI工具学习记录”,发送“Word插件”,即可获取word插件。
下载下来,如下所示:

文件——》选项——》信任中心——》信任中心设置——》启用所有宏——》确定。

文件——》选项——》自定义功能区——》勾选开发工具。

开发工具——》Visual Basic。

文件——》导入文件——》选择刚刚下载的Word插件。

然后如果使用的是硅基流动,在这两个文件的api_key位置填入自己的api_key即可,如果选择其它平台,如果兼容openai格式,改一下api地址、模型名称然后填入自己的api_key即可。

点击保存,会出现下面这个提示。

选择否,然后启用宏。

可以在不使用这个功能的时候,另存为docx就好了。
回到开发工具,新建一个分组。

选择宏,添加到AI助手中。

现在word就出现了刚刚添加的插件:

第三步:使用插件
选中文本,再点击选择的功能即可。
AI助手是直接提问,AI论文扩写助手是进行论文扩写。
直接提问


AI论文扩写

最后
如果你在实践过程中,遇到了问题,也可以联系我哦。
Word中接入大模型教程的更多相关文章
- word中插入myth type公式行距变大的问题
在写文章时,我遇到了在word中插入myth type公式时,行距明显变大的问题,我通过改变段落中的行距没有解决问题,在网上查了一下,找到一些解决方法,仅供参考. 解决办法
- 如何将Sql server数据库中的模型图转化到Word中--并能够查看字段的属性信息
1. 在Sql server数据库中创建数据库的模型图 -- Database Diagrams 2. 控制面板--管理工具--ODBC数据源链接--创建一个Sql server的数据源链接 3. 打 ...
- Jena 简介:通过 Jena Semantic Web Framework 在 Jave 应用程序中使用 RDF 模型
简介: RDF 越来越被认为是表示和处理半结构化数据的一种极好选择.本文中,Web 开发人员 Philip McCarthy 向您展示了如何使用 Jena Semantic Web Toolkit,以 ...
- 从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史(转载)
转载 https://zhuanlan.zhihu.com/p/49271699 首发于深度学习前沿笔记 写文章 从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史 张 ...
- PowerDesigner 学习:十大模型及五大分类
个人认为PowerDesigner 最大的特点和优势就是1)提供了一整套的解决方案,面向了不同的人员提供不同的模型工具,比如有针对企业架构师的模型,有针对需求分析师的模型,有针对系统分析师和软件架构师 ...
- PowerDesigner 15学习笔记:十大模型及五大分类
个人认为PowerDesigner 最大的特点和优势就是1)提供了一整套的解决方案,面向了不同的人员提供不同的模型工具,比如有针对企业架构师的模型,有针对需求分析师的模型,有针对系统分析师和软件架构师 ...
- Django1.10中文文档—模型
模型是你的数据的唯一的.权威的信息源.它包含你所储存数据的必要字段和操作行为.通常,每个模型都对应着数据库中的唯一一张表. 基础认识: 每个model都是一个继承django.db.models. ...
- 网络安全中机器学习大合集 Awesome
网络安全中机器学习大合集 from:https://github.com/jivoi/awesome-ml-for-cybersecurity/blob/master/README_ch.md#-da ...
- zz从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史
从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史 Bert最近很火,应该是最近最火爆的AI进展,网上的评价很高,那么Bert值得这么高的评价吗?我个人判断是值得.那为什么 ...
- ueditor粘贴word中图片
最近公司做项目需要实现一个功能,在网页富文本编辑器中实现粘贴Word图文的功能. 我们在网站中使用的Web编辑器比较多,都是根据用户需求来选择的.目前还没有固定哪一个编辑器 有时候用的是UEditor ...
随机推荐
- arcgis技术文章索引
1.Error: The System Clock has been set back to the past. 点击打开链接 2.Error: Error 1500. Another insta ...
- OS之《进程管理》
进程同步 同步实际上是指:将多个进程,按照顺序,有序执行. 让进程有序进行的场景有很多.比如:一个进程依赖另外一个进程的计算结果:一个进程等待另外一个对临界资源的访问:还有像生产者消费者模型中的相互配 ...
- 还在为入门鸿蒙效率慢而困惑?不妨试试开发学习神器 - AI辅助编程
鸿蒙应用开发从入门到入行 鸿蒙开发神器 - AI辅助编程 CodeGenie介绍 目前有好几款AI插件可以装到DevEco上,出名的例如Copilot.通义灵码等.但是经过猫林老师截至到目前的测试.都 ...
- 在 Windows 上运行 Podman: 操作指南
在 Windows 上运行 Podman: 操作指南 https://www.redhat.com/sysadmin/run-podman-windows 2021 年 9 月的时候,我写过一篇关于如 ...
- 【Vue】学习笔记:Vue组件
文末有我看的这个视频的链接. 目录 组件注册 全局注册 组件基础 组件命名规则 template选项 单项数据流 data选项 局部注册 单独配置组件的选项对象 ES6对象属性简写 组件通信 父组件向 ...
- 更改linux文件/目录的权限、拥有者及用户组
在Linux中,创建一个文件时,该文件的拥有者都是创建该文件的用户.该文件用户可以修改该文件的拥有者及用户组,root用户可以修改任何文件的拥有者及用户组. 在Linux中,对于文件的权限(rwx), ...
- Python的OCR工具pytesseract解决TesseractNotFoundError: tesseract is not installed or it's not in your PATH. See README file for more information环境变量问题
pytesseract是基于Python的OCR工具, 底层使用的是Google的Tesseract-OCR 引擎,支持识别图片中的文字,支持jpeg, png, gif, bmp, tiff等图片格 ...
- Qt音视频开发27-ffmpeg视频旋转显示
一.前言 用手机或者平板拍摄的视频文件,很可能是旋转的,比如分辨率是1280x720,确是垂直的,相当于分辨率变成了720x1280,如果不做旋转处理的话,那脑袋必须歪着看才行,这样看起来太难受,所以 ...
- 查询 maven 依赖 的最新版本号
如何通过maven官网查询相关依赖的具体代码和版本? 通过官网:http://mvnrepository.com/,或者:https://search.maven.org/ 在搜索栏中输入想要引入的依 ...
- manim边学边做--改变动画速度
ChangeSpeed类是Manim库中用于修改动画速度的类. 它提供了一种灵活的方式来控制动画的播放速度,使动画在不同时间段内以不同的速度播放,从而创造出更加丰富多样的动画效果. 比如,在创建包含多 ...