本文系统讲解WPS通过JS宏接入DeepSeek API的完整流程,涵盖密钥获取、环境配置、代码编写与教学场景应用,帮助AI指导老师低成本实现文档智能处理。 WPS作为国内主流办公套件,其JS宏能力为接入大模型提供了可行路径。DeepSeek API以高性价比和OpenAI兼容接口著称,将二者结合,AI指导老师可以在文档内直接完成作文批改、知识点生成等任务。本文从零开始,逐步解析接入过程中的关键环节与实操细节。
1. 接入前的环境与账号准备
要完成WPS与DeepSeek API的对接,首先需要确认WPS Office的版本与宏功能支持。建议使用WPS 2019及以上专业版或最新个人版,并在“文件-选项-自定义功能区”中勾选“开发工具”选项卡,确保JS宏编辑器可用。同时,宏安全级别应设置为中或低,允许运行宏,否则后续编写的代码会被拦截。在账号方面,需要访问DeepSeek开放平台注册账号,完成实名认证后创建API Key。该密钥仅在创建时显示一次,必须妥善保存。DeepSeek API采用按token计费的,价格相对低廉,适合教学场景中的高频调用。此外,要确保本机网络能够正常访问api.deepseek.com,如果处于公司内网或校园网,可能需要提前配置代理或申请网络权限。
对于AI指导老师而言,还需要准备教学场景中的提示词模板,例如作文批改的评分标准、知识点讲解的格式要求。建议在WPS中建立一个专门的宏文件或模板文档,将API密钥存储在文档的自定义属性中,避免硬编码在代码里。同时,了解DeepSeek API的速率限制和常见错误码,如401表示认证失败,429表示请求过多,500表示服务端异常。准备一个简单的日志记录机制,将请求和响应写入文本文件,便于调试和追溯。这些准备工作虽然繁琐,但能显著降低后续开发中的故障率,尤其当多个学生同时使用同一模板时,稳定的配置是基础保障。
此外,需要明确WPS JS宏的运行环境。WPS JS宏基于QuickJS引擎,支持ES6部分特性,但网络请求不能直接使用浏览器fetch,而是通过COM对象或WPS提供的网络接口。经过实测,使用CreateObject(“WinHttp.WinHttpRequest.5.1”)是最稳定的。如果系统是Windows,该COM对象通常可用;如果是Mac或Linux,WPS JS宏在非Windows平台支持有限,建议在Windows下操作。同时,要确保WPS进程有网络访问权限,防火墙不拦截。完成这些准备后,就可以进入密钥配置环节。
2. 配置DeepSeek API密钥与请求参数
在WPS JS宏编辑器中,新建一个模块并编写初始化函数。首先定义常量:API_KEY、API_URL、MODEL。API_URL为”https://api.deepseek.com/v1/chat/completions”,MODEL可选择”deepseek-chat”或”deepseek-reasoner”。然后创建WinHttpRequest对象,设置Open方法为POST,设置请求头”Content-Type: application/json; charset=utf-8″和”Authorization: Bearer ” + API_KEY。请求体是一个JSON字符串,包含model、messages、temperature、max_tokens等字段。messages是一个数组,每个元素有role和content,role可以是system、user或assistant。对于教学场景,system角色可以设定为“你是一位资深AI指导老师,请用简洁专业的语言回答”,user角色放入需要处理的内容。WPS JS宏支持JSON.stringify和JSON.parse,可以直接序列化和解析,但要注意中文编码,确保请求头中声明了charset=utf-8。
关于密钥安全,不要将API Key直接写在宏代码中,因为宏代码可能被分享或查看。可以将密钥写入WPS文档的自定义属性,通过ActiveDocument.CustomDocumentProperties读取,或者保存在一个外部文本文件中,通过FileSystemObject读取。对于AI指导老师,如果制作的是教学模板,可以引导学员自行填入密钥。另外,DeepSeek API支持流式输出,但WPS JS宏处理流式响应较为复杂,需要逐块读取,建议先使用非流式,等待完整响应。非流式响应时间可能较长,需要设置超时,hr.SetTimeouts(30000, 30000, 30000, 30000)。同时,要控制max_tokens,避免生成过长内容导致等待过久或费用过高。对于作文批改,建议max_tokens设为1000左右,对于生成教案可以设为2000。
请求参数中的temperature控制随机性,批改作业建议0.3,创意写作建议0.8。top_p也可以调整,但一般保持默认。DeepSeek API还支持频率惩罚和存在惩罚,但在教学场景中通常不需要。在配置时,要确保messages数组格式正确,如果传入多轮对话,需要维护历史消息数组。对于简单的单次调用,只需system和user两条消息。注意DeepSeek的deepseek-chat模型上下文长度为64K,足够处理长文档,但如果文档超过长度,需要分段处理。配置完成后,可以编写一个测试函数,在WPS中运行,观察是否返回预期结果。如果返回401,检查密钥是否正确;如果返回400,检查JSON格式是否合法;如果返回429,降低调用频率。这些调试经验对后续应用至关重要。
3. 编写JS宏实现文档内容交互
核心是让WPS文档中的选中文本或全文作为输入,调用DeepSeek API,然后将返回结果插入文档。首先,获取当前文档内容:var doc = Application.ActiveDocument; var text = doc.Range.Text; 或者获取选区:var sel = Application.Selection; var text = sel.Text;。然后调用之前封装的callDeepSeek函数,传入构造的提示词。提示词可以设计为:“请批改以下作文,指出语法错误、逻辑问题,并给出修改建议:\n” + text。返回结果后,可以用doc.Range.InsertAfter(result)插入到文档末尾,或者用sel.Text = result替换选区。对于AI指导老师,更常见的需求是生成教学材料:比如选中一个知识点,让API生成讲解、例题、练习题。也可以实现文档摘要、翻译、润色。代码中要注意处理换行和特殊字符,避免破坏JSON结构,使用JSON.stringify可以自动转义。
为了实现批量处理,可以遍历文档中的段落,对每个段落调用API。但要注意API调用频率和费用,建议增加延时或使用异步。WPS JS宏默认是单线程同步执行,调用HTTP会阻塞界面,如果处理长文档,用户体验差。可以考虑使用setTimeout异步,但JS宏环境可能不支持完整的异步。一种折中方案是分步执行,每次处理一个段落,用户点击一次按钮处理一段。或者使用WPS的任务窗格加载项,用Web技术开发,但那是另一条路径。对于大多数AI指导老师,简单的宏按钮已经足够。可以将宏绑定到自定义工具栏按钮,方便一键调用。在代码中,要加入错误处理,如果API返回错误,用alert或console.log提示,并保留原始文档内容,避免数据丢失。
此外,可以结合WPS的书签或内容控件来标记需要处理的位置。例如,在作文中插入书签“待批改”,宏读取书签范围内容,调用API后,将结果插入到书签后面。这样更精准。还可以将API返回的JSON结构化数据解析后,分别填入表格。比如让DeepSeek返回JSON格式的评分和评语,然后写入WPS表格。这需要提示词中明确要求“以JSON格式返回,包含分数、优点、缺点、建议”。然后解析后写入单元格。对于AI指导老师,这种自动化评分能极大提升效率。但要注意,DeepSeek的JSON输出可能包含markdown代码块,需要去除“`json标记,可以使用正则表达式提取。这些细节决定了集成的稳定性。
4. 教学场景应用与常见问题排查
在AI指导老师领域,WPS接入DeepSeek API可以落地多个场景。例如,自动批改学生作文:教师将学生作文粘贴到WPS文档,点击宏按钮,API返回批改意见,包括错别字、病句、结构建议,并给出评分。又比如,生成个性化学习计划:输入学生薄弱知识点,API生成每周学习安排和练习题目。再如,智能出题:根据教材内容,API生成选择题、填空题,并自动填入WPS表格。还有,辅助备课:输入课题,API生成教案框架、课堂活动设计、板书建议。这些应用不需要复杂的编程,只需调整提示词和输出格式。对于AI指导老师,掌握这些技巧可以显著减少重复劳动,将更多精力投入到与学生的互动和个性化辅导中。
常见问题方面,最典型的是API密钥无效或过期,表现为401错误。此时需要登录DeepSeek平台重新生成密钥。其次是网络问题,如果公司网络限制,可能需要配置代理,WinHttpRequest可以通过hr.SetProxy设置代理。另外,JSON解析失败往往是因为返回内容中包含了非JSON字符,或者响应本身是HTML错误页。建议在解析前先检查hr.Status是否为200。如果遇到超时,可以增加SetTimeouts的值。还有,WPS JS宏在某些版本中可能不支持CreateObject,需要确认WPS版本和系统权限。如果宏无法运行,检查宏安全设置,将“信任对VBA工程对象模型的访问”勾选。对于Mac用户,WPS JS宏的COM支持有限,建议使用Windows虚拟机或改用WPS开放平台的Web加载项。
性能优化方面,如果处理大量文档,建议优化提示词,减少不必要的token消耗。例如,将评分标准固化在system消息中,避免每次重复。同时,利用DeepSeek的上下文缓存机制,但需要相同前缀。对于重复性任务,可以自己维护一个本地缓存,将常见问题的回答保存下来。最后,要遵守DeepSeek的使用条款,不得用于生成违法内容。作为AI指导老师,还应引导学生正确使用AI,培养批判性思维,而不是完全依赖。通过合理配置和调试,WPS与DeepSeek的结合能够成为教学中的得力助手。

