Google Gemini 3.1 Pro 기반의 OpenAI 호환 채팅 완성 API입니다. 스트리밍과 롱 컨텍스트를 지원합니다. model을 gemini-3.1-pro로 두면 기본은 낮은 추론 등급이고 reasoning_effort=high로 높은 추론 등급을 고릅니다. 이 모델은 사고 요약도 함께 돌려주는데, 비스트리밍에서는 choices[].message.reasoning_content, 스트리밍에서는 choices[].delta.reasoning_content에 담깁니다. 답변 자체는 언제나 content에 있고 사고와 섞이지 않으므로 content만 읽는 클라이언트는 아무것도 고칠 필요가 없습니다. 과금은 사고 토큰이 출력 단가로 계산되어 usage.completion_tokens에 포함되고, 그중 사고에 해당하는 양은 usage.completion_tokens_details.reasoning_tokens에서 확인할 수 있습니다. 콘텐츠 차단에 대해서는, Google이 모델을 돌리기 전에 프롬프트를 먼저 심사하며 차단되면 출력도 없고 과금도 되지 않습니다. 게이트웨이가 프롬프트를 자동으로 재구성해 한 번 재시도하고, 그래도 거절되면 그때만 오류를 돌려줍니다. 프롬프트가 계속 차단된다면 시스템 메시지를 첫 사용자 메시지에 합쳐 보세요.
📥 컨텍스트 창 (최대 입력):약 1,000,000 토큰(백만 단위 롱 컨텍스트).
플레이그라운드에서 사용해 보기 →인증
Authorization: Bearer YOUR_API_KEY Content-Type: application/json
콘솔에서 API 키를 만들면 시작할 수 있습니다.
요청 본문
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| model | string | 예 | 모델 ID. 여기서는 gemini-3.1-pro입니다. |
| messages | array | 예 | 메시지 배열. 각 항목은 role(system/user/assistant)과 content를 가집니다. content는 문자열이거나, 이미지 이해(멀티모달 / 비전)를 위한 {type:text}와 {type:image_url} 조각들의 배열일 수 있습니다. |
| stream | boolean | 아니오 | SSE로 스트리밍할지 여부. 기본값 false. 스트리밍 중에는 사고가 choices[].delta.reasoning_content로 조각 단위로 내려오고 답변은 delta.content에 남으며, 스트림은 data: [DONE]으로 끝납니다. 참고로 스트리밍 호출에서는 업스트림이 사고 토큰 수를 따로 보고하지 않아 reasoning_tokens가 0으로 표시되지만, 사고는 여전히 completion_tokens에 포함되므로 비용은 비스트리밍과 같습니다. |
| temperature | number | 아니오 | 샘플링 온도, 0–2. |
| max_tokens | integer | 아니오 | 생성할 최대 토큰 수. |
| web_search | boolean | 아니오 | true로 두면 웹 검색이 켜집니다. 게이트웨이가 모델이 답하기 전에 실시간 검색 결과로 프롬프트를 보강하고 출처를 함께 제시합니다. tools 항목 {"type":"web_search"}로도 켤 수 있습니다. |
| reasoning_effort | string | 아니오 | 추론 등급: low(기본값 — 더 빠르고 저렴) 또는 high(더 깊은 추론, Preview 등급으로 과금). 접미사 모델 이름 gemini-3.1-pro-low / gemini-3.1-pro-high도 동작하며, 예전 id인 gemini-3.1-pro-preview는 기존 가격 그대로 high 등급과 같습니다. |
요청 예시
curl https://nezhagate.com/v1/chat/completions -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"model": "gemini-3.1-pro", "messages": [{"role": "user", "content": "Hello"}], "stream": false}'응답
{
"id": "chatcmpl_xxx",
"object": "chat.completion",
"model": "gemini-3.1-pro",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"reasoning_content": "**My Thought Process** ... (the model summarises its own reasoning)",
"content": "70"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 48,
"completion_tokens": 2187,
"total_tokens": 2235,
"completion_tokens_details": {"reasoning_tokens": 1371}
}
}이미지 입력 (Vision)
메시지 content 배열에 이미지를 넣으면 모델이 이를 분석합니다(시각적 질의응답, 텍스트 판독 / OCR 등). image_url에는 공개 이미지 링크 또는 인라인 base64 data URL(data:image/png;base64,...)을 넣을 수 있습니다. 멀티모달 모델(gpt-5.5, gemini 계열 등)에서 사용할 수 있습니다.
curl https://nezhagate.com/v1/chat/completions -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"model": "gemini-3.1-pro", "messages": [{"role": "user", "content": [{"type": "text", "text": "이 사진에는 무엇이 있나요?"}, {"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}]}]}'오류 코드
| Code | 설명 |
|---|---|
| 401 | API 키가 없거나 유효하지 않음 |
| 402 | 잔액 부족 또는 키 한도 초과 |
| 400 | 지원하지 않는 모델 또는 파라미터 |
| 429 | 업스트림 요청 한도 초과 |
| 502 | 모든 업스트림 경로가 실패 |