# `Planck.AI.Models.OpenAI`
[🔗](https://github.com/alexdesousa/planck/blob/v0.2.2/lib/planck/ai/models/open_ai.ex#L1)

Model catalog for OpenAI and OpenAI-compatible endpoints.

Without options, returns the LLMDB catalog for OpenAI's GPT family (requires
`OPENAI_API_KEY`). With a `base_url:` option, queries the server's `/models`
endpoint at call time — use this for NVIDIA NIM, Groq, Ollama, llama.cpp, etc.

## Examples

    # Cloud catalog
    Planck.AI.Models.OpenAI.all()

    # Custom endpoint
    Planck.AI.Models.OpenAI.all(
      base_url: "https://integrate.api.nvidia.com/v1",
      identifier: "NVIDIA"
    )

    # Build a single model struct
    Planck.AI.Models.OpenAI.model("deepseek-ai/deepseek-v4-pro",
      base_url: "https://integrate.api.nvidia.com/v1",
      identifier: "NVIDIA",
      context_window: 128_000
    )

# `all`

```elixir
@spec all(keyword()) :: [Planck.AI.Model.t()]
```

Returns models for this provider.

Without `base_url:`, returns the LLMDB snapshot for OpenAI.
With `base_url:`, queries the server's `/models` endpoint.

## Options (custom endpoint only)

- `:base_url` — base URL of the server.
- `:identifier` — uppercase tag for env var derivation (e.g. `"NVIDIA"` →
  `NVIDIA_API_KEY`). Defaults to `"OPENAI"`.
- `:context_window` — default context window. Defaults to `32_768`.
- `:max_tokens` — default max tokens. Defaults to `2_048`.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
