# Contrat du moteur institutionnel

Le site PHP ne contient aucun moteur de reconnaissance vocale ni de génération de texte. Sur l'offre OVH mutualisée, ces traitements doivent être fournis par une infrastructure distincte, approuvée par l'établissement. Le connecteur est désactivé par défaut (`BRIDGE_ENABLED=0`).

Une fois l'architecture, l'hébergement, les flux et les obligations contractuelles validés, renseigner `BRIDGE_URL`, `BRIDGE_TOKEN`, puis `BRIDGE_ENABLED=1`. L'URL doit être en HTTPS. Le service doit accepter un en-tête `Authorization: Bearer <jeton>` et retourner du JSON. Les échanges peuvent contenir des données confidentielles : le service doit être conçu et exploité en conséquence.

## `POST {BRIDGE_URL}/transcribe`

Requête `multipart/form-data` :

- `audio` : fichier complet, avec extension et type MIME (`webm`, `ogg`, `m4a`, `mp3` ou `wav`)
- `metadata` : JSON contenant `meeting_id`, `language: "fr"`, `speaker_labels: true`, `medical_vocabulary: true`

Réponse attendue :

```json
{
  "segments": [
    {"start": 0.0, "end": 4.2, "speaker": "Interlocuteur 1", "text": "Bonjour à tous.", "uncertain": false, "overlap": false},
    {"start": 4.2, "end": 7.1, "speaker": "Interlocuteur 2", "text": "Bonjour.", "uncertain": false, "overlap": false}
  ]
}
```

`speaker` est un identifiant de voix provisoire, jamais une identité certifiée. Le moteur doit signaler les passages inaudibles et les voix simultanées. L'utilisateur corrige ensuite les noms et les propos avant rédaction.

## `POST {BRIDGE_URL}/generate`

Requête `application/json` : `meeting` (type, titre, date, service, lieu, participants, format), `segments` vérifiés et `instructions` de fidélité. Réponse :

```json
{"report": "# Compte rendu\n..."}
```

Le texte retourné est toujours un brouillon à relire. Le moteur doit distinguer les faits observés, les déclarations, les désaccords et les éléments à vérifier. Il ne doit pas déduire l'identité d'une personne d'après sa voix ni inventer une décision, une citation ou une échéance.

## Limites de la première version

Les appels sont synchrones. Les enregistrements longs peuvent dépasser la durée autorisée par l'hébergement mutualisé ou la passerelle. Pour une exploitation à grande échelle, prévoir un traitement asynchrone sur l'infrastructure de l'établissement avec file de tâches, remontée d'état et reprise. La saisie et les exports manuels restent disponibles en cas d'échec du moteur.

