轻量级与定制化:两种API方案解锁DeepSeek-R1的办公潜能

        对新生事物很感兴趣的人而言,主动拥抱和学习AI原理及应用,了解人工智能发展的态势,并主动将AI融入自己的工作是非常自然的事情。眼下对于想了解和使用最新的国产大语言模型(DeepSeek-R1)的朋友来说,还面临着不小的困难,这主要由于以下原因(见表格)。

使用方式优点缺点存在的问题
通过网站/应用访问零门槛 、多模态支持 、 免费额度无定制 、 需联网高峰阻塞
通过API访问自动化流程 、 企业级SLA按次计费 、调试复杂需要探索
本地部署数据隔离 、定制模型百万级成本 、 需专业运维难以实现

        除了表中所列的访问方式外,还可以通过应用程序插件或者浏览器扩展等方式使用AI模型,限于篇幅不一一介绍。从表中可以看出,虽然用户可以直接访问DeepSeek官网或下载官方App并通过网页表单或移动端界面输入问题,但是存在高峰时段可能排队延迟以及复杂任务需多次交互(如长文档分析需分段输入)等问题,降低了用户的体验感。而本地化部署由于成本和技术门槛等问题导致个人用户难以负担。因此通过API访问AI模型倒是现阶段最为经济和可行的方式。因此,下面就如何通过API访问大模型问题介绍两种实现方式,即基于应用程序Chatbox和Microsoft Word实现对DeepSeek-R1的访问。

一、申请SiliconCloud的API密钥

        鉴于DeepSeek公司API开放平台(DeepSeek)因服务器资源紧张暂停了API服务充值业务,导致官方API无法使用。以下使用的API服务来自硅基流动公司的模型云服务平台SiliconCloud。通过API访问AI模型,类似于住酒店,除了要知道房间号还需要门卡,如果把互联网世界中的站点网址比作酒店的房间号,那门卡则相当于密钥(习惯叫作APIkey),有了房间号和门卡,我们就能访问到房间里住着的AI模型。

        APIkey的申请需要首先在硅基流动官网(SiliconFlow, Accelerate AGI to Benefit Humanity)注册,然后进入SiliconCloud(硅基流动统一登录),在左侧菜单目录“账户管理”下的点击“API密钥”,即可进入API密钥创建页面,点击“新建API密钥”,根据提示网站即可生成一组密钥,将这组密钥复制下来并妥善保存以备后用。

二、基于Chatbox使用DeepSeek-R1
1. Chatbox下载

        登录ChatboxAI官网(Chatbox AI官网:办公学习的AI好助手,全平台AI客户端,官方免费下载),无需注册,即可下载Chatbox软件,Chatbox作为一款 AI 客户端应用程序,支持众多先进的 AI 模型和 API。下载安装,程序主界面如下:

image-20250222124719453

        Chatbox软件除了支持与AI模型的对话之外,还支持Markdown文本编辑、程序开发、文生图片、文生图表等流程的实现,相对于官方APP更具有定制性,这也是推荐使用Chatbox的原因。

2. Chatbox设置

        在Chatbox主界面的左侧菜单栏上点击“设置”,打开设置对话框:

image-20250222130103118

        在“模型提供方”下选择“SILICONFLOW API”,在“模型”下选择“DeepSeek-R1”,表示Chatbox中会话使用的AI模型确定了,然后在“API 密钥”下填入前文在SiliconCloud平台上申请到的密钥。对于“上下文的消息数量上限”以及“严谨与想象(Temperature)”两个参数用户可根据业务需要设置。保存设置回到Chatbox主界面即可与DeepSeek-R1对话。对话将会根据输入和输出的字符数量(通常是以tokens为单位计量)产生相应的费用,不同的AI模型产生的费用也不相同,目前DeepSeek-R1每百万tokens的费用是人民币16元。

三、基于Microsoft Word使用DeepSeek-R1
1. Microsoft Word宏开发

        基于Microsoft Word提供的宏开发,通过引导DeepSeek根据需求生成VB代码,并将具有访问DeepSeek-R1宏文档保存成启用宏的Word模版文件,退出Word后,下次直接打开该模版文件即可使用宏命令。具体的宏开发限于篇幅在此不作过多介绍,感兴趣的朋友可访问以下网址观看视频操作。

