API 레퍼런스고급 사용자업데이트
POST/v1beta/models/{model}:generateContent
Gemini generateContent
Gemini 네이티브 API는 JSON과 SSE 응답을 지원합니다. 모델 ID는 경로에, 입력 텍스트는 contents[].parts[]에 넣으세요.
시작하기 전에
빠른 시작에 따라 API 키를 발급받고 직접 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 응답과 같습니다.