> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gpt-de-babi.perfproai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Streaming WebSocket

> Recevez les statuts, deltas et réponses de GPT de Babi en temps réel.

Connectez-vous à `wss://gpt-de-babi.perfproai.com/api/partners/v1/chat` avec les sous-protocoles `gpt-de-babi.partner.v1` et le token utilisateur.

```javascript theme={null}
const socket = new WebSocket(
  "wss://gpt-de-babi.perfproai.com/api/partners/v1/chat",
  ["gpt-de-babi.partner.v1", userToken]
);

socket.addEventListener("open", () => {
  socket.send(JSON.stringify({
    type: "user.message",
    conversation_id: conversationId,
    client_message_id: crypto.randomUUID(),
    message: "Quelle pharmacie est de garde à Cocody ?",
    location: { city: "Abidjan", commune: "Cocody" }
  }));
});

socket.addEventListener("message", ({ data }) => {
  const event = JSON.parse(data);
  if (event.type === "assistant.delta") appendText(event.text);
  if (event.type === "assistant.completed") showAnswer(event.message);
  if (event.type === "assistant.error") showError(event.error.message);
});
```

## Événements serveur

| Type                  | Usage                         |
| --------------------- | ----------------------------- |
| `turn.accepted`       | Le message a été accepté      |
| `turn.running`        | GPT de Babi traite la demande |
| `assistant.status`    | Statut lisible à afficher     |
| `assistant.delta`     | Fragment de texte incrémental |
| `assistant.completed` | Réponse finale persistée      |
| `assistant.error`     | Erreur structurée             |
| `pong`                | Réponse au heartbeat `ping`   |

<Warning>
  N'ajoutez jamais le token dans la query string. Pour un client web, enregistrez exactement son origine HTTPS dans la console partenaire. Les clients mobiles natifs peuvent se connecter sans en-tête `Origin`.
</Warning>
