> ## Documentation Index
> Fetch the complete documentation index at: https://gomodel.enterpilot.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Subskrypcja ChatGPT

> Kieruj ruch Responses API przez subskrypcję ChatGPT zamiast klucza API OpenAI Platform.

Provider `chatgpt` wywołuje backend Codex dostępny w ramach subskrypcji ChatGPT
(Plus, Pro, Business lub Enterprise). Użycie jest rozliczane z limitu
subskrypcji, a nie z klucza API OpenAI Platform.

Połącz go z [przewodnikiem po Codex](https://gomodel.enterpilot.io/docs/pl/guides/codex.md), aby uruchomić
`Codex -> GoModel -> ChatGPT subscription`.

## Konfiguracja

Danymi uwierzytelniającymi jest access token z Twojego logowania do Codex:

```bash theme={null}
CHATGPT_API_KEY=$(jq -r .tokens.access_token ~/.codex/auth.json)
```

Albo w `config.yaml`:

```yaml theme={null}
providers:
  chatgpt:
    type: chatgpt
    api_key: "${CHATGPT_API_KEY}"
```

Jeśli plik `~/.codex/auth.json` jeszcze nie istnieje, najpierw uruchom
`codex login`. GoModel wyznacza ID konta ChatGPT z samego tokena, więc nic
więcej nie jest potrzebne.

> [!WARNING]
>
> Token wygasa mniej więcej co 10 dni. Wyeksportuj go ponownie (Codex CLI
> odświeża plik przy każdym uruchomieniu) albo ponownie uruchom `codex login`,
> gdy requesty zaczną zwracać 401.

## Modele

Backend Codex nie ma endpointu listującego modele, więc GoModel dostarcza
listę modeli, które może wywołać subskrypcja ChatGPT:

```text theme={null}
gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna, gpt-5.5
```

Nadpisz ją, jeśli Twój plan obsługuje inny zestaw:

```bash theme={null}
CHATGPT_MODELS=gpt-5.6-sol,gpt-5.6-terra
```

Model spoza zestawu planu jest odrzucany przez upstream komunikatem `The '<model>' model
is not supported when using Codex with a ChatGPT account`.

`gpt-5.4` i `gpt-5.4-mini` znikają z Codex uwierzytelnianego przez ChatGPT
31 sierpnia 2026; zamiast nich używaj `gpt-5.6-terra` i `gpt-5.6-luna`. Oba
pozostają dostępne dla sesji Codex uwierzytelnianych kluczem API OpenAI, przez
providera `openai`.

## Tylko Responses API

Backend Codex obsługuje wyłącznie `/responses`, więc `/v1/chat/completions` i
`/v1/embeddings` odpowiadają `501` dla modeli `chatgpt`. Używaj
`/v1/responses` – i tak to właśnie wysyła Codex.

Backend dodatkowo waliduje parametry względem ścisłej listy dozwolonych pól.
GoModel dostosowuje requesty, zamiast je odrzucać, więc wywołujący nadal
korzystają ze standardowego Responses API:

| Pole requestu | Zachowanie |
| - | - |
| `stream`, `store` | Ustawione na stałe na `true` / `false` – backend odrzuca inne wartości |
| `input` jako string | Opakowywane w listę wiadomości wymaganą przez backend |
| `instructions`, `tools`, `tool_choice`, `parallel_tool_calls`, `reasoning`, `text`, `include`, `prompt_cache_key` | Przekazywane |
| `temperature`, `top_p`, `max_output_tokens`, `previous_response_id`, `truncation`, `metadata`, `user`, `service_tier`, `top_logprobs` | Pomijane – nieobsługiwane przez upstream |
| `prompt_cache_retention`, `prompt_cache_options` | Pomijane – Codex CLI nigdy ich nie wysyła, więc obsługa po stronie backendu nie jest zweryfikowana |

Ponieważ backend obsługuje wyłącznie streaming, niestreamingowy
`POST /v1/responses` jest realizowany przez streaming do upstreamu i zwrócenie
końcowego obiektu response. Klienci widzą zwykłą niestreamingową odpowiedź.
Zobacz [Kompatybilność Responses](https://gomodel.enterpilot.io/docs/pl/advanced/responses-compatibility.md), aby
dowiedzieć się, jak zachowuje się Responses API gatewaya u różnych providerów.

## Prompt caching

Backend utrzymuje jedną rozmowę na rozgrzanym cache’u prefiksu, gdy każda tura
niesie ten sam nagłówek `session-id`; sam `prompt_cache_key` nie daje cache
hitów. GoModel wysyła wykrytą [sesję](https://gomodel.enterpilot.io/docs/pl/features/session-keeping.md) jako
`session-id` albo, gdy nie wykryto sesji, `prompt_cache_key` klienta, a klucz
przekazuje także w body, tak jak robi to Codex CLI. Gdy klient nie wysyła
klucza, jego rolę przejmuje ID sesji, o ile mieści się w limicie 64 znaków
klucza.

Jeśli klient nie wysyła klucza, a GoModel nie wykrywa sesji, backend nie
dostaje żadnego z tych sygnałów. Wysyłaj `prompt_cache_key`, aby zachować cache
hity; nagłówek sesji, taki jak `X-Session-Id`, również działa, chyba że
ustawiono `SESSION_KEEPING_ENABLED=false`, co wyłącza wykrywanie sesji.

Aby sprawdzić współczynnik trafień na prawdziwym backendzie, uruchom opcjonalny
test live:

```bash theme={null}
CHATGPT_API_KEY=$(jq -r .tokens.access_token ~/.codex/auth.json) make test-live
```

## Raportowany koszt to nie rzeczywiste wydatki

Użycie w ramach subskrypcji jest rozliczane ryczałtowo, ale te ID modeli
istnieją też w OpenAI Platform, więc katalog modeli przypisuje im ceny API za
token. Rekordy użycia i sumy w dashboardzie dla `chatgpt` pokazują kwotę, która
nie odpowiada żadnemu faktycznemu obciążeniu, a ta sama kolizja sprawia, że
`GET /v1/models` ogłasza `modes: ["chat", "responses"]`.

Tryby są kosmetyczne – wpływają na grupowanie w dashboardzie, nie na routing.
Ceny już nie: zasilają [śledzenie kosztów](https://gomodel.enterpilot.io/docs/pl/features/cost-tracking.md), budżety
i load balancing `cost`.

> [!WARNING]
>
> **Budżet** może więc odrzucać ruch `chatgpt` za „wydawanie” pieniędzy, których
> subskrypcja nigdy nie pobiera. Ogranicz budżety do
> [ścieżki użytkownika](https://gomodel.enterpilot.io/docs/pl/features/user-path.md), która wyklucza ruch
> subskrypcyjny, albo nie włączaj dla niego budżetów. Zadeklarowanie per model
> `pricing` i `modes: ["responses"]` w [metadanych modeli](https://gomodel.enterpilot.io/docs/pl/advanced/model-metadata.md)
> poprawia to, co ogłasza `/v1/models`, ale rekordy użycia nadal są wyceniane
> według stawek z katalogu. Zadeklaruj każdy model, który ma być obsługiwany:
> lista zastępuje domyślny zestaw modeli, zamiast go uzupełniać.

## Limity

Limit subskrypcji jest oddzielny od kredytów API. Gdy się wyczerpie, gateway
przekazuje `429`:

```json theme={null}
{"error":{"message":"The usage limit has been reached","type":"rate_limit_error"}}
```

> [!WARNING]
>
> OpenAI autoryzuje te tokeny do ruchu Codex. Używaj tego providera do
> kierowania własnego użycia Codex przez GoModel, a nie jako API do inferencji
> ogólnego przeznaczenia.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.