对新生事物很感兴趣的人而言,主动拥抱和学习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。下载安装,程序主界面如下:
Chatbox软件除了支持与AI模型的对话之外,还支持Markdown文本编辑、程序开发、文生图片、文生图表等流程的实现,相对于官方APP更具有定制性,这也是推荐使用Chatbox的原因。
2. Chatbox设置
在Chatbox主界面的左侧菜单栏上点击“设置”,打开设置对话框:
在“模型提供方”下选择“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”,填入密钥字符,并点击“确定”完成设置。
与DeepSeek-R1会话,可点击“AskDS”,输入提示词,并点击“确定”完成输入。
等待片刻,空白页上会输出DeepSeek-R1模型的回答。
也可以在Word页面的空白处输入提示词,选择提示词文本后,点击“AskDS”,等待模型的回答。
最后输出的结果如下:
四、写在最后
任何新生事物对世界、国家、社会和个人的影响总是有好有坏的,如何趋利避害也是值得认真思考的课题。