# `Rho.Settings`
[🔗](https://github.com/GenericJam/rho/blob/v0.1.0/lib/rho/settings.ex#L1)

The user settings the loop reads, a host seam
(`config :rho, :settings, Module`):

  * `fallback_model/1`: the model a run continues on when its own is
    rate limited past waiting (`Rho.Loop`), a req_llm spec, or nil
  * `daily_cap/1`: dollars of model calls a day before the loop refuses
    the next one (`Rho.Budget`)

Each gets the loop's data dir and is read when needed (before each model
call, at a fallback), so a change applies at once. The default,
`Rho.Settings.File`, keeps them in `settings.json` in the data dir.

# `daily_cap`

```elixir
@callback daily_cap(data_dir :: Path.t()) :: float()
```

# `fallback_model`

```elixir
@callback fallback_model(data_dir :: Path.t()) :: String.t() | nil
```

# `daily_cap`

```elixir
@spec daily_cap(Path.t()) :: float()
```

The configured module's `c:daily_cap/1`.

# `fallback_model`

```elixir
@spec fallback_model(Path.t()) :: String.t() | nil
```

The configured module's `c:fallback_model/1`.

---

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