DeepSeek 接入 Word 完整教程

一、前期準備

1.1 注冊并獲取 API 密鑰

  1. 訪問 DeepSeek 平臺:
    • 打開瀏覽器,訪問 DeepSeek 官方網站(或您使用的相應平臺)。
    • 注冊并登錄您的賬戶。
  2. 創建 API 密鑰:
    • 在用戶控制面板中,找到“API Keys”或“API 管理”選項。
    • 點擊“創建 API Key”按鈕,填寫應用名稱(例如 “Word 文案助手”)。
    • 系統將生成類似 sk-xxxxxxxxxxxxxxxxxxxx 格式的密鑰,請將它復制并妥善保存,后續在 VBA 代碼中需要使用此密鑰。

二、配置 Word 環境

2.1 啟用開發工具選項卡

  1. 在 Word 中點擊【文件】>【選項】。
  2. 在“Word 選項”對話框中,選擇【自定義功能區】。
  3. 在右側列表中勾選【開發工具】,然后點擊【確定】。
    這樣在功能區上就會顯示“開發工具”選項卡。

2.2 啟用宏安全設置

  1. 在“開發工具”選項卡內,點擊【宏安全性】或【信任中心】。
  2. 進入“信任中心設置”,在【宏設置】中選擇“啟用所有宏”并可勾選“信任對 VBA 工程對象模型的訪問”。
    注意: 啟用宏可能有安全風險,請在受信任的環境下運行。

三、編寫 VBA 宏代碼

3.1 打開 VBA 編輯器并插入模塊

  1. 在“開發工具”選項卡中點擊【Visual Basic】按鈕(或使用快捷鍵 Alt+F11)。
  2. 在 VBA 編輯器中,右擊當前工程(如 “Normal” 或當前文檔名稱),選擇【插入】>【模塊】。
    建議將此模塊命名為 “DeepSeekModule”。

3.2 粘貼下面的完整代碼

代碼包含兩個通用函數用于調用 DeepSeek API 的不同模型(如 deepseek-chat、deepseek-reasoner),以及兩個宏分別處理用戶選中文本并將結果插入文檔。代碼中每一部分均有詳細注釋說明各命令含義。

