이 페이지는 Legacy API 문서입니다. 현재 API Gateway의 새 문서로 통합·이전될 예정이며, 신규 통합에는 API Gateway 사용을 권장합니다.
구글 콘텐츠 생성
구글의 Generative AI API는 텍스트 기반 프롬프트에 따라 모델이 생성한 응답을
단일 응답 객체로 완성한 뒤 한 번에 반환합니다. 이 방식은 전체 출력 결과가 생성
완료된 후 제공되므로, 구조화된 응답 처리나 후처리 로직이 필요한 작업에
유리합니다. 요청과 응답의 흐름이 명확하게 구분되어 있어, 단순 콘텐츠 생성,
자동화된 응답 시스템 등 안정적인 일괄 처리 환경에 적합합니다.
- SDK: 구글 SDK 링크
- 공식 문서: 구글 API 공식 문서
| API | 지원 모델 |
|---|---|
| google/models/generate-content | gemini-3-pro-previewgemini-2.5-flashgemini-2.5-pro |
콘텐츠 생성
POST
/v1/api/google/models/generate-content지정한
model과 contents를 기반으로 텍스트 응답을 생성합니다. 이 메서드는 전체 응답을 한 번에 반환하므로, 사용자는 결과가 완성될 때까지 대기한 후 전체 응답을 받을 수 있습니다.보다 자세한 사용법은 텍스트 생성 가이드를 참고하세요.
만약 스트리밍 방식으로 응답을 받고 싶다면
/models/generate-content-stream을
참고해주세요.
요청 헤더
파라미터
model
string
required
완성 생성에 사용할
Model의 이름입니다.contents[]
object
required
모델과의 현재 대화 콘텐츠입니다.
싱글턴 쿼리의 경우 이는 단일 인스턴스입니다. 채팅과 같은 멀티턴 쿼리의 경우 이는 대화 기록과 최근 요청이 포함된 반복 필드입니다.
parts[]
멀티 파트 object
Content 메시지의 일부인 미디어를 포함하는 데이터 유형입니다.
Part는 연결된 데이터 유형이 있는 데이터로 구성되며, Part.data에는 하나의
유형만 포함될 수 있습니다. inlineData 필드가 원시 바이트로 채워진 경우,
Part에는 MIME 타입을 명시해야 합니다.thought
모델에서 이 파트를 '사고' 대상으로 취급할지 여부입니다.boolean
data
Union type
data 필드는 다음 중 하나여야 합니다:text
인라인 텍스트입니다.string
inlineData (Blob)
object
인라인 미디어 바이트입니다.
functionCall (FunctionCall)
object
예측된 함수 호출 요청입니다.
functionResponse (FunctionResponse)
object
함수 실행 결과입니다.
fileData (FileData)
object
URI 기반 외부 파일 참조입니다.
executableCode (ExecutableCode)
object
실행 가능한 코드입니다.
codeExecutionResult (CodeExecutionResult)
object
실행 결과입니다.
role
메시지의 작성자 역할입니다. 일반적으로 string
user, model, 또는 tool 중 하나이며,
멀티턴 대화에서 컨텍스트를 명확히 할 때 유용합니다.config
object
모델 생성 및 출력에 대한 추가 구성 옵션입니다.
tools[] (FunctionDeclaration)
object
Model이 다음 응답을 생성하는 데 사용할 수 있는 Tools 목록입니다.Tool은 시스템이 Model의 지식과 범위를 벗어나 외부 시스템과 상호작용하여 작업 또는 작업 집합을 수행할 수 있도록 하는 코드 조각입니다. 지원되는 Tool는 Function 및 codeExecution입니다. 자세한 내용은 함수 호출 및 코드 실행 가이드를 참고하세요.toolConfig
(FunctionCallingConfig)
object
요청에 지정된 도구에 대한 구성입니다.
functionCallingConfig
함수 호출 동작에 대한 구성입니다.object
mode
함수 호출 모드를 지정합니다:string
AUTO: 모델이 함수 호출 시점을 결정ANY: 모델이 제공된 함수 중 하나를 반드시 호출NONE: 모델이 함수를 호출할 수 없음
allowedFunctionNames
호출할 수 있는 함수 이름의 선택적 목록입니다. 비어있으면 모든 함수가 허용됩니다.array of strings
사용 예는 함수 호출 가이드를 참고하세요.
safetySettings[]
(SafetySetting)
object
안전하지 않은 콘텐츠를 차단하기 위한 고유한
SafetySetting 인스턴스 목록입니다. 각 SafetyCategory 유형에 대해 두 개 이상의 설정이 있어서는 안 됩니다.category (HarmCategory)
구성할 유해성 카테고리입니다. 지원되는 카테고리:string
HARM_CATEGORY_HATE_SPEECH(혐오 발언)HARM_CATEGORY_SEXUALLY_EXPLICIT(성적으로 노골적인 콘텐츠)HARM_CATEGORY_DANGEROUS_CONTENT(위험한 콘텐츠)HARM_CATEGORY_HARASSMENT(괴롭힘)HARM_CATEGORY_CIVIC_INTEGRITY(시민 무결성)
threshold (HarmBlockThreshold)
콘텐츠를 차단하는 임계값입니다. 옵션:string
BLOCK_NONE: 차단 안 함BLOCK_LOW_AND_ABOVE: 낮은 수준 이상의 유해 콘텐츠 차단BLOCK_MEDIUM_AND_ABOVE: 중간 수준 이상의 유해 콘텐츠 차단BLOCK_ONLY_HIGH: 높은 수준의 유해 콘텐츠만 차단
systemInstruction
string
개발자가 설정하는 시스템 안내 텍스트입니다.
temperature
출력의 무작위성을 제어합니다. 값이 낮을수록 더 결정론적인 출력을 생성합니다. 범위: 0.0-2.0number
topP
누적 확률 질량이 topP인 토큰만 고려하는 nucleus sampling 매개변수입니다. 범위: 0.0-1.0number
topK
샘플링을 위해 상위 K개의 토큰만 고려합니다. topP 또는 topK 중 하나만 사용하세요.integer
maxOutputTokens
응답에서 생성할 최대 토큰 수입니다.integer
stopSequences
생성을 중지할 시퀀스입니다. 이 시퀀스가 발견되면 생성이 중단됩니다.array of strings
responseMimeType
응답 형식을 지정합니다. 예: string
application/json, text/plainresponseSchema
JSON 모드 사용 시 JSON 출력의 구조를 정의합니다.object
candidateCount
생성할 응답 후보의 수입니다.integer
presencePenalty
응답에 이미 등장한 토큰에 대한 페널티입니다. 범위: -2.0-2.0number
frequencyPenalty
응답에서 토큰 빈도에 따른 페널티입니다. 범위: -2.0-2.0number
seed
결정론적 생성을 위한 시드값입니다. 동일한 시드와 구성으로 생성 시 동일한 결과를 보장합니다.integer
cachedContent
string
예측을 제공하기 위한 컨텍스트로 사용하기 위해 캐시된 콘텐츠의 이름입니다. 형식:
cachedContents/{cachedContent}마지막 수정 날짜: Nov 28, 2025
요청 예시
curl https://factchat-cloud.mindlogic.ai/v1/api/google/models/generate-content \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $YOUR_API_KEY" \
-d '{
"model": "gemini-2.5-flash",
"contents": [{
"role": "user",
"parts": [{"text": "Say this is a test!"}]
}]
}'응답 예시
{
"candidates": [
{
"content": {
"parts": [
{
"videoMetadata": null,
"thought": null,
"codeExecutionResult": null,
"executableCode": null,
"fileData": null,
"functionCall": null,
"functionResponse": null,
"inlineData": null,
"text": "Okay, I understand. This is a test! Ask away! I'm ready to be tested. What would you like to test me on?
"
}
],
"role": "model"
},
"citationMetadata": null,
"finishMessage": null,
"tokenCount": null,
"finishReason": "STOP",
"avgLogprobs": -0.03563330471515656,
"groundingMetadata": null,
"index": null,
"logprobsResult": null,
"safetyRatings": null
}
],
"createTime": null,
"responseId": null,
"modelVersion": "gemini-2.0-flash",
"promptFeedback": null,
"usageMetadata": {
"cacheTokensDetails": null,
"cachedContentTokenCount": null,
"candidatesTokenCount": 40,
"candidatesTokensDetails": [
{
"modality": "TEXT",
"tokenCount": 40
}
],
"promptTokenCount": 4,
"promptTokensDetails": [
{
"modality": "TEXT",
"tokenCount": 4
}
],
"thoughtsTokenCount": null,
"toolUsePromptTokenCount": null,
"toolUsePromptTokensDetails": null,
"totalTokenCount": 44,
"trafficType": null
},
"automaticFunctionCallingHistory": [],
"parsed": null
}