微信小程序接 DeepSeek,我先踩了几个坑
小程序不能直接把 API Key 放前端,所以我用云函数做了一层中转。这里记一下当时踩到的几个问题。
靖靖淯茗·2026年6月9日·2 分钟阅读
做「AI 聊天回忆馆」的时候,我需要让微信小程序调用 DeepSeek。
一开始想得很简单:前端直接 request 一下不就行了?真写的时候才发现不行。小程序有合法域名限制,API Key 也不能放前端。放了就等于把钥匙贴在门上,谁打开开发者工具都能看到。
最后用了云函数中转
所以我加了一层云函数。小程序只调用自己的云函数,真正请求 DeepSeek 的逻辑放在云函数里,API Key 放环境变量。
// 云函数 chat/index.js
const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async (event) => {
const res = await fetch('https://api.deepseek.com/chat/completions', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.DEEPSEEK_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: 'deepseek-chat',
messages: event.messages,
}),
})
return res.json()
}踩过的坑
云函数超时
默认超时太短了,大模型稍微慢一点就直接失败。我一开始还以为是代码写错了,后来才发现是函数超时。
解决方法是在 config.json 里把 timeout 调大,比如 60 秒。
上下文长度
刚开始我把完整聊天记录都塞进 messages。能跑,但越聊越慢,请求也越来越大。
后来改成只保留最近几轮,更早的内容用一条摘要代替。这个方案不完美,但对小程序这种场景已经够用了。
内容安全
微信审核绕不开内容安全。用户输入要检查,模型输出最好也检查一下。
这一步挺烦,但不能省。尤其是 AI 输出不可控,你不能假设模型永远说正常内容。
小结
现在看,小程序接大模型还是应该走后端中转。前端只负责发消息和展示结果,Key、限流、内容安全都放后端。
下一步我想把流式输出做顺。现在等完整结果返回,体验还是有点木。
#微信小程序#DeepSeek#云开发
靖
靖淯茗
计算机专业在读,在 AI / Web / 数据库之间折腾。Build · Learn · Share。