Skip to content

Gemini 原生格式

通过 Google Gemini 原生 API 协议调用 Gemini 模型,完全兼容 Gemini 原生请求体、路径格式和响应结构。

快速开始

第 1 步: 获取您的 API Key(在 控制台 创建)。

第 2 步: 发送请求:

bash
curl -X POST "https://open.dieyuyun.com/v1beta/models/gemini-2.5-pro:generateContent" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxx" \
  -d '{
    "contents": [
      {
        "role": "user",
        "parts": [{"text": "你好,介绍一下自己"}]
      }
    ]
  }'
python
import requests

url = "https://open.dieyuyun.com/v1beta/models/gemini-2.5-pro:generateContent"
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer sk-xxx"
}
payload = {
    "contents": [
        {
            "role": "user",
            "parts": [{"text": "你好,介绍一下自己"}]
        }
    ]
}

response = requests.post(url, json=payload, headers=headers)
result = response.json()
print(result["candidates"][0]["content"]["parts"][0]["text"])
javascript
const response = await fetch('https://open.dieyuyun.com/v1beta/models/gemini-2.5-pro:generateContent', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    Authorization: 'Bearer sk-xxx',
  },
  body: JSON.stringify({
    contents: [
      {
        role: 'user',
        parts: [{ text: '你好,介绍一下自己' }],
      },
    ],
  }),
})

const result = await response.json()
console.log(result.candidates[0].content.parts[0].text)

第 3 步: 从响应的 candidates[0].content.parts[0].text 获取回复内容。

请求端点

项目
方法POST
路径/v1beta/models/{model}:generateContent
/v1beta/models/{model}:streamGenerateContent(流式)
Base URLhttps://open.dieyuyun.com
兼容协议Google Gemini API

路径参数

参数类型必填说明
modelstring模型标识符,如 gemini-2.5-pro
actionstring操作类型:generateContentstreamGenerateContent

认证

使用 Bearer Token 认证(与 OpenAI 兼容端点共用同一个 API Key):

http
Authorization: Bearer sk-xxx

TIP

平台使用统一的 API Key 进行管理,无需单独配置 Google API Key。您的 API Key 在服务端安全转发至上游,不会暴露给客户端。

支持模型

模型上下文长度说明
gemini-2.5-pro1MGemini 旗舰推理模型
gemini-2.5-flash1MGemini 快速模型
gemini-2.0-flash1MGemini 2.0 快速模型

TIP

完整模型列表请在 控制台 查看。

标准请求字段

字段类型必填默认值说明
contentsarray对话内容列表,每条包含 roleparts
systemInstructionobject系统指令,设定模型行为
generationConfigobject生成参数配置
safetySettingsarray安全设置
toolsarray工具定义列表
toolConfigobject工具调用配置

generationConfig 参数

参数类型默认值说明
temperaturenumber1.0控制输出随机性,范围 0~2
topPnumber0.95核采样参数
topKinteger40Top-K 采样
maxOutputTokensinteger最大输出 Token 数
stopSequencesarray停止生成的字符串序列
responseMimeTypestring响应 MIME 类型,如 application/json

contents 结构

json
{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "描述这张图片" },
        {
          "inline_data": {
            "mime_type": "image/jpeg",
            "data": "/9j/4AAQ..."
          }
        }
      ]
    }
  ]
}

请求示例

带系统指令和生成配置

bash
curl -X POST "https://open.dieyuyun.com/v1beta/models/gemini-2.5-pro:generateContent" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxx" \
  -d '{
    "systemInstruction": {
      "parts": [{"text": "你是一个专业的翻译助手,请将内容翻译为英文。"}]
    },
    "contents": [
      {
        "role": "user",
        "parts": [{"text": "人工智能正在改变我们的生活方式。"}]
      }
    ],
    "generationConfig": {
      "temperature": 0.7,
      "maxOutputTokens": 1024
    }
  }'
python
import requests

url = "https://open.dieyuyun.com/v1beta/models/gemini-2.5-pro:generateContent"
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer sk-xxx"
}
payload = {
    "systemInstruction": {
        "parts": [{"text": "你是一个专业的翻译助手,请将内容翻译为英文。"}]
    },
    "contents": [
        {
            "role": "user",
            "parts": [{"text": "人工智能正在改变我们的生活方式。"}]
        }
    ],
    "generationConfig": {
        "temperature": 0.7,
        "maxOutputTokens": 1024
    }
}

