小程序里调用大模型,你的密钥正裸奔——用安全代理把接入时间从两周压到半天
一个真实的问题
很多独立开发者第一次在小程序里接大模型时,都会踩同一个坑:直接在小程序前端代码里写死 API Key。
这等于把家门钥匙贴在门上。小程序的代码包任何人都能反编译,密钥一旦泄露,别人拿你的额度跑量,账单是你的。所以正规做法是自建一层后端代理:买服务器、写鉴权、配 HTTPS 域名、做限流、处理密钥轮换……独立开发者算一笔账就明白这有多重:
| 项目 | 自建代理 | 通过 AI 网关中转 |
|---|---|---|
| 服务器采购与配置 | 半天到一天 | 0,无服务器 |
| 域名备案 + HTTPS 证书 | 1~7 天(视备案情况) | 0,网关域名已就绪 |
| 鉴权/限流/密钥轮换代码 | 2~3 天 | 平台托管 |
| 小程序后台域名白名单 | 需配置 | 配置一次即可 |
保守估算,自建方案从立项到能上线,至少消耗一个开发者 5~10 个工作日;而走网关中转,通常一个下午就能跑通联调。按独立开发者的时间成本折算,这不是省了几百块服务器钱的问题,而是把两周的排期压缩成半天的差别——那省下来的一周多,够你把小程序本身的体验打磨两轮。
思路:密钥不下发,代理来中转
方案的核心一句话:小程序端永远不持有密钥,所有请求经 AI 网关转发,密钥只存在于你唯一的服务端配置里(或由网关托管)。
架构就三步:
- 小程序
wx.request请求网关地址; - 网关校验你配置的访问策略,转发给模型服务商;
- 响应原路返回,小程序拿到结果渲染。
你不需要写任何代理代码,网关本身就是那层代理。你要做的只有:注册账号、拿 Key、把 Key 放到唯一的服务端位置(比如你的云函数或一个 Next.js 路由处理程序,密钥只放这一份),然后在小程序端调你自己的这个端点。
动手:十分钟跑通第一段代码
第一步,注册 ThisToken.AI 账号,进入控制台的 API Keys 页面,创建一个 Key 并妥善保存。价格方面不做假设,以官网价格页为准。
第二步,在你的服务端(云函数 / Next.js Route Handler 等)写转发逻辑。以 Python 为例:
# server/proxy.py —— 部署在你的云函数或服务器上
# 这是全项目唯一持有 API Key 的地方
import os
from flask import Flask, request, jsonify, Response
from openai import OpenAI
app = Flask(__name__)
client = OpenAI(
api_key=os.environ["THISTOKEN_API_KEY"],
base_url="https://api.thistoken.ai/v1",
)
@app.post("/api/chat")
def chat():
body = request.get_json(force=True)
# 这里可以加上你自己的用户鉴权逻辑,防止接口被白嫖
messages = body.get("messages", [])
try:
resp = client.chat.completions.create(
model="gpt-4o-mini", # 按你在网关控制台开通的模型填写
messages=messages,
stream=False,
)
return jsonify({
"reply": resp.choices[0].message.content
})
except Exception as e:
return jsonify({"error": str(e)}), 502
if __name__ == "__main__":
app.run(port=8787)第三步,小程序端调用,注意域名要加入小程序后台的 request 合法域名列表:
// miniprogram/utils/ai.js
function askAI(messages) {
return new Promise((resolve, reject) => {
wx.request({
url: "https://你的域名/api/chat",
method: "POST",
data: { messages },
header: { "content-type": "application/json" },
success: (res) => resolve(res.data.reply),
fail: reject,
});
});
}
module.exports = { askAI };在页面里 askAI([{ role: "user", content: "你好" }]),几秒内就能收到第一条模型回复。到这里,接入就算跑通了。
几个容易忽视的点
- 密钥只放一份:只存在于上文的
THISTOKEN_API_KEY环境变量里,不要写进代码仓库,更不要下发到小程序端。 - 给自己加一层鉴权:代理端点是公开的,建议带上小程序登录态(如
wx.login换取的 code 校验),否则任何人都能消耗你的额度。 - 流式输出:如果要做打字机效果,把
stream=True打开并转发 SSE,小程序端用wx.request的enableChunked接收分块。 - 失败兜底:网关返回异常时给用户一句友好提示并允许重试,别让空白页面消耗掉你前面省下的时间。
算总账
自建代理:服务器长期成本 + 5~10 个工作日的搭建维护 + 密钥泄露风险全部自担。网关代理:注册到跑通半天以内,鉴权、转发、密钥管理交给平台,你的时间花在产品本身。
对独立开发者和小团队来说,这个选择不难做。现在就到 https://api.thistoken.ai/register 注册,把你的第一个小程序 AI 功能跑起来吧。
---
想直接跑通示例?访问 https://api.thistoken.ai/register 注册 ThisToken.AI,获取 API Key 后即可开始。