# `AI`
[🔗](https://github.com/franciscpd/phoenix-ai/blob/main/lib/ai.ex#L1)

Thin facade for interacting with AI providers.

## Usage

    AI.chat(
      [%PhoenixAI.Message{role: :user, content: "Hello"}],
      provider: :openai,
      model: "gpt-4o"
    )

## Configuration Cascade

Options resolve in order: call-site > config.exs > env vars > provider defaults.

# `chat`

```elixir
@spec chat(
  [PhoenixAI.Message.t()],
  keyword()
) :: {:ok, PhoenixAI.Response.t()} | {:error, term()}
```

# `provider_module`

```elixir
@spec provider_module(atom()) :: module()
```

# `stream`

```elixir
@spec stream(
  [PhoenixAI.Message.t()],
  keyword()
) :: {:ok, PhoenixAI.Response.t()} | {:error, term()}
```

---

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