Option Explicit'==========================
'【公共 API 調用函數】
'==========================
' 此函數用于向 DeepSeek API 發送請求,參數:
'   api_key   —— 您的 API 密鑰
'   inputText —— 需要處理的文本(用戶選中文本)
'   modelName —— 調用的模型名稱,如 "deepseek-chat" 或 "deepseek-reasoner"
' 返回 API 的響應文本(JSON 格式),若出錯則返回錯誤信息。
Private Function CallDeepSeekAPI(api_key As String, inputText As String, modelName As String) As StringDim API As StringDim SendTxt As StringDim Http As ObjectDim status_code As IntegerDim response As String' API 請求地址API = "https://api.deepseek.com/chat/completions"' 構建請求體(JSON 格式)' 注:系統角色提示設定為“你是 Word 文案助手”SendTxt = "{""model"": """ & modelName & """, " & _"""messages"": [{" & _"""role"":""system"", ""content"":""你是 Word 文案助手""}," & _" {""role"":""user"", ""content"":""" & inputText & """}" & _"], ""stream"": false}"' 使用 MSXML2.XMLHTTP 對象發送 HTTP 請求On Error GoTo ErrHandlerSet 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' 根據響應狀態返回結果或錯誤信息If status_code = 200 ThenCallDeepSeekAPI = responseElseCallDeepSeekAPI = "Error: " & status_code & " - " & responseEnd IfExitPoint:Set Http = NothingExit FunctionErrHandler:CallDeepSeekAPI = "Error: " & Err.Number & " - " & Err.DescriptionResume ExitPoint
End Function'===============================
'【封裝具體模型的調用函數】
'===============================
' 調用 deepseek-chat 模型
Function CallDeepSeekChatAPI(api_key As String, inputText As String) As StringCallDeepSeekChatAPI = CallDeepSeekAPI(api_key, inputText, "deepseek-chat")
End Function' 調用 deepseek-reasoner 模型
Function CallDeepSeekReasonerAPI(api_key As String, inputText As String) As StringCallDeepSeekReasonerAPI = CallDeepSeekAPI(api_key, inputText, "deepseek-reasoner")
End Function'=====================================
'【主宏:DeepSeek 使用 deepseek-chat 模型】
'=====================================
Sub DeepSeekChat()Dim api_key As StringDim inputText As StringDim response As StringDim regex As ObjectDim matches As ObjectDim originalSelection As Range' ============================'【設置 API 密鑰】' ============================' 請替換下面的 "在此處替換為您的 API Key" 為您獲取的 API 密鑰api_key = "在此處替換為您的 API Key"' 檢查 API 密鑰及是否選中有效文本If api_key = "" ThenMsgBox "Please enter the API key.", vbCriticalExit SubElseIf Selection.Type <> wdSelectionNormal ThenMsgBox "請選擇文本.", vbExclamationExit SubEnd If' ============================'【保存選中區域】' ============================' 保存當前選區,以便后續恢復光標位置Set originalSelection = Selection.Range.Duplicate' ============================'【獲取并處理選中文本】' ============================inputText = Selection.Text' 對特殊字符進行轉義處理inputText = Replace(inputText, "\", "\\")inputText = Replace(inputText, vbCrLf, "")inputText = Replace(inputText, vbCr, "")inputText = Replace(inputText, vbLf, "")inputText = Replace(inputText, Chr(34), "\""")inputText = Replace(inputText, Chr(39), "\'")' ============================'【調用 API 接口】' ============================response = CallDeepSeekChatAPI(api_key, inputText)' 檢查返回信息,如果返回 “Error” 開頭,則說明調用失敗If Left(response, 5) = "Error" ThenMsgBox response, vbCriticalExit SubEnd If' ============================'【解析 API 返回的 JSON 數據】' ============================' 使用正則表達式提取 JSON 中 "content" 字段的值Set regex = CreateObject("VBScript.RegExp")With regex.Global = True.MultiLine = True.IgnoreCase = False.Pattern = """content"":""(.*?)"""End WithSet matches = regex.Execute(response)If matches.Count > 0 Thenresponse = matches(0).SubMatches(0)' 將換行符轉換成 Word 支持的換行標識response = Replace(response, "\n", vbCrLf)' 若有特殊符號,根據需要去除,例如 * 或 #response = Replace(response, "*", "")response = Replace(response, "#", "")' ============================'【將返回內容插入文檔】' ============================' 將光標移動到當前選區末尾,插入新段落并輸出生成文本Selection.Collapse Direction:=wdCollapseEndSelection.TypeParagraphSelection.TypeText Text:=response' 恢復原始選區(可選)originalSelection.SelectElseMsgBox "Failed to parse API response.", vbExclamationEnd If
End Sub'=====================================
'【主宏:DeepSeek 使用 deepseek-reasoner 模型】
'=====================================
Sub DeepSeekReasoner()Dim api_key As StringDim inputText As StringDim response As StringDim regex As ObjectDim matches As ObjectDim originalSelection As Range' ============================'【設置 API 密鑰】' ============================' 請替換下面的 "在此處替換為您的 API Key" 為您的 API 密鑰api_key = "在此處替換為您的 API Key"' 檢查 API 密鑰及是否選中有效文本If api_key = "" ThenMsgBox "Please enter the API key.", vbCriticalExit SubElseIf Selection.Type <> wdSelectionNormal ThenMsgBox "請選擇文本.", vbExclamationExit SubEnd If' ============================'【保存選中區域】' ============================Set originalSelection = Selection.Range.Duplicate' ============================'【獲取并處理選中文本】' ============================inputText = Selection.TextinputText = Replace(inputText, "\", "\\")inputText = Replace(inputText, vbCrLf, "")inputText = Replace(inputText, vbCr, "")inputText = Replace(inputText, vbLf, "")inputText = Replace(inputText, Chr(34), "\""")inputText = Replace(inputText, Chr(39), "\'")' ============================'【調用 API 接口】' ============================response = CallDeepSeekReasonerAPI(api_key, inputText)' 檢查返回信息,如果返回 “Error” 開頭,則說明調用失敗If Left(response, 5) = "Error" ThenMsgBox response, vbCriticalExit SubEnd If' ============================'【解析 API 返回的 JSON 數據】' ============================Set regex = CreateObject("VBScript.RegExp")With regex.Global = True.MultiLine = True.IgnoreCase = False.Pattern = """content"":""(.*?)"""End WithSet matches = regex.Execute(response)If matches.Count > 0 Thenresponse = matches(0).SubMatches(0)response = Replace(response, "\n", vbCrLf)response = Replace(response, "*", "")response = Replace(response, "#", "")' ============================'【將返回內容插入文檔】' ============================Selection.Collapse Direction:=wdCollapseEndSelection.TypeParagraphSelection.TypeText Text:=response' 恢復原選區(可選)originalSelection.SelectElseMsgBox "Failed to parse API response.", vbExclamationEnd If
End Sub

