API リファレンス上級者向け更新日
POST/v1beta/models/{model}:generateContent
Gemini generateContent
Gemini ネイティブ API は 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 レスポンスと同じです。