Skip to main content
POST
原生 Gemini 格式

简介

Gemini 原生 API 采用 Google Gemini 的请求与响应格式,适用于 Google 官方客户端(如 google-generativeai SDK)或需要直接使用 Gemini 数据结构的场景。该接口遵循 Gemini API 规范,支持思考模式(Thinking)、多模态输入、工具调用、Google 搜索(Grounding)、Context Caching、图像生成等完整能力。
若使用 OpenAI 兼容客户端(如 OpenAI SDK)调用 Gemini,请使用 Gemini OpenAI 格式(对话)。其它模型见 原生 OpenAI 格式(ChatCompletions)

与 OpenAI 格式的区别

API 端点

路径中的 {model} 需替换为实际模型 ID,如 gemini-2.5-progemini-3-pro-preview

认证

支持以下任一方式:
string
Bearer Token:Bearer sk-xxxxxxxxxx(推荐,与 GravitexAI 其他接口一致)
string
Google 风格 API Key:x-goog-api-key: sk-xxxxxxxxxx
也可在 URL 中传参:?key=sk-xxxxxxxxxx

请求参数

generateContent / streamGenerateContent

array
必填
对话内容列表。每项包含 roleusermodel)和 parts 数组。parts 元素可为:{"text": "..."}{"inlineData": {"mimeType": "...", "data": "base64..."}}{"fileData": {"mimeType": "...", "fileUri": "gs://..."}}
object
生成配置。
  • temperature:0–2,随机性
  • topP:核采样
  • topK:Top-K 采样
  • maxOutputTokens:最大输出 token 数
  • stopSequences:停止序列
  • responseMimeType:如 text/plain
  • responseModalities:如 ["TEXT"]["IMAGE"]
  • thinkingConfig:思考模式(见下文)
  • imageConfig:图像生成配置(见下文)
object
系统指令,格式为 {"parts": [{"text": "..."}]}
array
安全等级,如 [{"category": "HARM_CATEGORY_HARASSMENT", "threshold": "OFF"}]
array
工具声明(Function Calling),见高级功能。
object
工具配置,如 functionCallingConfig.modeAUTO / ANY / NONE
string
Context Caching 返回的缓存 ID,用于复用已缓存上下文。

响应格式

非流式 generateContent 返回 JSON:
流式接口返回 SSE,每行以 data: 开头,内容为 JSON 片段(含 candidates[].content.parts 等)。

基础示例

google-generativeai 默认请求 Google 官方端点,接入 GravitexAI 时需通过 client_options 或环境变量将 api_endpoint 设为 https://api.gravitex.ai。具体以所用 SDK 文档为准。

高级功能

思考模式(Thinking)

支持三种方式:
  1. generationConfig.thinkingConfig(Gemini 2.5 Pro):使用 thinkingBudget(token 数)
  2. thinkingConfig.thinkingLevel(Gemini 3 Pro):使用 LOW / HIGH
  3. 模型后缀-thinking-thinking-8192-nothinking-thinking-low-thinking-high

多模态输入

contents[].parts 中混合文本与媒体:
  • 图片inlineData + base64 data,或 fileData + fileUri(如 gs://...
  • 音频inlineDatamimeTypeaudio/mp3

工具调用(Function Calling)

模型可能返回 functionCall part,需在下一轮 contents 中附带 functionResponse 再请求。

Google 搜索(Grounding)

启用后,模型可基于实时网络检索增强回答(如天气、新闻等)。在 tools 中加入 googleSearch 即可:
若同时使用 Function Calling 与 Google 搜索,将 googleSearch: {}functionDeclarations 放在同一 tools 数组的不同元素中即可。回答中可能包含检索来源信息(如 groundingMetadata)。

流式输出

使用端点:POST /v1beta/models/{model}:streamGenerateContent?alt=sse,请求体与 generateContent 相同。响应为 SSE 流,每条 data: 为一块 JSON。

Context Caching(上下文缓存)

首次请求不带 cachedContent,若服务端返回可缓存标识,后续请求在 body 中带上:
可降低长上下文重复计费与延迟。

图像生成(Gemini 2.5 Flash 等)

当模型支持图像输出时,在 generationConfig 中指定:
响应中 candidates[].content.parts 会包含 inlineData(如 base64 图片)。

Embedding API

单条:embedContent

端点POST https://api.gravitex.ai/v1beta/models/{model}:embedContent 请求体示例
或使用 model 在 path 中:/v1beta/models/text-embedding-004:embedContent,body 仅含 content

批量:batchEmbedContents

端点POST https://api.gravitex.ai/v1beta/models/{model}:batchEmbedContents 请求体示例
响应为数组,每项对应一条嵌入向量。

错误处理

接口使用 HTTP 状态码与 JSON body 表示错误,例如:
常见情况: 建议在客户端统一解析 error.message 并做重试或提示。

与 OpenAI 格式对比

选择建议:已使用 Google Gemini 生态或需要 Gemini 独有字段(如 thinkingConfig、原生多模态 part)时用原生接口;希望与 OpenAI 生态统一时用 /v1/chat/completions