API 参考进阶用户更新于
POST/v1beta/models/{model}:generateContent
Gemini 原生生成接口
Gemini 原生接口提供 JSON 和 SSE 两种响应。模型 ID 放在请求路径中,文本输入通过 contents[].parts[] 传入。
接入准备
按快速开始获取 API Key,并选择支持直接 HTTP 调用的接入点。示例通过 x-goog-api-key 发送 ICODEEASY_API_KEY,并将 YOUR_MODEL_ID 替换为接入点支持的 Gemini 模型 ID。
请求示例
generateContent 返回完整的 JSON 响应。
bash
curl -sS https://api.icodeeasy.cc/v1beta/models/YOUR_MODEL_ID:generateContent \
-H "x-goog-api-key: $ICODEEASY_API_KEY" \
-H 'Content-Type: application/json' \
--data '{
"contents": [
{
"role": "user",
"parts": [
{
"text": "Say hello."
}
]
}
]
}'
读取响应
从 candidates[].content.parts[] 读取文本。若返回 usageMetadata,可读取 promptTokenCount、candidatesTokenCount 和 cachedContentTokenCount。
json
{
"candidates": [
{
"content": {
"role": "model",
"parts": [
{
"text": "Hello!"
}
]
},
"finishReason": "STOP"
}
]
}
流式请求示例
bash
curl -NsS 'https://api.icodeeasy.cc/v1beta/models/YOUR_MODEL_ID:streamGenerateContent?alt=sse' \
-H "x-goog-api-key: $ICODEEASY_API_KEY" \
-H 'Content-Type: application/json' \
--data '{
"contents": [
{
"role": "user",
"parts": [
{
"text": "Say hello."
}
]
}
]
}'
流式响应示例
Gemini SSE 的每条 data: 是 JSON 响应片段。按候选项拼接 candidates[].content.parts[] 的文本,并检查 finishReason。收到错误响应或未正常结束就断开时,保留已收到的片段并标记为不完整。
text
data: {"candidates":[{"index":0,"content":{"role":"model","parts":[{"text":"Hello!"}]}}]}
data: {"candidates":[{"index":0,"finishReason":"STOP"}],"usageMetadata":{"promptTokenCount":10,"candidatesTokenCount":4,"totalTokenCount":14}}
从包含 usageMetadata 的响应帧读取用量,字段与 JSON 响应相同。