本文围绕小程序接入DeepSeek API的完整链路,梳理架构选型、密钥安全、流式请求与教学场景合规要点,帮助团队少走弯路。 在AI指导老师类小程序里,接入大模型并不是在小程序端发一个请求就算完成。DeepSeek API虽然兼容常见的OpenAI调用格式,但小程序有独立的网络请求限制、登录态体系和审核要求,API Key也不能出现在前端代码中。真正可上线的方案需要把小程序、云端代理、DeepSeek接口和教学场景提示词放在同一条链路里设计,下面按工程落地顺序拆解关键环节。
1. 接入前的架构判断与能力边界
DeepSeek API提供的是标准HTTPS接口,常见对话端点位于api.deepseek.com,请求体沿用messages数组和model字段,deepseek-chat适合通用答疑,deepseek-reasoner更偏向复杂推理。小程序端如果直接调用,会同时遇到两个硬约束:一是request合法域名必须为已备案的HTTPS域名,开发工具可以临时关闭校验,真机环境却必须配置;二是API Key一旦写入小程序包,反编译后即可被提取,无法作为生产方案。因此架构上应优先选择云端代理,常见做法是云开发的云函数、云托管容器或自建后端服务,由服务端持有密钥并完成鉴权、限流和日志脱敏。
从能力边界看,DeepSeek接口本身不保存会话上下文,多轮对话需要客户端或服务端维护messages历史,并在每次请求时携带。AI指导老师场景往往涉及数学步骤讲解、作文批改和学习计划生成,单次回答的token消耗并不低,如果直接把完整历史无限追加,成本和延迟都会快速上升。工程上应在代理层设置历史截断或摘要策略,同时明确模型只负责生成建议,不替代教师评价。对于需要流式输出的答疑场景,还要提前判断代理层是否支持分块转发,因为普通云函数同步返回的模式很难把首字延迟压到可接受范围,这一点会直接影响后续技术选型。
2. 密钥安全与云端代理链路
API Key的安全管理是整条链路的底线。生产环境中密钥只应存放在服务端环境变量或密钥管理服务里,不能写入小程序代码、前端配置文件、Git仓库或云函数返回体。使用云开发时,可以在云函数环境变量中配置DeepSeek密钥,小程序通过wx.cloud.callFunction进入云函数,再由云函数读取getWXContext中的openid完成用户识别。这样既隐藏了密钥,也能基于openid做每日调用额度、频率限制和异常行为拦截。自建后端则更适合用登录态换取短期令牌,由网关统一校验JWT,再把请求转发给DeepSeek,避免每个业务接口重复处理鉴权。
代理层不能只做转发,还要承担成本与安全控制。实际项目中常见的问题是小程序上线后遭遇脚本刷接口,短时间内产生大量token费用,因此需要在代理层记录用户维度调用量、对高频请求返回429、对敏感词和不当教学内容做前置过滤,并在日志中脱敏处理对话内容。链路配置上,云函数出网访问DeepSeek通常不受小程序request合法域名限制,但自建服务器必须完成ICP备案、部署HTTPS证书,并把代理域名加入小程序后台的request合法域名列表。某教育类小程序曾把密钥写进前端用于“快速验证”,结果包体被反编译后密钥泄露,账单在两天内异常增长,这类案例说明密钥安全不是上线前的可选项,而是架构设计的第一约束。
3. 请求封装与流式输出实现
请求封装要围绕DeepSeek的对话接口展开。服务端向/chat/completions发起POST请求时,需要设置Authorization为Bearer加密钥、Content-Type为application/json,请求体包含model、messages和stream参数。非流式模式下,小程序等待完整JSON返回后再渲染,实现简单,但AI指导老师的长答案往往需要数秒甚至更久,用户容易误以为小程序卡死。流式模式下,服务端以SSE格式逐块返回data行,小程序端使用wx.request时需要开启enableChunked并监听onChunkReceived,把ArrayBuffer按UTF-8解码后放入缓冲区,再按换行拆分出data:片段,遇到[DONE]结束。分块边界可能截断一行JSON,不能假设每次回调都是完整消息,否则会出现解析报错或文字缺字。
多轮上下文和异常处理同样需要封装在请求层。AI指导老师场景通常要携带system提示词、最近若干轮对话和当前问题,服务端应对历史做token预算控制,例如保留最近六到十轮并对更早内容做摘要,避免请求体无限膨胀。错误处理要覆盖401密钥失效、429限流、5xx服务异常和网络超时,配合指数退避重试,但重试只适用于幂等或未产生计费的失败请求。需要特别说明的是,云函数的同步调用模式不适合直接把流式响应透传给小程序,若坚持流式体验,通常要使用云托管、容器服务或自建WebSocket/HTTP代理;如果采用云函数聚合返回,则应在交互上增加“正在思考”的状态提示,并控制单次回答长度,减少用户等待焦虑。
4. 教学场景调优与上线合规
AI指导老师的提示词设计要服务于教学流程,而不是追求“像老师说话”。系统提示词应明确学段、学科、回答边界和引导策略,例如数学答疑要求先判断学生卡点,再给出分步提示,最后才展示完整解法;作文批改要求先肯定结构亮点,再指出两处可修改语句,避免一次性输出大段评价。对于需要引用教材知识点的场景,可以在代理层拼接轻量知识片段,但不宜在小程序首版就引入复杂RAG链路,否则检索失败会放大模型幻觉。输出结构可以固定为“知识点判断、思路提示、练习建议”三段,既便于前端渲染,也方便教师复核。
上线合规需要提前处理小程序类目、用户协议和生成内容标识。涉及教育问答和AI生成内容的小程序,应在隐私政策中说明收集openid、对话文本的用途和保存期限,并提供删除入口;生成式AI相关服务还要关注备案与内容标识要求,避免把模型输出直接包装成官方结论。成本控制方面,应按用户每日提问次数设置额度,对常见问题做缓存,对长对话做摘要压缩,并在后台监控token消耗、错误率和平均首字延迟。真机测试要覆盖弱网、流式中断、键盘遮挡和长文本滚动,尤其要验证代理层限流触发时前端是否有清晰提示。只有把教学效果、工程稳定性和合规要求同时纳入验收,接入DeepSeek API才具备长期运行的基础。

