Gemini API 怎么接 Next.js?从 API Key 到服务端 Route Handler + 流式
在 Next.js 接 Google Gemini API 的正确做法:用 @google/generative-ai SDK、key 放服务端 Route Handler、流式返回、处理 400/403/429 报错,绝不在前端暴露 key。附可用代码。
Published: 2026-06-05 / Updated: 2026-06-26
Google Gemini API 接 Next.js 的逻辑和接 OpenAI 一样:key 放服务端、用 Route Handler 中转、前端只调你自己的接口。Gemini 有免费额度,适合做 Demo,但 key 一样不能漏到前端。
第一步:拿 Key + 装 SDK
去 Google AI Studio 申请 API Key(注意它的免费额度和速率限制)。装官方 SDK:
npm install @google/generative-ai
.env.local(不加 NEXT_PUBLIC_):
GEMINI_API_KEY=xxxxx
第二步:服务端 Route Handler
新建 app/api/gemini/route.ts:
import { GoogleGenerativeAI } from "@google/generative-ai";
export const runtime = "nodejs";
const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY!);
export async function POST(req: Request) {
const { prompt } = await req.json();
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" }); // 以官方当前模型为准
const result = await model.generateContent(prompt);
return Response.json({ text: result.response.text() });
}
前端 fetch("/api/gemini", ...),key 不出服务端。
第三步:流式返回
const result = await model.generateContentStream(prompt);
const encoder = new TextEncoder();
return new Response(new ReadableStream({
async start(controller) {
for await (const chunk of result.stream) {
controller.enqueue(encoder.encode(chunk.text()));
}
controller.close();
},
}), { headers: { "Content-Type": "text/plain; charset=utf-8" } });
常见报错和修复
- 400 API key not valid:key 错或没读到 → 检查
.env.local、重启 dev。 - 403 / PERMISSION_DENIED:key 没开对应 API,或地区/项目限制 → 在 Google AI Studio / Cloud 确认 key 权限。
- 429 RESOURCE_EXHAUSTED:超免费额度或 RPM/TPM 限制 → 降速、加重试退避、或换更高配额。
- 生产读不到:Vercel 没配
GEMINI_API_KEY→ 补环境变量并重新部署。
OpenAI vs Gemini 接入差异(一句话)
调用结构几乎一样(key + 服务端中转 + 流式),主要差别在 SDK 包名和方法名:OpenAI 是 openai + chat.completions.create,Gemini 是 @google/generative-ai + generateContent。换供应商主要改这层。
让 Codex 辅助
我在 Next.js 接 Gemini API 报 [贴报错]。
请判断是 key 无效、权限、还是配额问题,给出修复,并确认我的 key 没暴露在前端。
风险提醒
- key 只在服务端,泄露立刻在 Google AI Studio 吊销换新。
- 免费额度有限,给
/api/gemini加频率限制,别被人刷爆配额。
相关工具
相关 AI 接入
接其他模型 / 管好 key 一起看:
免责声明
本文 SDK 用法对应 Google Generative AI 与 Next.js 的通用行为;具体模型名、免费额度、限额以 Google AI 官方文档为准,涉及客户密钥时需明确授权并人工复核。
读完后可以直接用的工具
根据这篇文章的主题自动匹配,先用工具做判断,再人工复核交付。
SEO path
Continue through the same topic network
Question entrances
Use a practical tool after reading this guide
先用工具做判断,再用模板整理交付。生成内容只能作为草稿,不要不审核就直接发给客户。
Related articles
需要人工协助配置或排错?
你可以先用本站工具和模板自助排查。若确实卡在 Codex、Claude Code、GitHub、Vercel 配置或客户需求判断上,可以通过联系页咨询。服务不是主业入口,只作为少量高价值人工协助保留。
联系我