# `Planck.AI.ModelProvider`
[🔗](https://github.com/alexdesousa/planck/blob/v0.1.0/lib/planck/ai/model_provider.ex#L1)

Behaviour for modules that supply a list of `Planck.AI.Model` structs.

## Cloud providers (Anthropic, OpenAI, Google)

These source their catalog from LLMDB, a bundled snapshot of the public model
registry. No network call is made at query time — the data is loaded from the
package artifact into `:persistent_term` on first access.

## Local providers (Ollama, llama.cpp)

These fetch the model list from the running local server at call time, so the
returned list reflects whatever models are currently loaded.

## Error handling

All implementations must return `[]` on any failure — they must never raise.

# `all`

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

---

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