Gemini API 服务器

一个提供与OpenAI兼容的聊天完成功能的REST API服务器,通过Vertex AI集成Google的Gemini模型,适用于需要高性能和易于部署的AI聊天应用。

  • by howardjong
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 howardjong/gemini-mcp

使用说明

Gemini API服务器

A. REST API服务器 通过Vertex AI为谷歌的Gemini模型提供与OpenAI兼容的聊天完成。采用FastAPI构建,性能高,易于部署。

特性

  • OpenAI兼容:代替OpenAI聊天完成API
  • 快速API:具有自动文档的高性能异步API
  • Gemini集成:通过Vertex AI发布的最新Gemini 2.5 Pro
  • 速率限制:内置请求速率限制
  • 流媒体:实时响应流媒体支持
  • Docker就绪:生产就绪的集装箱化
  • 自动文档:上的交互式API文档 /docs

建筑

此服务器提供了具有与OpenAI兼容的终结点的REST API:

  • 框架:支持async/await的FastAPI
  • 运输:带有JSON有效载荷的HTTP/REST
  • 端点: /v1/chat/completions, /v1/models, /v1/health
  • 兼容性:OpenAI Python客户端和其他OpenAI兼容工具

先决条件

  • Python 3.10+
  • Google Cloud帐户:
    • Vertex AI API已启用
    • 服务帐户 Vertex AI User 角色

设置

1.克隆和安装

git clone https://github.com/howardjong/gemini-mcp.git
cd gemini-mcp
pip install -r requirements.txt

2.谷歌云设置

创建服务帐户密钥:

  • 引导到 GCP IAM
  • 使用创建服务帐户 Vertex AI User 角色
  • 生成JSON密钥并保存到 credentials/vertex-ai-key.json

3.环境配置

创建 .env 文件:

# Required
GCP_PROJECT_ID=your-project-id
GCP_REGION=us-central1
GCP_SERVICE_ACCOUNT_KEY=credentials/vertex-ai-key.json
VERTEX_MODEL_NAME=gemini-2.5-pro-preview-05-06

# Optional
DEBUG=false
PORT=8000
LOG_LEVEL=INFO
RATE_LIMIT_RPM=150

用法

地方发展

# Run FastAPI server for local development
python -m app.main

# Or using the module entry point
python -m app

Web部署

# For production deployment (Docker)
docker build -t gemini-mcp .
docker run -p 8000:8000 --env-file .env gemini-mcp

# Or run directly with uvicorn
uvicorn app.main:app --host 0.0.0.0 --port 8000

部署以渲染

  1. 连接您的GitHub存储库 渲染
  2. 设置环境变量 在渲染仪表板中:
    GCP_PROJECT_ID=your-project-id
    GCP_REGION=us-central1
    VERTEX_MODEL_NAME=gemini-2.5-pro-preview-05-06
    
  3. 上传服务帐户密钥 内容为 GCP_SERVICE_ACCOUNT_KEY_JSON 环境变量
  4. 部署 -Render将自动构建并运行FastAPI服务器

部署的服务器将可以作为具有与OpenAI兼容的聊天完成端点的REST API进行访问。

API终点

聊天完成

  • POST /v1/chat/completions -OpenAI兼容的聊天完成
  • POST /v1/models/{model_id}/chat -与特定模特聊天

模型信息

  • GET /v1/models -列出可用型号
  • GET /v1/info -服务器和型号信息

健康检查

  • GET /v1/health -服务器运行状况

API使用

Python客户端示例

import requests

# Chat with Gemini
response = requests.post("https://your-app.onrender.com/v1/chat/completions", 
    json={
        "model": "gemini-2.5-pro-preview-05-06",
        "messages": [
            {"role": "user", "content": "Hello, how are you?"}
        ],
        "stream": false
    }
)

print(response.json())

cURL示例

curl -X POST https://your-app.onrender.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-2.5-pro-preview-05-06", 
    "messages": [
      {"role": "user", "content": "Hello!"}
    ]
  }'

流媒体示例

# Stream responses in real-time
curl -X POST https://your-app.onrender.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-2.5-pro-preview-05-06",
    "messages": [
      {"role": "user", "content": "Tell me a story"}
    ],
    "stream": true
  }'
# Python streaming example
import requests

response = requests.post("https://your-app.onrender.com/v1/chat/completions",
    json={
        "model": "gemini-2.5-pro-preview-05-06",
        "messages": [{"role": "user", "content": "Tell me a story"}],
        "stream": True
    },
    stream=True
)

for line in response.iter_lines():
    if line:
        print(line.decode('utf-8'))

故障排除

常见问题

  • 速率限制:如果您遇到限速错误,请检查您的 RATE_LIMIT_RPM 环境变量,并根据需要进行调整。
  • 未找到型号:确保 VERTEX_MODEL_NAME 环境变量设置正确,模型存在于Vertex AI项目中。
  • 身份验证错误:验证您的服务帐户密钥是否配置正确,以及 GCP_SERVICE_ACCOUNT_KEY 设置环境变量。

调试

  • 启用调试模式:设置 DEBUG=true 在你的 .env 文件以启用调试日志记录。
  • 检查服务器日志:检查服务器日志中的错误消息和堆栈跟踪。

OpenAI兼容性

该服务器提供与OpenAI兼容的端点,使其在通过Vertex AI使用Gemini模型时成为OpenAI API的替代品。

发展

测试

# Run tests
pytest

# Test API server locally
python -m app.main

Docker开发

# Build and run
docker build -t gemini-mcp .
docker run -p 8000:8000 --env-file .env gemini-mcp

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 按照MCP标准进行更改
  4. 添加新功能的测试
  5. 提交拉取请求

许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

支持