Word中接入大模型教程

news2025/2/21 21:11:23

前言

为什么要在word中接入大模型呢?

个人觉得最大的意义就是不用来回切换与复制粘贴了吧。

今天分享一下昨天实践的在word中接入大模型的教程。

在word中接入大模型最简单的方式就是使用vba。

vba代码要做的事,拆分一下就是:

  1. 获取用户选中的文本,未选择弹窗提示。
  2. 向大模型API接口发送一个Post请求。
  3. 解析返回的json数据,获取content的内容。
  4. 为了用户体验,打造假流式效果。

效果

实践

第一步:获取用户选中的文本,未选择弹窗提示。

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

效果:

image-20250217102026941

image-20250217102101716

第二步:向大模型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密钥。

image-20250217110244129

模型名称在模型广场可以复制,比较推荐的是: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插件。

下载下来,如下所示:

image-20250217111511497

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

image-20250217122533249

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

image-20250217111659589

开发工具——》Visual Basic。

image-20250217111905533

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

image-20250217112147489

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

image-20250217112351894

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

image-20250217112451435

选择否,然后启用宏。

image-20250217112537868

可以在不使用这个功能的时候,另存为docx就好了。

回到开发工具,新建一个分组。

image-20250217112744079

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

image-20250217112915087

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

image-20250217113030084

第三步:使用插件

选中文本,再点击选择的功能即可。

AI助手是直接提问,AI论文扩写助手是进行论文扩写。

直接提问

image-20250217113436348

AI论文扩写

image-20250217114503471

最后

如果你在实践过程中,遇到了问题,也可以联系我哦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2302114.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【git-hub项目:YOLOs-CPP】本地实现04:项目简化

项目跑通之后,我们常常还需要对我们没有用到的任何内容进行删除,以简化项目体积,也便于我们阅读和后续部署。如何实现呢?本篇博客教会大家实现! 项目一键下载【⬇️⬇️⬇️】: 精简后:【GitHub跑通项目:YOLOs-CPP】+【计算机视觉】+【YOLOv11模型】+【windows+Cpp+ONN…

CTF 代码学习日记 PHP

基础 2字符串连接可以使用点号&#xff08;.&#xff09; 3.$_&#xff1a;在 PHP 中&#xff0c;以$_开头的变量&#xff08;如$_GET、$_POST、$_COOKIE等&#xff09;是超级全局变量。超级全局变量的特点是它们在 PHP 脚本的任何地方&#xff08;包括函数内部、类内部等&am…

观察者模式说明(C语言版本)

观察者模式主要是为了实现一种一对多的依赖关系&#xff0c;让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时&#xff0c;会通知所有观察者对象&#xff0c;使它们能够自动更新自己。下面使用C语言实现了一个具体的应用示例&#xff0c;有需要的可以参考…

【从0做项目】Java搜索引擎(6) 正则表达式鲨疯了优化正文解析

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 文章导读 零&#xff1a;项目结果展示 一&#xff1a;导读&知识点回顾 二&#xff1a;遗留问题 …

【论文技巧】Mermaid VSCode插件制作流程图保存方法

插流程图快点 利用Mermaid Preview插件自带功能 如果你的VSCode安装了支持导出图片的Mermaid预览插件&#xff08;如 Mermaid Markdown Syntax Highlighting 等&#xff09;&#xff0c;可以按以下步骤进行&#xff1a; 打开Mermaid代码文件&#xff1a;在VSCode中打开包含M…

【DeepSeek】如何将DeepSeek部署到本地?如何给本地 LLM 提供UI界面?CherryStudio 的使用

注&#xff1a;如果下面的所有操作&#xff0c;需要访问到 Github&#xff0c;可以先看这篇文章&#xff0c;了解如何流畅连接 Github 【Github】如何流畅链接Github.com-CSDN博客 一、下载 Ollama 1、访问网址 Ollama&#xff0c;点击下载 Ollama 到本地 选择自己计算机的系统…

mac开发环境配置笔记

1. 终端配置 参考&#xff1a; Mac终端配置笔记-CSDN博客 2. 下载JDK 到 oracle官网 下载jdk: oracle官网 :Java Downloads | Oraclemac的芯片为Intel系列下载 x64版本的jdk&#xff1b;为Apple Mx系列使用 Arm64版本&#xff1b;oracle官网下载时报错&#xff1a;400 Bad R…

交换机基本命令

