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 ...
随机推荐
- AtCoder Beginner Contest 378
Contest Link 还得加练. A & B & C & D 不具备任何思维含量. Submission A Submission B Submission C Submi ...
- 分享一个纯Python开发的系统程序,基于VSCode + WxPython开发的跨平台应用系统
本项目是基于 wxPython 开发的 GUI 应用,主要用于管理基础框架内容,包括用户.角色.机构.权限.日志.菜单.字典.附件.通用编码规则.配置管理等基础框架内容. 愿景是构建一个基于Pytho ...
- 记一次 .NET某差旅系统 CPU爆高分析
一:背景 1. 讲故事 前些天训练营里的一位学员找到我,说他们的差旅后台系统出现了CPU爆高的情况,爆高之后就下不去了,自己分析了下也没找到原因,事情比较紧急,让我帮忙看下是什么回事,手里也有dump ...
- ChatGPT生成测试用例的最佳实践(一)
前面介绍的案例主要展示了ChatGPT在功能.安全和性能测试用例生成方面的应用和成果.通过ChatGPT生成测试用例,测试团队不仅可以提升工作效率,还可以加快测试工作的速度,尽早发现被测系统中的问题. ...
- 出现警告信息 Please enter a commit message to explain why this merge is necessary,
Please enter a commit message to explain why this merge is necessary, # especially if it merges an u ...
- Flutter (2.5) - A splash screen was provided to Flutter, but this is deprecated
Flutter (2.5) - A splash screen was provided to Flutter, but this is deprecated 升级到Flutter 2.5 版本后,启 ...
- 准备好"干翻世界"之前,不妨先听听我们的意见
期待大家的到来哦~
- 技术实践|Redis基础知识及集群搭建(上)
Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.本篇文章围绕Redis基础知识及集群搭建相关内容进行了分享 ...
- 代码依赖包安全漏洞检测神器 —— Dependency Check
目前各个企业对于应用的安全越来越重视,而解决应用漏洞的本质是从代码安全抓起.通常关于代码的安全问题有两类:代码本身的安全问题和代码依赖包存在的安全问题.对于代码本身的安全问题,我们可以通过静态代码分析 ...
- [转]E1接口介绍
E1 通道本来设计用来传输电话的,每个 E1(带宽 2.048M)可以传 30 路电话,后来扩大的应用范围,可以用作传网络,串口等不同的业务:E1 是一个基本的传输单元,其最终还是通过光纤来传输的,如 ...