3.3 保存代碼

  • 完成粘貼后,保存 VBA 代碼,關閉 VBA 編輯器。

四、將宏添加到 Word 自定義功能區(按鈕)

為了方便使用,我們可以將寫好的宏添加到 Word 的功能區中,具體步驟如下:

  1. 打開 Word 的“選項”界面:
    點擊【文件】>【選項】。
  2. 自定義功能區:
    選擇【自定義功能區】,在右側列表中新建一個選項卡(例如命名為 “DeepSeek 助手”)或在“開發工具”中添加一個新分組(例如 “DeepSeek 工具”)。
  3. 添加宏命令:
    在左側選擇“宏”類別,找到剛才創建的宏(如 DeepSeekChatDeepSeekReasoner),將其添加到新建的分組中。你可對按鈕名稱進行修改,并設置圖標以便于識別。
  4. 點擊“確定”:
    自定義完成后,在功能區中即可看到新添加的按鈕,點擊即可快速觸發相應的宏命令。

五、使用說明與調試

5.1 測試調用 DeepSeek

  1. 準備測試文本:
    • 在 Word 文檔中輸入一段文本,例如:“請優化下面這段介紹語…”或其他待處理文本。
    • 用鼠標選中這段文本。
  2. 運行宏命令:
    • 可以通過“開發工具”選項卡中點擊“宏”按鈕,選擇 DeepSeekChat(或 DeepSeekReasoner)后點擊“運行”。
    • 或者直接點擊自定義功能區中的按鈕執行。
  3. 查看輸出結果:
    • 程序會調用 DeepSeek API,對選中文本進行處理(如改寫、潤色或續寫)。
    • 處理結果會以新段落的形式插入到選中文本之后,同時原選區可選性恢復。

5.2 錯誤排查

  • API Key 檢查:
    確保在代碼中已替換為您真實的 API 密鑰,否則程序會彈出提示要求輸入 API Key。
  • 網絡連接:
    確保計算機可以正常訪問 https://api.deepseek.com,防火墻或代理設置不影響 HTTP 請求。
  • 宏安全設置:
    若程序提示“請選擇文本”或不能運行宏,請檢查當前是否有有效文本選中,以及宏安全設置是否正確配置。

5.3 進階擴展建議

  • 多模型選擇:
    根據需求,可以增加界面選擇不同模型(如“文案助手”與“推理分析”)對應的宏,分別調用 CallDeepSeekChatAPICallDeepSeekReasonerAPI
  • JSON 解析優化:
    對于復雜返回數據,建議引入 VBA JSON 庫(例如 VBA-JSON),提高解析正確率。
  • 日志記錄:
    添加日志記錄功能(例如寫入文本文件),便于調試和后續維護。

總結

本文詳細介紹了如何將 DeepSeek 接入到 Microsoft Word 中的完整流程。通過以下步驟實現:

  1. API 密鑰獲取和環境配置:注冊 DeepSeek 并獲取 API Key;在 Word 中啟用開發工具和宏設置。
  2. VBA 代碼編寫:將深度處理 API 封裝為公共函數,并分別編寫調用 deepseek-chat 和 deepseek-reasoner 模型的宏。代碼中詳細注釋了每一步的作用。
  3. 自定義功能區集成:將編寫好的宏添加到 Word 的自定義選項卡中,通過按鈕輕松運行。
  4. 測試與調試:選中待處理文本,運行宏,查看處理結果,針對錯誤進行排查。

通過此完整教程,您可以輕松將 DeepSeek 的智能功能集成到 Word 文檔中,實現高效自動化寫作、潤色、翻譯等功能。如果后續有更多需求或需要改進,您可以基于該基礎代碼進行進一步擴展和優化。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/901466.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/901466.shtml
英文地址,請注明出處:http://en.pswp.cn/news/901466.shtml

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