response = requests.post(url, json=payload, headers=headers)
result = response.json()
print(result["candidates"][0]["content"]["parts"][0]["text"])
javascript
const response = await fetch('https://open.dieyuyun.com/v1beta/models/gemini-2.5-pro:generateContent', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    Authorization: 'Bearer sk-xxx',
  },
  body: JSON.stringify({
    systemInstruction: {
      parts: [{ text: '你是一个专业的翻译助手,请将内容翻译为英文。' }],
    },
    contents: [
      {
        role: 'user',
        parts: [{ text: '人工智能正在改变我们的生活方式。' }],
      },
    ],
    generationConfig: {
      temperature: 0.7,
      maxOutputTokens: 1024,
    },
  }),
})

const result = await response.json()
console.log(result.candidates[0].content.parts[0].text)

流式输出

使用 streamGenerateContent 端点获取流式响应:

bash
curl -X POST "https://open.dieyuyun.com/v1beta/models/gemini-2.5-pro:streamGenerateContent" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxx" \
  -d '{
    "contents": [
      {
        "role": "user",
        "parts": [{"text": "写一首关于大海的诗"}]
      }
    ]
  }'

多模态输入(图片)

json
{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "这张图片里有什么?" },
        {
          "inline_data": {
            "mime_type": "image/png",
            "data": "iVBORw0KGgo..."
          }
        }
      ]
    }
  ]
}

函数调用

json
{
  "contents": [
    {
      "role": "user",
      "parts": [{ "text": "北京今天天气怎么样?" }]
    }
  ],
  "tools": [
    {
      "functionDeclarations": [
        {
          "name": "get_weather",
          "description": "获取指定城市的天气信息",
          "parameters": {
            "type": "object",
            "properties": {
              "city": {
                "type": "string",
                "description": "城市名称"
              }
            },
            "required": ["city"]
          }
        }
      ]
    }
  ]
}

响应格式

成功响应

json
{
  "candidates": [
    {
      "content": {
        "parts": [
          {
            "text": "你好!我是 Gemini,由 Google DeepMind 开发的多模态 AI 模型。我可以处理文本、图片、代码等多种内容格式。"
          }
        ],
        "role": "model"
      },
      "finishReason": "STOP",
      "index": 0
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 6,
    "candidatesTokenCount": 42,
    "totalTokenCount": 48
  },
  "modelVersion": "gemini-2.5-pro"
}

响应字段说明

字段说明
candidates[].content.parts[].text回复文本内容
candidates[].content.role角色,模型回复为 model
candidates[].finishReason结束原因:STOPMAX_TOKENSSAFETY
candidates[].safetyRatings安全评分
usageMetadata.promptTokenCount输入 Token 数
usageMetadata.candidatesTokenCount输出 Token 数
usageMetadata.totalTokenCount总 Token 数
modelVersion实际使用的模型版本

错误响应

json
{
  "error": {
    "code": 400,
    "message": "Request contains an invalid argument.",
    "status": "INVALID_ARGUMENT"
  }
}

详见 错误码

兼容性说明

特性本平台Google Gemini 原生 API
路径格式/v1beta/models/{model}:action相同
请求体格式Gemini 原生 JSON原生协议
generateContent支持原生支持
streamGenerateContent支持原生支持
多模态输入支持 base64支持 base64 / file_data
函数调用支持原生支持
系统指令支持 systemInstruction原生支持
认证方式Bearer Token(平台 API Key)Google API Key
safetySettings支持透传原生支持

TIP

平台使用 Gemini 原生路径和原生请求体,成功响应直接返回 Gemini 原始格式。唯一的区别是认证方式——使用平台统一的 API Key 替代 Google API Key。

最佳实践

  • 选择正确的端点:非流式使用 generateContent,流式使用 streamGenerateContent,路径结构一致。
  • 利用超长上下文:Gemini 支持 1M Token 上下文,适合处理长文档、大型代码库等场景。
  • 使用 systemInstruction:通过系统指令设定模型行为,注意 Gemini 的系统指令格式是 {"parts": [{"text": "..."}]}
  • 多模态输入:支持 base64 编码的图片输入,适合图片分析、OCR 等场景。
  • JSON 模式输出:通过 generationConfig.responseMimeType = "application/json" 强制返回 JSON。

速率限制

详见 速率限制

相关文档