目录 一、华为交换机基本命令 1、VRP视图层 2、命令帮助 3、配置设备名称 4、命令等级&#xff08;一般生产过程没有下面的详细&#xff09; 5、用户界面 6、配置Console认证 控制台接口&#xff08;Console&#xff09; 配置步骤示例 7、配置VTY登录&#xff08;本文…

PHP图书借阅小程序源码

&#x1f4da; 图书借阅小程序&#xff1a;一键开启智慧阅读新篇章 &#x1f31f; 这是一款由ThinkPHP与UniApp两大技术巨擘强强联手精心打造的图书借阅微信小程序&#xff0c;它犹如一座随身携带的移动图书馆&#xff0c;让您无论身处何地都能轻松畅游知识的海洋。创新的多书…

UE 播放视频

一.UI播放视频 1.导入视频文件至工程文件夹 2.文件夹内右健选择Media -> File Meida Source创建testFileMeidaSource文件。 编辑FilePath为当前视频 3.右键->Media->Media Player 创建testMediaPlayer文件 4.右键创建testMediaTexture。编辑MediaPlayer设置testMedia…

拦截器VS过滤器:Spring Boot中请求处理的艺术!

目录 一、拦截器&#xff08;Interceptor&#xff09;和过滤器&#xff08;Filter&#xff09;&#xff1a;都是“守门员”&#xff01;二、如何实现拦截器和过滤器&#xff1f;三、拦截器和过滤器的区别四、执行顺序五、真实的应用场景六、总结 &#x1f31f;如果喜欢作者的讲…

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功能免费打包部署前端项目

近年来&#xff0c;随着前端技术的发展&#xff0c;前端项目的构建和打包过程变得越来越复杂&#xff0c;占用的资源也越来越多。我有一台云服务器&#xff0c;原本打算使用Docker进行部署&#xff0c;以简化操作流程。然而&#xff0c;只要执行sudo docker-compose -f deploy/…

使用 DeepSeek 生成商城流程图

步骤 1.下载 mermaid 2.使用 DeepSeek 生成 mermaid 格式 3.复制内容到 4.保存备用。 结束。

VSCode自定义快捷键和添加自定义快捷键按键到状态栏

VSCode自定义快捷键和添加自定义快捷键按键到状态栏 &#x1f4c4;在VSCode中想实现快捷键方式执行某些指令操作&#xff0c;可以通过配置组合式的键盘按键映射来实现&#xff0c;另外一种方式就是将执行某些特定的指令嵌入在面板菜单上&#xff0c;在想要执行的时候&#xff0…

Ubuntu22.04 - gflags的安装和使用

目录 gflags 介绍gflags 安装gflags 使用 gflags 介绍 gflags 是Google 开发的一个开源库&#xff0c;用于 C应用程序中命令行参数的声明、定义和解析。gflags 库提供了一种简单的方式来添加、解析和文档化命令行标志(flags),使得程序可以根据不同的运行时配置进行调整。 它具…

java | MyBatis-plus映射和golang映射对比

文章目录 Java实体类和数据库的映射1.默认驼峰命名规则2.自定义字段映射3.关闭驼峰命名规则4.JSON序列化映射 Golang1. 结构体与表的映射2. 字段与列的映射3. 关联关系映射4. 其他映射相关标签 这篇也是做数据库映射方面的对比&#xff1a; Java 实体类和数据库的映射 1.默认…

正则表达式–断言

原文地址&#xff1a;正则表达式–断言 – 无敌牛 欢迎参观我的个人博客&#xff1a;正则表达式特殊字符 – 无敌牛 断言assertions 1、(?...)&#xff1a;正向预查&#xff08;positive lookahead&#xff09;&#xff0c;表示某个字符串后面应该跟着什么。但这个字符串本身…

电脑想安装 Windows 11 需要开启 TPM 2.0 怎么办?

尽管 TPM 2.0 已经内置在许多新电脑中&#xff0c;但很多人并不知道如何激活这一功能&#xff0c;甚至完全忽略了它的存在。其实&#xff0c;只需简单的几步操作&#xff0c;你就能开启这项强大的安全特性&#xff0c;为你的数字生活增添一层坚固的防护屏障。无论你是普通用户还…

QT之改变鼠标样式

QT改变鼠标图片 资源路径如下 代码实现 QPixmap customCursorPixmap(":/images/mouse.png");QCursor customCursor(customCursorPixmap);QWidget::setCursor(customCursor); // 可以设置为整个窗口或特定控件QWidget::setCursor(); // 设置为透明光标&#xff0c…