相關文章

驅動開發硬核特訓 · Day 7:深入掌握 Linux 驅動資源管理機制(Resource Management)

&#x1f50d; B站相應的視屏教程&#xff1a; &#x1f4cc; 內核&#xff1a;博文視頻 - 總線驅動模型實戰全解析 —— 以 PCA9450 PMIC 為例 敬請關注&#xff0c;記得標為原始粉絲。 &#x1f6a9; 在 Linux 驅動開發中&#xff0c;資源管理機制決定了驅動的穩定性與可靠性…

什么是TensorFlow?

TensorFlow 是由 Google Brain 團隊開發的開源機器學習框架&#xff0c;被廣泛應用于深度學習和人工智能領域。它的基本概念包括&#xff1a; 1. 張量&#xff08;Tensor&#xff09;&#xff1a;在 TensorFlow 中&#xff0c;數據以張量的形式進行處理。張量是多維數組的泛化…

【ChCore Lab 01】Bomb Lab 拆炸彈實驗(ARM匯編逆向工程)

文章目錄 1. 前言2. 實驗代碼版本問題3. 關于使用問題4. 宏觀分析5. read_line 函數介紹6. phase_0 函數6.1. read_int 函數6.2. 回到 phase_0 函數繼續分析6.3. 驗證結果 7. phase_1 函數7.2. 驗證結果 8. phase_2 函數8.1. read_8_numbers 函數8.2. 回到 phase_2 函數繼續分析…

《Vue Router實戰教程》20.路由懶加載

歡迎觀看《Vue Router 實戰&#xff08;第4版&#xff09;》視頻課程 路由懶加載 當打包構建應用時&#xff0c;JavaScript 包會變得非常大&#xff0c;影響頁面加載。如果我們能把不同路由對應的組件分割成不同的代碼塊&#xff0c;然后當路由被訪問的時候才加載對應組件&am…

docker 多主機容器組網

一、服務器A 1、初始化Swarm集群&#xff08;管理節點&#xff09; docker swarm init --advertise-addr 主節點ip 2、獲取工作節點??加入Swarm集群所需的Token 和完整命令 docker swarm join-token worker 3、創建Overlay網絡 docker network create -d overlay --subnet…

rancher 解決拉取dashboard-shell鏡像失敗的問題

問題背景 在 Kubernetes 集群中部署 Rancher 后&#xff0c;點擊右上角的 "Shell" 按鈕時&#xff0c;Rancher 會動態創建一個 dashboard-shell-xxxxx Pod&#xff0c;用于提供 Web 終端功能。然而&#xff0c;由于默認鏡像 rancher/shell:v0.1.21 托管在 Docker Hu…

OpenCV day2

Matplotlib相關知識 Matplotlib相關操作&#xff1a; import numpy as np from matplotlib import pyplot as pltx np.linspace(0, 2 * np.pi, 100) y1 np.sin(x) y2 np.cos(x)# 使用紅色虛線&#xff0c;圓點標記&#xff0c;線寬1.5&#xff0c;標記大小為6繪制sin plt.p…

【網絡安全】通過 JS 尋找接口實現權限突破

未經許可,不得轉載。 本文所述所有風險點均已修復。 文章目錄 引言正文引言 以下些漏洞已被起亞方面修復;起亞方面確認,這些漏洞從未被惡意利用過。 2024年6月11日,我們發現起亞汽車存在一系列嚴重安全漏洞,攻擊者僅憑車牌號即可遠程控制車輛的核心功能。該攻擊不需要接觸…

LabVIEW 發電機勵磁系統監測與診斷

在現代工業體系中&#xff0c;發電機作為關鍵的電能轉換設備&#xff0c;其穩定運行對于電力供應的可靠性起著決定性作用。而勵磁系統作為發電機的核心控制部分&#xff0c;直接影響著發電機的性能和電力系統的穩定性。一旦勵磁系統出現故障&#xff0c;可能引發發電機電壓波動…

MacOS紅隊常用攻擊命令

MacOS紅隊常用攻擊命令 1.自動化武器2.系統信息3.服務 & 內核信息4.快捷命令5.網絡相關6.brew相關 / 軟件包相關7.高權限命令8.創建一個管理員權限的后門用戶 1.自動化武器 1、linPEAS LinPEAS 是一個腳本&#xff0c;用于在 Linux/Unix/MacOS 主機上搜索提權路徑 2、me…

