# `Jido.Chat.AI`
[🔗](https://github.com/agentjido/jido_chat/blob/v1.0.0/lib/jido/chat/ai.ex#L1)

Framework-agnostic conversion helpers for turning chat history into AI-ready messages.

# `ai_content_part`

```elixir
@type ai_content_part() :: map()
```

# `ai_message`

```elixir
@type ai_message() :: %{role: String.t(), content: String.t() | [ai_content_part()]}
```

# `to_ai_messages`

```elixir
@spec to_ai_messages([Jido.Chat.Message.t() | map()], keyword() | map()) :: [
  ai_message()
]
```

Alias for `to_messages/2`.

# `to_messages`

```elixir
@spec to_messages([Jido.Chat.Message.t() | map()], keyword() | map()) :: [
  ai_message()
]
```

Converts normalized chat messages into AI-friendly role/content maps.

Options stay Elixir-native by default, but Chat SDK-style camelCase aliases are
accepted to make cross-port migration less brittle:

- `include_names` or `includeNames`
- `transform` or `transformMessage`
- `unsupported_attachment` or `onUnsupportedAttachment`
- `fetch_attachment` or `fetchAttachment`

---

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