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

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


第二步:向大模型API接口发送一个Post请求。
在第一步中获取的文本大概率会包含换行符,如果没有去掉,在发送请求的时候会报错,因此第一步的完整代码还需要包括去除换行符的部分,完整代码如下所示:
Dim selectedText As StringIf Selection.Type = wdSelectionIP Then ' 如果是插入点(光标闪烁),则未选择文本MsgBox "未选中任何文本!请先选择文本。", vbExclamationElseselectedText = Selection.TextIf Trim(selectedText) = "" Then ' 再次检查 Trim 后的文本是否为空,以防用户只选择了空格MsgBox "未选中任何文本!请先选择文本。", vbExclamationElse' **** 在这里添加删除换行符的代码 ****selectedText = Replace(selectedText, Chr(13), "") ' 删除回车符 (CR)selectedText = Replace(selectedText, Chr(10), "") ' 删除换行符 (LF)End IfEnd If
在vba中发送Post,可以使用MSXML2.XMLHTTP,代码如下:
API = "https://api.siliconflow.cn/v1/chat/completions"inputText = selectedTextSendTxt = "{""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:=SendTxtapi_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 SendTxtstatus_code = .Statusresponse = .responseTextEnd With
这里使用的是硅基流动的平台,使用其它平台需要修改的地方为API接口地址、模型名称与对应的api_key。
第三步:解析返回的json数据,获取content的内容。
为方便起见,我使用的是正则表达式进行content内容的提取。
代码如下所示:
Dim regExp As Object
Set regExp = CreateObject("VBScript.RegExp")regExp.Pattern = """content"":""([^""]*)"""regExp.Global = TrueDim matches As Object
Set matches = regExp.Execute(response)Dim content As String
content = matches(0).SubMatches(0)
第四步:为了用户体验,打造假流式效果。
为了不覆盖选中的内容,需要移动光标。然后为了用户体验,打造假流式效果。
代码如下所示:
Selection.MoveDown Unit:=wdLine, Count:=1Selection.TypeParagraph ' 插入一个新段落,确保在下一行开始For i = 1 To Len(content)Dim char As Stringchar = Mid(content, i, 1)Selection.TypeText Text:=charDim startTime As SinglestartTime = TimerDo While Timer < startTime + 0.02DoEventsLoopNext 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中接入大模型呢? 个人觉得最大的意义就是不用来回切换与复制粘贴了吧。 今天分享一下昨天实践的在word中接入大模型的教程。 在word中接入大模型最简单的方式就是使用vba。 vba代码要做的事,拆分一下就是: 获取用户…...
【git-hub项目:YOLOs-CPP】本地实现04:项目简化
项目跑通之后,我们常常还需要对我们没有用到的任何内容进行删除,以简化项目体积,也便于我们阅读和后续部署。如何实现呢?本篇博客教会大家实现! 项目一键下载【⬇️⬇️⬇️】: 精简后:【GitHub跑通项目:YOLOs-CPP】+【计算机视觉】+【YOLOv11模型】+【windows+Cpp+ONN…...
CTF 代码学习日记 PHP
基础 2字符串连接可以使用点号(.) 3.$_:在 PHP 中,以$_开头的变量(如$_GET、$_POST、$_COOKIE等)是超级全局变量。超级全局变量的特点是它们在 PHP 脚本的任何地方(包括函数内部、类内部等&am…...
观察者模式说明(C语言版本)
观察者模式主要是为了实现一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。下面使用C语言实现了一个具体的应用示例,有需要的可以参考…...
【从0做项目】Java搜索引擎(6) 正则表达式鲨疯了优化正文解析
阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 文章导读 零:项目结果展示 一:导读&知识点回顾 二:遗留问题 …...
【论文技巧】Mermaid VSCode插件制作流程图保存方法
插流程图快点 利用Mermaid Preview插件自带功能 如果你的VSCode安装了支持导出图片的Mermaid预览插件(如 Mermaid Markdown Syntax Highlighting 等),可以按以下步骤进行: 打开Mermaid代码文件:在VSCode中打开包含M…...
【DeepSeek】如何将DeepSeek部署到本地?如何给本地 LLM 提供UI界面?CherryStudio 的使用
注:如果下面的所有操作,需要访问到 Github,可以先看这篇文章,了解如何流畅连接 Github 【Github】如何流畅链接Github.com-CSDN博客 一、下载 Ollama 1、访问网址 Ollama,点击下载 Ollama 到本地 选择自己计算机的系统…...
第1章:LangChain4j的聊天与语言模型
LangChain4J官方文档翻译与解析 目标文档路径: https://docs.langchain4j.dev/tutorials/chat-and-language-models/ 语言模型的两种API类型 LangChain4j支持两种语言模型(LLM)的API: LanguageModel:这种API非常简单,…...
【小游戏】C++控制台版本俄罗斯轮盘赌
制作团队:洛谷813622(Igallta) 989571(_ayaka_) Mod:_ayaka_ 双人模式:Igallta 公告: 原先的9.8改名为 Alpha 1.0,以后每次更新都增加 0.1。 Alpha 1.11 改为 Beta 1…...
【大语言模型_4】源码编译vllm框架cpu版
背景: 通过官方提供的pip install vllm安装的vllm框架不支持cpu加载模型。因此需要本地编译。 系统环境 操作系统:欧拉2203 python版本:3.10 编译步骤 一、安装gcc/g/cmake 1、下载源码:https://github.com/vllm-project/vllm 安…...
mac开发环境配置笔记
1. 终端配置 参考: Mac终端配置笔记-CSDN博客 2. 下载JDK 到 oracle官网 下载jdk: oracle官网 :Java Downloads | Oraclemac的芯片为Intel系列下载 x64版本的jdk;为Apple Mx系列使用 Arm64版本;oracle官网下载时报错:400 Bad R…...
交换机基本命令
目录 一、华为交换机基本命令 1、VRP视图层 2、命令帮助 3、配置设备名称 4、命令等级(一般生产过程没有下面的详细) 5、用户界面 6、配置Console认证 控制台接口(Console) 配置步骤示例 7、配置VTY登录(本文…...
PLC通信交互系统技术分享
目录 0、前言 1、模块划分 2、状态机 3、通信层增强 4、异常处理机制 5、核心代码 关键状态处理示例 6、部署与测试方案 1. 环境要求 2. 性能测试指标 0、前言 这是一个C程序,用于与西门子PLC进行通信,处理SN码、拍照信号、检测结果等流程。代码…...
PHP图书借阅小程序源码
📚 图书借阅小程序:一键开启智慧阅读新篇章 🌟 这是一款由ThinkPHP与UniApp两大技术巨擘强强联手精心打造的图书借阅微信小程序,它犹如一座随身携带的移动图书馆,让您无论身处何地都能轻松畅游知识的海洋。创新的多书…...
本地部署 DeepSeek + Dify,构建自己的AI能力
概述 DeepSeek 是一款开创性的开源大语言模型,凭借其先进的算法架构和反思链能力,为 AI 对话交互带来了革新性的体验。通过私有化部署,你可以充分掌控数据安全和使用安全。你还可以灵活调整部署方案,并实现便捷的自定义系统。 Dify 作为同样开源的 AI 应用开发平台,提供完…...
UE 播放视频
一.UI播放视频 1.导入视频文件至工程文件夹 2.文件夹内右健选择Media -> File Meida Source创建testFileMeidaSource文件。 编辑FilePath为当前视频 3.右键->Media->Media Player 创建testMediaPlayer文件 4.右键创建testMediaTexture。编辑MediaPlayer设置testMedia…...
拦截器VS过滤器:Spring Boot中请求处理的艺术!
目录 一、拦截器(Interceptor)和过滤器(Filter):都是“守门员”!二、如何实现拦截器和过滤器?三、拦截器和过滤器的区别四、执行顺序五、真实的应用场景六、总结 🌟如果喜欢作者的讲…...
科普:“Docker Desktop”和“Docker”以及“WSL”
“Docker Desktop”和“Docker”这两个概念既有紧密联系,又存在一定区别: 一、联系 核心功能同源:Docker Desktop 本质上是基于 Docker 核心技术构建的。Docker 是一个用于开发、部署和运行应用程序的开源平台,它利用容器化技术…...
react实例与总结(二)
目录 一、脚手架基础语法(16~17) 1.1、hello react 1.2、组件样式隔离(样式模块化) 1.3、react插件 二、React Router v5 2.1、react-router-dom相关API 2.1.1、内置组件 2.1.1.1、BrowserRouter 2.1.1.2、HashRouter 2.1.1.3、Route 2.1.1.4、Redirect 2.1.1.5、L…...
巧用GitHub的CICD功能免费打包部署前端项目
近年来,随着前端技术的发展,前端项目的构建和打包过程变得越来越复杂,占用的资源也越来越多。我有一台云服务器,原本打算使用Docker进行部署,以简化操作流程。然而,只要执行sudo docker-compose -f deploy/…...
使用 DeepSeek 生成商城流程图
步骤 1.下载 mermaid 2.使用 DeepSeek 生成 mermaid 格式 3.复制内容到 4.保存备用。 结束。...
Unity FBXExport导出的FBX无法在Blender打开
将FBX转换为obj: Convert 3D models online - free and secure...
VSCode自定义快捷键和添加自定义快捷键按键到状态栏
VSCode自定义快捷键和添加自定义快捷键按键到状态栏 📄在VSCode中想实现快捷键方式执行某些指令操作,可以通过配置组合式的键盘按键映射来实现,另外一种方式就是将执行某些特定的指令嵌入在面板菜单上,在想要执行的时候࿰…...
hive迁移补数脚本细粒度 表名-分区唯一键
假设我通过对数脚本发现,这些表对不上。 假设检测出来是这样的(这些表存在于源端,但不存在目标端) 我们需要从源端迁移过去。 diff.txt ads_xx1 dt20250219 ads_xx2 dt20250217 ads_xx2 dt20250218 ads_xx2 dt20250…...
SpringSecurity基于配置方法控制访问权限:MVC匹配器、Ant匹配器
Spring Security 是一个功能强大且高度可定制的身份验证和访问控制框架。在 Spring Security 中,可以通过配置方法来控制访问权限。认证是实现授权的前提和基础,在执行授权操作前需要明确目标用户,只有明确目标用户才能明确它所具备的角色和权…...
Ubuntu22.04 - gflags的安装和使用
目录 gflags 介绍gflags 安装gflags 使用 gflags 介绍 gflags 是Google 开发的一个开源库,用于 C应用程序中命令行参数的声明、定义和解析。gflags 库提供了一种简单的方式来添加、解析和文档化命令行标志(flags),使得程序可以根据不同的运行时配置进行调整。 它具…...
java | MyBatis-plus映射和golang映射对比
文章目录 Java实体类和数据库的映射1.默认驼峰命名规则2.自定义字段映射3.关闭驼峰命名规则4.JSON序列化映射 Golang1. 结构体与表的映射2. 字段与列的映射3. 关联关系映射4. 其他映射相关标签 这篇也是做数据库映射方面的对比: Java 实体类和数据库的映射 1.默认…...
使用 Redis 实现 RBAC 权限管理
1. 什么是 RBAC? RBAC(Role-Based Access Control,基于角色的访问控制)是一种常见的权限管理模型,它通过用户(User)、角色(Role)、权限(Permissionÿ…...
正则表达式–断言
原文地址:正则表达式–断言 – 无敌牛 欢迎参观我的个人博客:正则表达式特殊字符 – 无敌牛 断言assertions 1、(?...):正向预查(positive lookahead),表示某个字符串后面应该跟着什么。但这个字符串本身…...
Python常见面试题的详解14
1. 从变量 A 中匹配 JSON 字符串 在处理文本数据时,有时需要从变量里找出其中的 JSON 字符串。JSON 字符串一般以 { 或 [ 开头,以 } 或 ] 结尾,但简单的正则匹配可能不够严谨,所以还需用 json 模块进行验证。 要点 利用正则表达…...