【數據結構_8】棧和隊列

一、反向輸出鏈表元素 Ⅰ使用遞歸進行反向輸出 package stack; public class Test2 {static class Node{public String val;public Node next;//構造方法public Node(String val) {this.val val;this.next null;}}//利用遞歸來反向輸出鏈表public static void reverse(Nod…

Java 正則表達式綜合實戰:URL 匹配與源碼解析

在 Web 應用開發中&#xff0c;我們經常需要對 URL 進行格式驗證。今天我們結合 Java 的 Pattern 和 Matcher 類&#xff0c;深入理解正則表達式在實際應用中的強大功能&#xff0c;并剖析一段實際的 Java 示例源碼。 package com.RegExpInfo;import java.util.regex.Matcher; …

蝦分發平臺平臺優勢

平臺優勢 高效與成本優化 一鍵分發與自動化工具減少人工操作&#xff0c;加速測試周期&#xff1b;免費分發流量和透明價格套餐降低中小團隊開支。 安全與合規 自研CDN與封裝技術平衡性能與安全性&#xff0c;適配復雜分發場景&#xff1b;全球CDN網絡加速保障極速下載。 服務…

c語言學習16——內存函數

內存函數 一、memcpy使用和模擬實現1.1參數1.2 使用1.3 模擬實現 二、memmove使用和模擬實現2.1 參數2.2 使用2.3 模擬實現 三、memset使用3.1 參數3.2 使用 四、memcmp使用4.1 參數4.2 使用 一、memcpy使用和模擬實現 1.1參數 因為內存中不知道存的是什么類型的地址&#xff…

TLA:用于接觸-豐富操作的觸覺-語言-動作模型

25年3月來自三星中國研發中心、中科院自動化所和北京智源的論文“TLA: Tactile-Language-Action Model for Contact-Rich Manipulation”。 視覺-語言模型已取得顯著進展。然而&#xff0c;在語言條件下進行機器人操作以應對接觸-密集型任務方面&#xff0c;仍未得到充分探索&…

【JavaEE】SpringBoot 統一功能處理

目錄 一、攔截器1.1 使用1.1 定義攔截器1.2 注冊配置攔截器 1.2 攔截器詳解1.2.1 攔截路徑1.2.2 攔截器執?流程 1.3 適配器模式 二、統一數據返回格式2.1 簡單用法2.2 問題及解決 三、統一異常處理 一、攔截器 攔截器&#xff1a;攔截器是Spring框架提供的核?功能之?&#…

【前端實戰】使用 BroadcastChannel API 實現跨標簽頁通信

一、引言 在現代 Web 應用開發中&#xff0c;我們常常會遇到需要在不同瀏覽器標簽頁之間進行通信的需求。例如&#xff0c;在一個電商應用中&#xff0c;用戶在一個標簽頁中添加商品到購物車&#xff0c;希望在其他標簽頁中也能實時顯示購物車的更新信息。傳統的實現方式可能會…

微信小程序 - [渲染層錯誤] Uncaught TypeError: Cannot read property ‘D‘ of undefined

問題&#xff1a;[渲染層錯誤] Uncaught TypeError: Cannot read property D of undefined 解決&#xff1a; 該錯誤可能還是小程序的渲染模式有關系&#xff0c;查看app.json中是否有如下配置&#xff0c;刪除即可&#xff0c;或者降低小程序調試基礎庫版本。

【MySQL高級】事務,存儲引擎,索引(一)

Mysql高級 DQL查詢語句 反引號 模糊查詢避免%出現在開頭,會造成索引失效 order by排序先后 表名列名都需要用${}&#xff0c;他們不能帶’’ 去重統計數量 null的運算 分組函數會自動忽略null&#xff0c;不用對null進行處理 截取子串substr&#xff08;字段&#xff0c;下標…

面試篇 - GPT-1(Generative Pre-Training 1)

GPT-1&#xff08;Generative Pre-Training 1&#xff09; ?模型結構 Transformer only-decoder&#xff1a;GPT-1模型使用了一個12層的Transformer解碼器。具體細節與標準的Transformer相同&#xff0c;但位置編碼是可訓練的。 注意力機制&#xff1a; 原始Transformer的解…