Gemini 原生格式
- 使用 Google 原生 API 格式调用 Gemini 模型
-
同步处理模式,实时返回对话内容
-
最简化参数,快速上手
curl --request POST \ --url https://aiboxapi.com/v1beta/models/gemini-2.5-pro:generateContent \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "contents": [ { "role": "user", "parts": [ { "text": "你好,介绍一下自己" } ] } ] }'import requests url = "https://aiboxapi.com/v1beta/models/gemini-2.5-pro:generateContent" payload = { "contents": [ { "role": "user", "parts": [ { "text": "你好,介绍一下自己" } ] } ] } headers = { "Authorization": "Bearer <token>", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json())const url = "https://aiboxapi.com/v1beta/models/gemini-2.5-pro:generateContent"; const payload = { contents: [ { role: "user", parts: [ { text: "你好,介绍一下自己" } ] } ] }; const headers = { "Authorization": "Bearer <token>", "Content-Type": "application/json" }; fetch(url, { method: "POST", headers: headers, body: JSON.stringify(payload) }) .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('Error:', error));package main import ( "bytes" "encoding/json" "fmt" "io/ioutil" "net/http" ) func main() { url := "https://aiboxapi.com/v1beta/models/gemini-2.5-pro:generateContent" payload := map[string]interface{}{ "contents": []map[string]interface{}{ { "role": "user", "parts": []map[string]interface{}{ { "text": "你好,介绍一下自己", }, }, }, }, } jsonData, _ := json.Marshal(payload) req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData)) req.Header.Set("Authorization", "Bearer <token>") req.Header.Set("Content-Type", "application/json") client := &http.Client{} resp, err := client.Do(req) if err != nil { panic(err) } defer resp.Body.Close() body, _ := ioutil.ReadAll(resp.Body) fmt.Println(string(body)) }import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.net.URI; public class Main { public static void main(String[] args) throws Exception { String url = "https://aiboxapi.com/v1beta/models/gemini-2.5-pro:generateContent"; String payload = """ { "contents": [ { "role": "user", "parts": [ { "text": "你好,介绍一下自己" } ] } ] } """; HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(url)) .header("Authorization", "Bearer <token>") .header("Content-Type", "application/json") .POST(HttpRequest.BodyPublishers.ofString(payload)) .build(); HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body()); } }<?php $url = "https://aiboxapi.com/v1beta/models/gemini-2.5-pro:generateContent"; $payload = [ "contents" => [ [ "role" => "user", "parts" => [ [ "text" => "你好,介绍一下自己" ] ] ] ] ]; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload)); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "Authorization: Bearer <token>", "Content-Type: application/json" ]); $response = curl_exec($ch); curl_close($ch); echo $response; ?>require 'net/http' require 'json' require 'uri' url = URI("https://aiboxapi.com/v1beta/models/gemini-2.5-pro:generateContent") payload = { contents: [ { role: "user", parts: [ { text: "你好,介绍一下自己" } ] } ] } http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = "Bearer <token>" request["Content-Type"] = "application/json" request.body = payload.to_json response = http.request(request) puts response.body{ "code": 200, "data": { "candidates": [ { "content": { "role": "model", "parts": [ { "text": "你好!很高兴能向你介绍我自己。\n\n我是一个大型语言模型,由 Google 训练和开发..." } ] }, "finishReason": "STOP", "index": 0, "safetyRatings": [ { "category": "HARM_CATEGORY_HATE_SPEECH", "probability": "NEGLIGIBLE" } ] } ], "promptFeedback": { "safetyRatings": [ { "category": "HARM_CATEGORY_HATE_SPEECH", "probability": "NEGLIGIBLE" } ] ] }, "usageMetadata": { "promptTokenCount": 4, "candidatesTokenCount": 611, "totalTokenCount": 2422, "thoughtsTokenCount": 1807, "promptTokensDetails": [ { "modality": "TEXT", "tokenCount": 4 } ] } }{ "error": { "code": 400, "message": "无效的请求参数", "status": "INVALID_ARGUMENT" } }{ "error": { "code": 401, "message": "认证失败,请检查 API Key", "status": "UNAUTHENTICATED" } }{ "error": { "code": 402, "message": "余额不足,请充值", "status": "PAYMENT_REQUIRED" } }{ "error": { "code": 403, "message": "没有访问权限", "status": "PERMISSION_DENIED" } }{ "error": { "code": 404, "message": "找不到指定的模型", "status": "NOT_FOUND" } }{ "error": { "code": 429, "message": "请求过于频繁,请稍后重试", "status": "RESOURCE_EXHAUSTED" } }{ "error": { "code": 500, "message": "服务器内部错误", "status": "INTERNAL" } }{ "error": { "code": 502, "message": "网关错误,服务暂时不可用", "status": "BAD_GATEWAY" } }{ "error": { "code": 503, "message": "服务暂时不可用", "status": "UNAVAILABLE" } }
Authorizations
string 必填
所有接口均需要使用Bearer Token进行认证
获取 API Key:
访问 API Key 管理页面 获取您的 API Key
使用时在请求头中添加:
Authorization: Bearer YOUR_API_KEY
Path Parameters
model string 必填
模型名称
示例中使用 gemini-2.5-pro,您可以将其替换为其他支持的 Gemini 模型:
gemini-3.5-flash- Gemini 3.5 快速版gemini-3.1-pro-preview- Gemini 3.1 Pro 预览版gemini-3-pro-preview- Gemini 3 Pro 预览版gemini-2.5-pro- Gemini 2.5 专业版
method
" required>
生成方法(快速开始推荐使用 generateContent):
generateContent: 等待完整响应后一次性返回streamGenerateContent: 流式返回,逐块实时返回内容
可选值:generateContent, streamGenerateContent
Body
contents array 必填
对话内容列表
最少需要1条消息
contents 对象结构
角色类型:
* `user`: 用户消息
* `model`: 模型响应(对话历史中使用)
parts array 必填
消息内容部分
文本内容
inlineData object
内联数据(用于多模态输入)
MIME 类型,如 `image/jpeg`, `image/png`
data string
Base64 编码的数据
示例:
[
{
"role": "user",
"parts": [{ "text": "你好,介绍一下自己" }]
}
]
generationConfig object
生成配置(可选)
generationConfig 属性
控制输出随机性,范围 0.0-2.0
* 较低的值使输出更确定
* 较高的值使输出更随机
默认值:1.0
maxOutputTokens integer
生成的最大 token 数量
不同模型有不同的最大值限制
topP number
核采样参数,范围 0.0-1.0
控制采样时考虑的概率质量
topK integer
Top-K 采样参数
每步只从概率最高的 K 个 token 中采样
stopSequences array
停止序列列表
遇到这些序列时停止生成
safetySettings array
安全设置(可选)
safetySettings 对象结构
安全类别:
* `HARM_CATEGORY_HATE_SPEECH`: 仇恨言论
* `HARM_CATEGORY_DANGEROUS_CONTENT`: 危险内容
* `HARM_CATEGORY_HARASSMENT`: 骚扰
* `HARM_CATEGORY_SEXUALLY_EXPLICIT`: 色情内容
threshold string
阈值级别:
* `BLOCK_NONE`: 不阻止
* `BLOCK_ONLY_HIGH`: 仅阻止高风险
* `BLOCK_MEDIUM_AND_ABOVE`: 阻止中等及以上风险
* `BLOCK_LOW_AND_ABOVE`: 阻止低等及以上风险
Response
candidates array
候选响应列表
candidates 对象结构
生成的内容
角色,通常为 `model`
parts array
内容部分列表
生成的文本内容
finishReason string
完成原因:
* `STOP`: 正常结束
* `MAX_TOKENS`: 达到最大 token 限制
* `SAFETY`: 因安全原因停止
* `RECITATION`: 因重复内容停止
* `OTHER`: 其他原因
index integer
候选响应的索引
safetyRatings array
安全评级列表
safetyRatings 对象
安全类别
probability string
概率级别:`NEGLIGIBLE`, `LOW`, `MEDIUM`, `HIGH`
promptFeedback object
提示词反馈信息
promptFeedback 属性
提示词的安全评级
blockReason string
阻止原因(如果提示词被阻止)
usageMetadata object
使用量统计
usageMetadata 属性
提示词消耗的 token 数
candidatesTokenCount integer
候选响应消耗的 token 数
totalTokenCount integer
总消耗 token 数
thoughtsTokenCount integer
思考过程消耗的 token 数(如适用)
promptTokensDetails array
提示词 token 详情
模态类型:`TEXT`, `IMAGE`, 等
tokenCount integer
该模态的 token 数量