简单2步教你一键把DeepSeek-R1接入Word,丝滑不卡顿,2025最新办公神器,好用到飞起!_哔哩哔哩_bilibili

        宏命令对应的代码如下:

'------------------------------------------------------------
' 模块名称: DeepSeekHelper
' 功能: 直接使用文档选区作为输入
' 依赖: Microsoft XML v6.0(Word自带)
'------------------------------------------------------------
​
Option Explicit
​
' API配置
Private Const API_ENDPOINT As String = "https://api.siliconflow.cn/v1/chat/completions"
Private Const DEFAULT_MODEL As String = "deepseek-ai/DeepSeek-R1"
​
' 主调用函数
Sub AskDeepSeek()
    On Error GoTo ErrorHandler
    
    ' 获取输入内容
    Dim userPrompt As String
    If Selection.Type = wdSelectionIP Then  ' 未选中文本
        userPrompt = InputBox("请输入您的问题:", "DeepSeek智能问答")
        If userPrompt = "" Then Exit Sub
    Else
        userPrompt = Selection.Text
        ' 删除选中文本的结尾段落标记
        If Right(userPrompt, 1) = vbCr Then userPrompt = Left(userPrompt, Len(userPrompt) - 1)
    End If
    
    ' 调用API
    Dim answer As String
    answer = CallDeepSeek(GetApiKey(), userPrompt)
    
    ' 插入结果
    Selection.Collapse Direction:=wdCollapseEnd
    Selection.TypeText Text:=vbCrLf & "[AI回答] " & answer
    Selection.MoveUp Unit:=wdLine, Count:=1
    Selection.Range.HighlightColorIndex = wdYellow
    
    Exit Sub
    
ErrorHandler:
    MsgBox "操作失败:" & Err.Description, vbCritical
End Sub
​
Private Function CallDeepSeek( _
    ByVal apiKey As String, _
    ByVal userPrompt As String, _
    Optional ByVal temperature As Double = 0.2, _
    Optional ByVal maxTokens As Integer = 16384 _
) As String
    
    Dim httpRequest As Object
    Dim responseText As String
    Dim statusCode As Long
    Dim requestBody As String
    
    Set httpRequest = CreateObject("MSXML2.XMLHTTP.6.0")
    
    ' 构建请求体
    requestBody = "{""model"":""" & DEFAULT_MODEL & """," & _
                  """messages"":[{""role"":""user"",""content"":""" & _
                  EscapeJson(userPrompt) & """}]," & _
                  """temperature"":" & temperature & "," & _
                  """max_tokens"":" & maxTokens & "}"
    
    ' 发送请求
    With httpRequest
        .Open "POST", API_ENDPOINT, False
        .setRequestHeader "Content-Type", "application/json"
        .setRequestHeader "Authorization", "Bearer " & apiKey
        .send requestBody
        
        statusCode = .Status
        responseText = .responseText
    End With
    
    If statusCode = 200 Then
        CallDeepSeek = ExtractContent(responseText)
    Else
        CallDeepSeek = "API错误:" & statusCode & " - " & responseText
    End If
End Function
​
' 简单JSON解析(无需Scripting库)
Private Function ExtractContent(ByVal jsonString As String) As String
    Dim startPos As Long, endPos As Long
    startPos = InStr(jsonString, """content"":""") + 10
    endPos = InStr(startPos, jsonString, """,""")
    
    If startPos > 10 And endPos > startPos Then
        ExtractContent = Replace(Mid(jsonString, startPos, endPos - startPos), "\n", vbCrLf)
    Else
        ExtractContent = "无法解析响应"
    End If
