当前位置: 首页 > news >正文

word$deepseep

1、进入官网地址。

DeepSeek

2、进入DeepSeek的API文档

3、点击DeepSeek开放平台左侧的“API Keys”, 再点击“创建API Key”

4、在弹出的对话框中,输入自己的API Key名称,点击创建。

sk-0385cad5e19346a0a4ac8b7f0d7be428

5、打开Word文档。

6、Word找到文件。

7、文件-选项

8、在“word选项”对话框中,点击选择“自定义功能区”,然后在右侧选中“开发工具”,使“开发工具”前面的方框中出现“”,word的菜单栏中就会出现“开发工具”项目。

9、打开开发工具。

10、信任中心-信任中心设置。

11、信任中心-宏的设置-全部启用。

12、在“信任中心设置”对话框中,点击“宏设置”,在左侧选择“启用所有宏……”,然后选中“信任对VBA工程对象模型的访问”。

13、在word菜单栏,点击“开发工具”项,选择“Visual Basic”。

14、进入Visual Basic编辑界面,如下图,选择“Normal”下的“模块”。

Option Explicit


Sub DeepSeekV3()


Const api_Url As String = "https://api.deepseek.com/chat/completions"


Const api_Key As String = "替换为自己申请的API Key"


Dim inputText As String


Dim response As String


Dim originalSelection As Range


On Error GoTo ErrorHandler


' 检查API密钥内容


If api_Key = "" Then


MsgBox "请输入您的API Key。", vbExclamation


Exit Sub


End If


' 检查是否选中文本


If Selection.Type <> wdSelectionNormal Then


MsgBox "请选中要分析的文本。", vbExclamation


Exit Sub


End If


' 保存原始选中的文本


Set originalSelection = Selection.Range.Duplicate


' 处理选中的文本


inputText = ReplaceSpecialCharacters(Selection.text)


' 调用Deepseek API


response = CallDeepseekAPI(api_Key, api_Url, inputText)


' 处理API响应


If IsJsonResponse(response) Then


response = FormatJson(response)


InsertResponseToDocument response


MsgBox "API分析内容已插入文档!", vbInformation


Else


MsgBox response, vbCritical


End If


Exit Sub


ErrorHandler:


MsgBox "发生错误:" & Err.Description, vbCritical


End Sub


' 将API响应插入文档


Sub InsertResponseToDocument(response As String)


With ActiveDocument.Content


.InsertAfter vbCrLf & "分析内容:" & vbCrLf & response


End With


End Sub


' 调用DeepseekAPI函数


Function CallDeepseekAPI(api_Key As String, api_Url As String, inputText As String) As String


Dim http As Object


Dim requestBody As String


Dim response As String


Dim status_Code As Integer


On Error GoTo ErrorHandler


' 构造请求体


requestBody = BuildRequestBody(inputText)


' 创建HTTP对象


Set http = CreateObject("MSXML2.XMLHTTP")


' 发送请求


With http


.Open "POST", api_Url, False


.setRequestHeader "Content-Type", "application/json"


.setRequestHeader "Authorization", "Bearer " & api_Key


.send requestBody


status_Code = .Status


response = .responseText


End With


' 检查HTTP状态码


If status_Code = 200 Then


CallDeepseekAPI = response


Else


CallDeepseekAPI = "API 请求失败,状态码:" & status_Code & "-" & response


End If


ExitFunction:


Set http = Nothing


Exit Function


ErrorHandler:


CallDeepseekAPI = "调用API时发生错误:" & Err.Description


Resume ExitFunction


End Function


' 构造API请求体


Function BuildRequestBody(inputText As String) As String


BuildRequestBody = "{""model"": ""deepseek-chat"", ""messages"": [{""role"":""system"", ""content"":""You are a Word assistant""}, {""role"":""user"", ""content"":""" & inputText & """}], ""stream"": false}"


End Function


' 检查是否为JSON响应


Function IsJsonResponse(response As String) As Boolean


IsJsonResponse = (Left(response, 1) = "{")


End Function


' 辅助函数:格式化 JSON 响应


Function FormatJson(json As String) As String


Dim i As Long


Dim indentLevel As Long


Dim result As String


Dim char As String


indentLevel = 0


result = ""


For i = 1 To Len(json)


char = Mid(json, i, 1)


Select Case char


Case "{", "["


result = result & char & vbCrLf & Space((indentLevel + 1) * 4)


indentLevel = indentLevel + 1


Case "}", "]"


indentLevel = indentLevel - 1


result = result & vbCrLf & Space(indentLevel * 4) & char


Case ","


result = result & char & vbCrLf & Space(indentLevel * 4)


Case ":"


result = result & char & " "


Case Else


result = result & char


End Select


Next i


FormatJson = result


End Function


' 辅助函数:替换特殊字符


Function ReplaceSpecialCharacters(text As String) As String


ReplaceSpecialCharacters = Replace(Replace(Replace(Replace(Replace(text, "\", "\\"), vbCrLf, ""), vbCr, ""), vbLf, ""), Chr(34), "\""")


End Function

15、模块代码编辑完成后,进入“word选项”对话框,选择“开发工具”,在其上右击,选择“添加新组”。

16、选中新添加的组,在“下列位置选择命令”的下拉框中,选择“宏”。在出现的模块列表中,选择新编辑的模块,点击“添加”按钮

17、测试。

相关文章:

  • Qt开发③Qt的信号和槽_概念+使用+自定义信号和槽+连接方式
  • 跟着AI学vue第四章
  • Python 函数式编程全攻略:从理论到实战的深度解析
  • 基于指纹识别技术的考勤打卡设计与实现(论文+源码)
  • 七星棋牌全开源修复版源码解析:6端兼容,200种玩法全面支持
  • JavaScript系列(75)--代理模式专题
  • MySQL中count(1)和count(*) 的区别
  • docker的mysql容器修改数据库root的登录密码后,navicat依然能用旧密码访问
  • MySQL数据库入门到大蛇尚硅谷宋红康老师笔记 基础篇 part 18
  • 超详细|25保研时间线及规划
  • IIS asp.net权限不足
  • 从MySQL5.7平滑升级到MySQL8.0的最佳实践分享
  • Redis的持久化机制
  • 计算机考研之数据结构:深入解析最大公约数与欧几里得算法
  • .NET 9.0 的 Blazor Web App 项目中 EF Core 【事务】使用备忘
  • 第一章——1.1 Java程序设计平台
  • BIO、NIO 和 AIO 的区别?
  • k8s集群如何赋权普通用户仅管理指定命名空间资源
  • 快速排序_912. 排序数组(10中排序算法)
  • 基于 VScode 的 git 详细使用指南【保姆级!建议收藏!】
  • 是谁提议特朗普向好莱坞征税?
  • 甘肃临夏州政协委员马全成涉嫌诈骗罪,被撤销政协委员资格
  • 五一上海楼市热闹开局:售楼处全员到岗,热门楼盘连续触发积分
  • 申活观察|演出场次破纪录、入境游导游档期忙,上海文旅商“热力”拉满
  • 旧宫新语|瑞琦:再探《古玩图》——清宫艺术品的前世与今生
  • 日本政府强烈反对美关税政策并要求其取消