# Chat IA (ai-chat)

> Module ai-chat : Assistant Claude en streaming : edge function (clé API côté serveur), historique Supabase, onglet Chat.

Assistant Claude en streaming : edge function (clé API côté serveur), historique Supabase, onglet Chat.

:::note[Page générée]
Générée depuis `modules/ai-chat/README.md`, `module.json`, `config.ts`, `index.ts` à chaque build du site : modifier la source, pas cette page.
:::

## Fiche technique

| | |
|---|---|
| Paquet | `@daroms/module-ai-chat` |
| Activer | `bun daroms module add ai-chat` |
| Requiert | `auth` |
| Dépendances natives | aucune |
| Routes ajoutées | `app/(tabs)/chat.tsx` (`ChatScreen`) |
| Onglets | `chat` (icône `Sparkles`) |
| Migrations | `migrations/ai_chat.sql` |
| Edge functions | `functions/ai-chat` |
| Variables d'environnement | aucune |
| Gate de navigation | non |
| Section de réglages | non |

## Mise en place et usage

Assistant conversationnel Claude en streaming. Requiert `auth`.

- Activer : `bun daroms module add ai-chat` (onglet Chat, migration `ai_conversations` / `ai_messages`, edge function `ai-chat`).
- Secrets serveur (jamais dans l'app) : `bunx supabase secrets set ANTHROPIC_API_KEY=...`
  - `AI_CHAT_MODEL` (défaut `claude-opus-5-5`), `AI_CHAT_SYSTEM` (prompt système), `AI_CHAT_DAILY_LIMIT` (défaut 50 messages / 24 h).
- Déployer : `bunx supabase functions deploy ai-chat`.
- Effort `low` (réponses rapides) ; repli automatique côté serveur si le modèle décline (`fallbacks: "default"`), sinon message « ne peut pas répondre ».
- Config app : `suggestions` (clés i18n affichées quand la conversation est vide).

## Configuration

Dans `app.manifest.ts > modules['ai-chat']`, validée par `modules/ai-chat/config.ts` au démarrage.

| Clé | Schéma zod | Rôle |
|---|---|---|
| `suggestions` | `z.array(z.string()).default([])` | Clés i18n (namespace app) des suggestions affichées quand la conversation est vide. |

Valeurs écrites par `module add` :

```json
{
  "suggestions": [
    "aiChat.suggestion1",
    "aiChat.suggestion2"
  ]
}
```

## Exports

```ts
import { ChatScreen, streamReply } from '@daroms/module-ai-chat'
```

- Valeurs : `ChatScreen`, `streamReply`

- Types : `ChatMessage`

---

Page HTML : https://daromsartof.github.io/daroms-speedapp/reference/modules/ai-chat/
Index de la documentation : https://daromsartof.github.io/daroms-speedapp/llms.txt
