# `LLMProxy`
[🔗](https://github.com/elixir-vibe/llm_proxy/blob/v0.3.1/lib/llm_proxy.ex#L1)

Elixir-native LLM gateway for in-process, ReqLLM, SafeRPC, and HTTP calls.

LLMProxy applies model routing, provider fallback, API-key governance, usage
accounting, and tracing through one provider execution boundary. It can run
inside an existing application or as a standalone OpenAI-compatible service.

# `chat`

Calls the proxy in-process using ReqLLM messages or a plain prompt.

Pass either `:actor` with `%LLMProxy.Actor{}` or `:api_key` with an existing
LLMProxy API key schema/map so quota and usage accounting can run.

# `chat`

```elixir
@spec chat(LLMProxy.Protocol.Request.t(), map(), term()) ::
  {:ok, LLMProxy.Response.t()} | {:error, term()}
```

Run a chat completion through LLMProxy.

# `models`

```elixir
@spec models(map(), map(), term()) :: {:ok, [map()]}
```

List available models.

# `status`

```elixir
@spec status(map(), map(), term()) :: {:ok, map()}
```

Return service status.

---

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