End Function
​
' JSON转义处理
Private Function EscapeJson(ByVal rawText As String) As String
    Dim result As String
    result = Replace(rawText, "\", "\\")
    result = Replace(result, """", "\""")
    result = Replace(result, vbCrLf, "\n")
    result = Replace(result, vbTab, "\t")
    EscapeJson = result
End Function
​
' 安全存储API密钥
Public Sub SetApiKey()
    Dim key As String
    key = InputBox("请输入硅基流动API密钥:", "安全设置")
    
    If key <> "" Then
        On Error Resume Next
        ThisDocument.CustomDocumentProperties("SF_API_KEY").Delete
        ThisDocument.CustomDocumentProperties.Add _
            Name:="SF_API_KEY", _
            LinkToContent:=False, _
            Type:=msoPropertyTypeString, _
            Value:=key
        MsgBox "API密钥已安全存储", vbInformation
    End If
End Sub
​
Private Function GetApiKey() As String
    On Error Resume Next
    GetApiKey = ThisDocument.CustomDocumentProperties("SF_API_KEY")
    If Err.Number <> 0 Then
        MsgBox "未找到API密钥,请先进行设置", vbExclamation
        SetApiKey
        GetApiKey = ThisDocument.CustomDocumentProperties("SF_API_KEY")
    End If
End Function
2. 使用说明

(1) 设置API密钥

  • 运行 SetApiKey

  • 输入从硅基流动平台获取的API密钥

(2) 日常使用

  • 方案1:选中文本 → 运行AskDeepSeek宏

    • 将自动使用选中文本作为问题

    • 在选区下方插入AI回答

  • 方案2:直接运行AskDeepSeek宏

    • 弹出输入框输入问题

    • 在当前光标位置插入回答

(3) 结果格式

  • AI回答将自动高亮为黄色

  • 自动添加[AI回答]前缀

3. 功能特点

(1)无缝文档集成

  • 直接使用文档选区作为输入

  • 结果插入到文档当前选区位置

  • 保留原始文档格式

(2) 零第三方依赖

  • 仅使用Word内置VBA功能

  • 简单字符串处理代替JSON解析

  • 无需任何窗体控件

(3) 智能输入处理

  • 自动去除选区末尾的段落标记

  • 支持多行文本输入

  • 自动转义特殊字符

(4) 安全存储

  • API密钥加密存储在文档属性中

  • 每个文档独立保存密钥

4. 错误处理

(1) 网络错误

  • 自动显示HTTP状态码和原始响应

  • 示例:API错误:401 - {"code":401, "message":"Unauthorized"}

(2) 密钥未设置

  • 首次使用自动提示输入密钥

  • 密钥错误时提示重新设置

(3) 空输入处理

  • 未选中文本且取消输入时自动退出

  • 空输入不会发送API请求

5. 性能优化

(1) 轻量级解析

  • 使用字符串函数代替正则表达式

  • 仅提取必要字段(content)

(2)内存管理

  • 及时释放HTTP对象

  • 限制最大token数为1024

(3)响应缓存

  • (可选)添加以下代码缓存结果:

VBADim cache As Object
Set cache = CreateObject("Scripting.Dictionary")
If cache.Exists(userPrompt) Then
    answer = cache(userPrompt)
Else
    answer = CallDeepSeek(apiKey, userPrompt)
    cache.Add userPrompt, answer
End If

        该方案完全基于Word原生功能实现,兼容Office 2007及以上版本,无需任何额外组件安装。

6. 效果展示

        在选项卡“开发工具”下定义ADS组,并将上文宏开发一节代码中的两个函数(模块)AskDeepSeek和SetApiKey分别添加到该组。回到Word主界面,点开“开发工具”选项卡,可以看到相应的快捷工具。

        根据上文使用说明,先设置API密钥,点击“SetApiKey”,填入密钥字符,并点击“确定”完成设置。

image-20250223101200701

        与DeepSeek-R1会话,可点击“AskDS”,输入提示词,并点击“确定”完成输入。

image-20250223101544532

        等待片刻,空白页上会输出DeepSeek-R1模型的回答。

image-20250223101738207

        也可以在Word页面的空白处输入提示词,选择提示词文本后,点击“AskDS”,等待模型的回答。

image-20250223102319556

        最后输出的结果如下:

image-20250223102848086

四、写在最后

        任何新生事物对世界、国家、社会和个人的影响总是有好有坏的,如何趋利避害也是值得认真思考的课题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值