1. Qui fait quoi
RECscript transcrit des réunions sur Android. En mode passerelle, il n'appelle aucun de nos serveurs et aucun fournisseur d'IA directement : il appelle la vôtre, avec une clé que vous émettez, vers le modèle que vous avez choisi. C'est vous qui décidez du fournisseur, de sa juridiction, des quotas et de la journalisation.
| Étape | Qui | Où |
|---|---|---|
| Déclarer le modèle, émettre la clé | Vous | Votre passerelle — cette page |
| Saisir les trois valeurs, tester | L'utilisateur | Réglages de l'application |
Il n'y a aucun connecteur, aucun agent, aucun compte à créer chez nous. RECscript parle le schéma OpenAI : si votre passerelle l'expose — LiteLLM, mais aussi bien un autre proxy compatible — elle convient telle quelle.
2. Ce qui est demandé
L'application a besoin d'un modèle capable de transcrire un fichier audio avec séparation des intervenants. À ce jour, deux identifiants sont validés côté LiteLLM :
voxtral-mini-latestvoxtral-mini-2602
Le fournisseur derrière cet alias vous appartient : Mistral, un hébergeur européen, ou votre propre déploiement. RECscript ne le connaît pas et n'a pas besoin de le connaître.
L'application n'a qu'un champ « modèle ». Cet alias unique est utilisé pour la transcription et pour la génération de texte (comptes rendus, questions-réponses). Si vous déclarez un modèle qui sait transcrire mais pas dialoguer, la transcription fonctionnera et les comptes rendus échoueront. Voir le config.yaml pour la manière de couvrir les deux.
3. Le config.yaml
Sur une installation LiteLLM, les modèles se déclarent dans le fichier
config.yaml — celui que vous passez au serveur via
--config, ou monté dans le conteneur. Ajoutez ces entrées
à la section model_list existante, sans toucher au reste :
model_list:
# ── Transcription : c'est cet alias que l'utilisateur saisira ──
- model_name: voxtral-mini-latest
litellm_params:
model: mistral/voxtral-mini-latest
api_key: os.environ/MISTRAL_API_KEY
# ── Texte : comptes rendus et questions-réponses ──
- model_name: ministral-8b-latest
litellm_params:
model: mistral/ministral-8b-latest
api_key: os.environ/MISTRAL_API_KEY
Puis redémarrez la passerelle pour que la déclaration prenne effet.
MISTRAL_API_KEY est ici une variable d'environnement du
serveur LiteLLM : la clé du fournisseur reste chez vous, et ne descend
jamais sur les postes.
Comme l'application n'expose qu'un champ, elle enverra
voxtral-mini-latest aussi bien aux transcriptions qu'aux
comptes rendus. Deux montages fonctionnent :
- Le plus simple — déclarer les deux entrées ci-dessus, et accepter que les comptes rendus passent par le modèle Voxtral, qui sait aussi dialoguer.
-
Le plus propre — un
router_settingsavec un fallback devoxtral-mini-latestversministral-8b-latestsur les appels/chat/completions, si votre version de LiteLLM le permet.
Le nom que vous mettez dans model_name est libre :
transcription-interne conviendrait tout aussi bien. C'est cet
alias-là, et pas le nom du modèle sous-jacent, que l'utilisateur devra
saisir dans l'application.
4. La clé virtuelle
Émettez une clé virtuelle de la passerelle pour l'application — jamais la clé du fournisseur. C'est tout l'intérêt du montage : le poste client ignore qui est le fournisseur, et vous coupez l'accès en révoquant la clé, sans passer par nous.
curl -X POST 'https://ia.votre-entreprise.fr/key/generate' \
-H 'Authorization: Bearer $LITELLM_MASTER_KEY' \
-H 'Content-Type: application/json' \
-d '{
"models": ["voxtral-mini-latest", "ministral-8b-latest"],
"key_alias": "recscript",
"max_budget": 50
}'
Vos politiques habituelles s'appliquent telles quelles : quotas par utilisateur, budgets, journalisation, filtrage. Ce sont celles de votre passerelle, pas les nôtres — nous n'avons aucun moyen de les contourner puisque nous ne sommes pas sur le chemin.
5. Ce qu'on remet à l'utilisateur
Trois valeurs, et rien d'autre :
| Champ | Exemple | Remarque |
|---|---|---|
| Adresse de la passerelle | https://ia.votre-entreprise.fr |
Sans /v1 final : l'application l'ajoute. Elle tolère qu'il soit présent, et le retire. |
| Clé | sk-… |
La clé virtuelle émise à l'étape précédente. |
| Nom du modèle | voxtral-mini-latest |
L'alias tel que model_name le nomme, pas le modèle sous-jacent. |
Voici l'écran que votre collaborateur a sous les yeux — Réglages → Clé, carte Entreprise LiteLLM. Les trois champs y sont dans l'ordre du tableau ci-dessus :
Une fois les trois valeurs saisies, il appuie sur Tester la connexion puis sur Enregistrer. Le test vérifie la chaîne complète — adresse joignable, clé acceptée, modèle déclaré, format de réponse exploitable — avant le premier enregistrement, plutôt qu'après une réunion entière.
Au-delà de quelques postes, ne faites pas recopier ces trois valeurs à
chacun : l'offre Entreprise permet de pousser la configuration
depuis votre espace client. Le collaborateur laisse alors les
trois champs vides et saisit un code RECS-XXXX-XXXX dans
la carte Licence d'entreprise, juste en dessous sur le même
écran : la passerelle s'installe seule.
En savoir plus sur l'offre Entreprise.
6. Deux écarts de protocole
Mesurés contre LiteLLM le 22 septembre 2026. L'application les traite déjà : vous n'avez rien à faire. Ils sont documentés ici parce qu'ils expliquent deux comportements qui, autrement, ressembleraient à des anomalies.
La diarisation exige verbose_json
Sans response_format=verbose_json, la passerelle applique
le format json d'OpenAI et ne renvoie que le texte. Les
segments existent côté serveur mais ne sont pas sérialisés : la
séparation des intervenants disparaît sans message
d'erreur. L'application l'envoie donc systématiquement dans
ce mode.
Le streaming est désactivé
LiteLLM ne sait pas relayer le flux SSE de Voxtral : il l'emballe dans
un objet d'erreur… renvoyé avec un code HTTP 200.
L'application ne le demande donc jamais en mode passerelle.
Conséquence visible pour l'utilisateur : la transcription s'affiche
d'un bloc au lieu de défiler au fil de l'eau. C'est normal, et non un
défaut de votre installation.
7. Dépannage
Les messages ci-dessous sont ceux que le bouton Tester la connexion affiche à l'utilisateur. Le détail technique renvoyé par la passerelle est toujours affiché en dessous, tel quel : demandez-le, c'est lui qui porte le diagnostic.
| Ce que voit l'utilisateur | Cause probable | Où regarder |
|---|---|---|
| Passerelle injoignable | DNS, TLS, ou adresse hors du réseau accessible depuis le mobile. | L'adresse est-elle résolvable depuis le réseau mobile ou le VPN, et pas seulement depuis le LAN ? Certificat accepté par Android ? |
| Clé refusée | 401 / 403 : clé révoquée, expirée, ou budget épuisé. |
La clé virtuelle et son max_budget. |
| Modèle absent | L'alias saisi n'est pas dans /v1/models. |
L'application liste les alias réellement exposés : comparez avec le model_name du config.yaml. Passerelle redémarrée ? |
| Réponse sans intervenants | Réponse aplatie au schéma Whisper d'OpenAI. | Un guardrail ou une transformation qui réécrit la réponse et perd les segments. |
HTTP 400 — No connected db |
LiteLLM démarré sans sa base de données. | Cas réellement rencontré. La gestion des clés virtuelles exige la base : DATABASE_URL. |
L'échantillon envoyé par le test est un silence de courte durée : il valide la chaîne (adresse, clé, modèle, format), mais il n'y a aucune parole à séparer. La séparation des voix se constate au premier enregistrement réel. L'application le dit à l'utilisateur plutôt que de laisser croire à une garantie qu'elle ne peut pas donner.
8. Ce que nous ne voyons pas
En mode passerelle, aucun contenu de réunion ne transite par nos serveurs, et ils ne sont même pas contactés : l'application appelle votre adresse, pas la nôtre. Les enregistrements, transcriptions et comptes rendus restent dans le stockage privé de l'application sur l'appareil.
Le seul échange qui nous concerne encore, dans l'offre Entreprise, est l'activation d'un appareil sous votre licence : nos serveurs voient qu'un appareil s'enrôle, jamais ce qu'il enregistre. Le détail des chemins d'appel est sur la page technique.
Une passerelle ne crée aucune garantie juridique par elle-même : elle route des appels. Ce qui détermine la souveraineté de vos données, c'est le fournisseur derrière elle, sa nationalité et le droit auquel il répond. Ce mode ne vous vend pas de la souveraineté — il vous rend un choix qui était déjà le vôtre.
Une question sur votre installation ?
Écrivez-nous en décrivant votre passerelle et le message affiché par le test.
Nous contacter