POST
/api/chat
gemini · openai · openrouter
statusonline
FQHT AI Gateway
gemini · openai · openrouter
gemini image
contract reserved
`role`:把本地 `/api/chat` 的 OpenRouter 调用迁到中台。
`luma`:把内容生成、标题生成等 OpenAI/OpenRouter 调用迁到中台。
`site`:把落地页生成、AI 内容生成调用迁到中台。
POST /api/chat
统一聊天入口。当前可先用 OpenRouter:model=openrouter,modelName 使用 OpenRouter 模型名。stream=true 时返回 SSE。
Request
POST /api/chat
Authorization: Bearer $GATEWAY_SECRET
Content-Type: application/json
{
"productTag": "role",
"model": "openrouter",
"modelName": "openai/gpt-4o-mini",
"stream": false,
"temperature": 0.7,
"maxTokens": 1024,
"messages": [
{ "role": "system", "content": "You are a helpful assistant." },
{ "role": "user", "content": "Say hello in Chinese." }
]
}Response
{
"code": 200,
"message": "success",
"data": { "content": "你好!" },
"meta": {
"requestId": "a1b2c3",
"timestamp": "2026-06-01T12:00:00.000Z"
}
}POST /api/chat
流式响应逐段返回 JSON payload,最后以 [DONE] 结束;客户端按 text/event-stream 解析。
Request
把 /api/chat 请求体里的 "stream" 设置为 true。
Response
data: {"content":"你","requestId":"a1b2c3"}
data: {"content":"好","requestId":"a1b2c3"}
data: [DONE]POST /api/image
图像生成入口。当前保留 Gemini 图像能力,imageBase64 可省略;带图时 Base64 清洗后限制约 1MB。
Request
POST /api/image
Authorization: Bearer $GATEWAY_SECRET
{
"productTag": "site",
"model": "gemini",
"prompt": "Generate a clean SaaS hero image",
"imageBase64": "data:image/jpeg;base64,..."
}Response
{
"code": 200,
"message": "success",
"data": {
"image": "data:image/png;base64,..."
}
}POST /api/video
视频生成契约已预留,目前返回 501,后续接入视频模型后保持同一认证和响应格式。
Request
{
"productTag": "site",
"model": "gemini",
"prompt": "A product demo video"
}Response
{
"code": 501,
"message": "视频生成功能暂未上线"
}Server Route / Server Action
下游项目不要把网关密钥暴露给浏览器;在服务端 API、Server Action 或后台任务里调用。
Request
await fetch(process.env.AI_GATEWAY_URL + '/api/chat', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${process.env.AI_GATEWAY_SECRET}`,
},
body: JSON.stringify({
productTag: 'luma',
model: 'openrouter',
modelName: 'openai/gpt-4o-mini',
messages,
}),
});Response
下游接口只返回本产品需要的数据结构,中台响应中的 meta.requestId 建议写入业务日志。