Skip to main content
Google Gemini는 입력 프롬프트를 통해 몇 초 안에 유창하고 자연스러운 응답을 생성할 수 있는 매우 강력한 AI 대화 시스템입니다. 본 문서는 Gemini Generate Content API의 사용 방법을 주로 설명하며, 이는 Google 공식 네이티브 API 형식으로 generateContent 및 streamGenerateContent 두 엔드포인트를 지원합니다.

Chat Completions API와의 차이점

Gemini Generate Content API는 OpenAI 호환 형식(messages 필드)이 아닌 Google 공식 네이티브 요청 형식(contents 필드)을 사용합니다. 이미 Google Gemini SDK를 사용하고 있거나 공식 API 형식에 익숙하다면, 요청 형식을 수정하지 않고 직접 이 API를 사용할 수 있습니다.

현재 지원 범위

인터페이스는 텍스트, 이미지, 비디오 및 오디오 입력(inlineData 또는 fileData), 사고 설정 및 사용자 지정 함수 선언을 받습니다. 오디오 출력, 내장 도구 및 명시적 컨텍스트 캐시 등의 네이티브 필드는 아직 통일된 가용성이 보장되지 않으므로, 구체적인 모델의 실제 반환값을 기준으로 하십시오. fileData.fileUri를 사용하여 오디오 등의 파일을 제출할 때는 파일에 HTTPS를 통해 직접 접근할 수 있고 로그인 상태에 의존하지 않도록 하며, 서명 링크의 유효 기간이 전체 요청 처리 시간을 포괄하도록 하십시오. 비스트리밍 오디오 분석은 모델이 처리를 완료한 후에야 결과를 반환하므로 90초를 초과할 수 있습니다. 클라이언트는 파일 크기와 비즈니스 시나리오에 따라 충분히 긴 총 타임아웃을 설정하여 서버가 아직 처리 중일 때 연결이 끊어지는 것을 방지해야 합니다.

신청 절차

Gemini Generate Content API를 사용하기 전에 먼저 Gemini Generate Content API 페이지에 접속하여 “획득” 버튼을 클릭해 요청에 필요한 자격 증명을 받으십시오. 아직 로그인하거나 등록하지 않은 경우 자동으로 로그인 페이지로 이동합니다. 최초 신청 시 무료 할당량이 제공됩니다.

기본 사용법

Non-Streaming(비스트리밍)

/v1beta/models/{model}:generateContent로 POST 요청을 전송합니다:
팁: gemini-3.x 시리즈 flash는 사고 모델로, 먼저 reasoning tokens를 소모합니다. generationConfig.maxOutputTokens를 512 이상으로 설정하십시오. 그렇지 않으면 빈 콘텐츠만 반환될 수 있습니다.
반환 결과 예시:
usageMetadata의 token 필드는 네이티브 Gemini 의미론에 따라 과금됩니다:
  • promptTokenCount에는 cachedContentTokenCount가 포함되며, 캐시 적중 부분은 캐시 읽기 가격으로 계산되고 일반 입력으로 중복 계산되지 않습니다.
  • promptTokensDetails와 cacheTokensDetails는 usage.prompt_tokens_details 아래의 text_tokens, image_tokens, video_tokens, audio_tokens 및 해당 cached_* 세부 정보로 정규화됩니다. 이러한 값은 각각 prompt_tokens와 cached_tokens에 포함되며, 서로 다른 모달리티는 각자의 가격으로만 재계산되고 중복 과금되지 않습니다.
  • candidatesTokenCount와 thoughtsTokenCount는 모두 출력 token 가격으로 계산됩니다.
  • toolUsePromptTokenCount는 독립적인 도구 입력 token으로, 입력 token 가격으로 계산됩니다.
Ace Data Cloud는 정규화된 usage 객체를 추가로 반환하며, 모델 프로토콜 전반에서 이번 호출 비용은 usage.cost로 통일하여 읽습니다. cost는 선택적인 비용 미리보기입니다. 가격 미리보기를 일시적으로 사용할 수 없는 경우에도 모델 응답은 정상적으로 반환되지만, 이 필드가 포함되지 않을 수 있습니다. 최종 청구서는 사용량 기록을 기준으로 합니다.

Streaming(스트리밍)

/v1beta/models/{model}:streamGenerateContent?alt=sse로 POST 요청을 전송합니다:
스트리밍 반환은 SSE(Server-Sent Events) 형식으로 콘텐츠를 점진적으로 반환합니다. 중간 이벤트는 일반적으로 증분 콘텐츠만 포함합니다. 권위 있는 사용량을 포함하는 최종 상태 이벤트에는 usageMetadata 및 정규화된 usage가 포함되며, 비용은 계속해서 usage.cost에 위치합니다:
연결이 닫히면 스트림이 종료되었음을 의미합니다. 네이티브 Gemini 스트림은 data: [DONE]을 전송하지 않습니다. 최종 상태 가격 미리보기를 일시적으로 사용할 수 없는 경우에도 usage는 token 사용량을 반환하지만 cost는 생략됩니다.

지원되는 모델

고급 기능

시스템 지침

생성 구성

JSON 모드

사고 모드(Thinking)

사고 기능을 지원하는 모델(예: gemini-2.5-flash, gemini-2.5-pro)은 사고 모드를 활성화할 수 있습니다:

함수 호출

다중 턴 대화

이미지 이해

안전 설정

safetySettings를 통해 콘텐츠 필터링을 제어할 수 있습니다:

오류 처리