# GPT-6 Luna — /chat/completions

GPT-6 Luna 기반의 OpenAI 호환 채팅 완성 API입니다. GPT-6 제품군에서 가장 효율적인 모델로 집중적인 대량 작업에 맞춰 설계되었으며, 1,050,000 토큰 컨텍스트, 최대 128,000 출력 토큰, none부터 max까지의 reasoning_effort, 이미지 입력, 도구 호출을 지원합니다. model을 gpt-6-luna로 두세요. 같은 모델이 /v1/responses에서도 제공됩니다. 캐시에 적중한 입력은 입력 단가의 1/10로 정산됩니다. 이 모델은 사고 요약도 함께 돌려줍니다. 비스트리밍에서는 choices[].message.reasoning_content, 스트리밍에서는 choices[].delta.reasoning_content에 담깁니다. 답변 자체는 언제나 content에 있고 사고와 섞이지 않으므로 content만 읽는 클라이언트는 아무것도 고칠 필요가 없습니다. reasoning_effort를 생략하면 게이트웨이가 medium 등급(모델 자체의 기본값)을 요청하며 요약은 그대로 돌아옵니다. 과금은 사고 토큰이 출력 단가로 계산되어 usage.completion_tokens에 포함되고, 그중 사고에 해당하는 양은 usage.completion_tokens_details.reasoning_tokens에서 확인할 수 있습니다. 이 필드를 읽든 읽지 않든 해당 토큰은 과금됩니다. 참고로 OpenAI는 사고의 요약만 공개하고 원본 사고 사슬은 공개하지 않으므로 이 필드는 보통 짧습니다. 주의: 이 모델은 ChatGPT 구독 기반 업스트림으로 제공되며 temperature / top_p / max_tokens / max_completion_tokens / frequency_penalty / presence_penalty를 받지 않습니다. 보내더라도 오류 없이 조용히 무시됩니다. 사고 깊이는 reasoning_effort로, 출력 길이는 프롬프트 표현으로 조절하세요. 이미지 입력은 base64 data: URI를 사용하세요(공개 이미지 URL은 업스트림에서 가져오다 시간 초과될 수 있습니다).

**엔드포인트:** `POST https://nezhagate.com/v1/chat/completions`

## 인증
```
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```

## 요청 본문
| 파라미터 | 타입 | 필수 | 설명 |
| --- | --- | --- | --- |
| `model` | string | 예 | 모델 ID. 여기서는 gpt-6-luna입니다. |
| `messages` | array | 예 | 메시지 배열. 각 항목은 role(system/user/assistant)과 content를 가집니다. content는 문자열이거나, 이미지 이해(멀티모달 / 비전)를 위한 {type:text}와 {type:image_url} 조각들의 배열일 수 있습니다. |
| `stream` | boolean | 아니오 | SSE로 스트리밍할지 여부. 기본값 false. |
| `web_search` | boolean | 아니오 | true로 두면 웹 검색이 켜집니다. 게이트웨이가 모델이 답하기 전에 실시간 검색 결과로 프롬프트를 보강하고 출처를 함께 제시합니다. tools 항목 {"type":"web_search"}로도 켤 수 있습니다. |
| `reasoning_effort` | string | 아니오 | 추론 강도: none / low / medium / high / xhigh / max. none은 생각을 전혀 하지 않아 가장 빠르지만 여러 단계의 문제는 틀릴 수 있습니다. 생략하면 게이트웨이가 모델 기본값인 medium으로 요청하고, 생각 요약을 message.reasoning_content로 돌려줍니다. minimal은 low로 처리합니다. |
| `tools` | array | 아니오 | 함수 호출. 표준 OpenAI tools 배열을 넘기세요. 모델이 도구를 호출하기로 하면 finish_reason=tool_calls와 함께 tool_calls를 돌려줍니다. 특정 도구를 강제하려면 tool_choice와 함께 쓰세요. |
| `response_format` | object | 아니오 | 구조화 출력. {"type":"json_object"}를 넘기면 모델이 유효한 JSON만 돌려줍니다. |

## 요청 예시
```bash
curl https://nezhagate.com/v1/chat/completions -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"model": "gpt-6-luna", "messages": [{"role": "user", "content": "Hello"}], "stream": false}'
```

## 응답
```json
{
  "id": "chatcmpl_xxx",
  "object": "chat.completion",
  "model": "gpt-6-luna",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "reasoning_content": "**Weighing the options** ... (a summary of how the model reasoned)",
        "content": "Hello!"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 11,
    "completion_tokens": 105,
    "total_tokens": 116,
    "completion_tokens_details": {"reasoning_tokens": 43}
  }
}
```

## 이미지 입력 (Vision)
메시지 content 배열에 이미지를 넣으면 모델이 이를 분석합니다(시각적 질의응답, 텍스트 판독 / OCR 등). image_url에는 공개 이미지 링크 또는 인라인 base64 data URL(data:image/png;base64,...)을 넣을 수 있습니다. 멀티모달 모델(gpt-5.5, gemini 계열 등)에서 사용할 수 있습니다.

```bash
curl https://nezhagate.com/v1/chat/completions -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"model": "gpt-6-luna", "messages": [{"role": "user", "content": [{"type": "text", "text": "What is in this image?"}, {"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}]}]}'
```