必须完成fastapi接口开发、docker容器打包、nginx反向代理三层闭环,缺一不可;否则外部请求无法穿透,线上将返回502错误。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要将Gemini API封装为生产级Web服务,必须完成FastAPI接口开发、Docker容器打包、Nginx反向代理三层闭环,缺一不可——否则外部请求无法穿透到AI模型服务,本地测试通的接口在线上会直接502。
编写FastAPI封装服务
在项目根目录创建main.py,用google-generativeai初始化客户端并暴露/generate端点:
from fastapi import FastAPI, HTTPException
import google.generativeai as genai
app = FastAPI(title="Gemini API Gateway", version="1.0")
# 从环境变量读取API密钥,禁止硬编码
genai.configure(api_key=os.getenv("GEMINI_API_KEY"))
@app.post("/generate")
async def generate_content(prompt: str):
if not prompt.strip():
raise HTTPException(status_code=400, detail="Prompt cannot be empty")
try:
model = genai.GenerativeModel("gemini-1.5-flash")
response = await model.generate_content_async(prompt)
return {"response": response.text}
except Exception as e:
raise HTTPException(status_code=500, detail=f"AI generation failed: {str(e)}")
这一步必须用generate_content_async而非同步方法,否则Uvicorn事件循环会被阻塞,高并发下直接卡死。
构建Docker镜像
方法一:基础镜像构建
在项目根目录创建Dockerfile:
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0:8000", "--port", "8000", "--workers", "4"]
注意:【CMD中必须显式指定--host 0.0.0.0:8000,不能只写--host 0.0.0.0】,否则容器内Uvicorn绑定的是127.0.0.1,Docker网络无法访问。
方法二:多阶段构建(减小镜像体积)
使用python:3.11-slim作为构建阶段镜像,仅复制编译后的.dist-info和.so文件到最终镜像,可使镜像体积压缩40%以上。
配置Nginx反向代理
第一步:创建nginx/conf.d/gemini.conf
server {
listen 80;
server_name _;
location / {
proxy_pass http://gemini-app:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 300;
}
}
第二步:创建nginx/Dockerfile
FROM nginx:alpine
COPY conf.d/gemini.conf /etc/nginx/conf.d/default.conf
第三步:确保Docker Compose中服务名与proxy_pass地址严格一致——【nginx配置里的gemini-app必须与docker-compose.yml中fastapi服务的service name完全相同】,大小写、连字符都不能错。
启动Docker Compose服务栈
编写docker-compose.yml,定义三个服务:
version: "3.8"
services:
gemini-app:
build: .
environment:
- GEMINI_API_KEY=${GEMINI_API_KEY}
restart: unless-stopped
nginx:
build: ./nginx
ports:
- "80:80"
depends_on:
- gemini-app
执行命令启动:
export GEMINI_API_KEY="your_actual_api_key_here"
docker-compose up --build -d
等待容器启动完成后,直接访问http://localhost/generate,发送POST JSON请求即可触发Gemini响应。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











