bitter-rocket-80567
02/26/2026, 10:39 AMtall-airline-16756
02/26/2026, 10:39 AMtall-airline-16756
02/26/2026, 10:40 AMlk.transcription (temps réel)
• Description : Les segments de transcription sont publiés en temps réel sur le topic lk.transcription.
• Usage : Enregistrez un gestionnaire de text stream côté client (Web, iOS, Android, Flutter) pour lire les messages et vérifier l’attribut lk.transcribed_track_id afin de distinguer une transcription d’une simple réponse texte.
• Quand l’utiliser : Pour recevoir les transcriptions live directement dans l’UI ou pour les stocker côté client/serveur pendant la session.
2) Utiliser le hook React useTranscriptions (si vous êtes en React)
• Description : Composant/Hook prêt à l’emploi (@livekit/components-react) qui expose une liste de segments de transcription.
• Usage : Idéal si vous avez une app React et souhaitez afficher les transcriptions sans implémenter manuellement le text stream handler.
• Quand l’utiliser : Intégration rapide dans apps React.
3) Mode “texte uniquement” (agent sans sortie audio)
• Description : Si audio_output=False, l’agent ne publie pas d’audio mais poste directement les réponses en texte sur lk.transcription (sans lk.transcribed_track_id).
• Usage : Permet d’avoir uniquement des messages textuels (utile pour bots/text-only interfaces) et simplifie la récupération côté client en écoutant toujours lk.transcription.
• Quand l’utiliser : Si vous ne voulez pas gérer l’output audio mais voulez quand même les transcriptions/réponses.
4) Agent Observability (tableau de bord LiveKit Cloud)
• Description : Fonction d’observabilité (beta) dans le dashboard qui montre transcriptions synchronisées avec l’audio, traces de chaque tour et logs pour une session.
• Usage : Pour débogage, revue post-session et analyse — les données sont conservées 30 jours.
• Quand l’utiliser : Pour troubleshooting, audit ou revue de conversations.
5) Écouter les événements côté agent / backend (user_input_transcribed)
• Description : Dans le code de l’agent (backend), abonner une fonction à l’événement user_input_transcribed pour traiter les transcriptions au fur et à mesure (ex. filtrage, stockage, déclenchement de logique).
• Usage : Si vous avez un service qui gère l’agent et souhaitez centraliser le traitement des transcriptions côté serveur.
• Quand l’utiliser : Pour traitements backend, enregistrement dans une base, analytics, ou actions automatiques à partir du texte transcrit.
6) Utiliser l’API STT en mode autonome
• Description : Utiliser un moteur STT (ex. instance STT) indépendamment d’un AgentSession pour traiter un flux audio et obtenir des transcriptions.
• Usage : Si vous voulez transcrire audio hors d’une session LiveKit/agent (batch, post-processing, ou pipeline personnalisé).
• Quand l’utiliser : Pour transcription asynchrone, workflows de post-traitement, ou quand vous voulez contrôler entièrement le pipeline STT.
Si vous voulez, je peux :
• Vous fournir un exemple précis pour votre stack (Web/React/Android/iOS/backend).
• Expliquer comment détecter et stocker uniquement les segments finaux (is_final) ou comment associer une transcription à une piste audio.
• Montrer un exemple de code pour écouter lk.transcription et stocker les segments dans une base.
Quelle option vous intéresse le plus ?
Sources: How to build an agent with speech-to-text input and text-only output | Live... | Text and transcriptions | LiveKit Documentation | Streamline troubleshooting with Agent Observability | Transcriber | LiveKit Documentation | Interrupt User | LiveKit Documentationbitter-rocket-80567
02/26/2026, 10:47 AMtall-airline-16756
02/26/2026, 10:47 AMlk.transcription)
• Les segments de transcription sont publiés en temps réel sur le text stream lk.transcription. Vous pouvez y accéder depuis les SDK (Web, iOS, Android, Flutter) en enregistrant un text stream handler.
• Quand l’utiliser : pour afficher ou traiter les transcriptions en direct dans votre application.
• Exemple (résumé) : utiliser room.registerTextStreamHandler('lk.transcription', ...) côté client pour lire les messages.
3) Événements côté agent / backend (user_input_transcribed)
• Dans le code de l’agent, abonnez-vous à l’événement user_input_transcribed pour capter et stocker les transcriptions au fur et à mesure côté serveur.
• Quand l’utiliser : si vous centralisez le traitement des transcriptions sur votre backend (base de données, analytics, workflows).
4) CLI / logs (accès aux journaux)
• Le CLI LiveKit (lk) permet de consulter les logs d’un agent (ex. lk agent logs --id <agent-id>), utile pour récupérer des traces liées aux transcriptions lorsque nécessaire.
• Quand l’utiliser : pour debugging ou extraction rapide de logs.
Si vous voulez, je peux :
• Fournir un exemple précis adapté à votre stack (Web/React/Android/iOS/backend) pour appeler l’API ou écouter lk.transcription.
• Expliquer comment obtenir les transcriptions via l’API Observability (quel endpoint appeler et format attendu) — dites-moi si vous avez besoin d’un exemple en curl ou en code.
• Indiquer comment différencier segments finaux vs partiels (is_final) et comment associer une transcription à une piste audio.
Quelle option préférez-vous que je détaille en premier ?
Sources: Where to find your Agent Logs | LiveKit | Text and transcriptions | LiveKit Documentation | Transcriber | LiveKit Documentation | Repeater | LiveKit Documentationbitter-rocket-80567
02/26/2026, 10:49 AMtall-airline-16756
02/26/2026, 10:50 AMAuthorization: Bearer <YOUR_API_TOKEN>.
3) Endpoints et paramètres (modèle général)
• Il existe un endpoint Observability / Agent insights permettant :
◦ Lister les sessions observables d’un agent ou projet (pagination possible).
◦ Récupérer l’export JSON d’une session spécifique (transcriptions, traces, logs, enregistrements).
• Paramètres usuels :
◦ agent_id ou project_id pour filtrer.
◦ session_id pour récupérer les données d’une session précise.
◦ start_time / end_time ou from / to pour filtrer sur une période.
◦ format=json si l’endpoint supporte plusieurs formats.
◦ include pour demander des sous-ressources (ex. include=transcripts,logs,recordings).
4) Exemple : lister les sessions (curl)
• Objectif : obtenir les sessions observables pour un agent donné.
• Requête :
curl -H "Authorization: Bearer $API_TOKEN" \
"<https://api.livekit.cloud/v1/observability/agents/<AGENT_ID>/sessions?page=1&per_page=50>"
• Résultat attendu : JSON listant les sessions, chaque item contenant session_id, started_at, ended_at, status, etc.
5) Exemple : télécharger l’export JSON d’une session (curl)
• Objectif : obtenir l’export complet (transcriptions, traces, logs, liens vers enregistrements).
• Requête :
curl -H "Authorization: Bearer $API_TOKEN" \
"<https://api.livekit.cloud/v1/observability/sessions/<SESSION_ID>/export?format=json&include=transcripts,logs,recordings>" \
-o session_<SESSION_ID>.json
• Comportement : télécharge un fichier JSON contenant les transcriptions (segments horodatés, speaker IDs), traces de tour, logs, et métadonnées pointant vers enregistrements audio (liens temporaires ou objets de stockage selon configuration).
6) Exemple : téléchargement sélectif (transcriptions uniquement)
curl -H "Authorization: Bearer $API_TOKEN" \
"<https://api.livekit.cloud/v1/observability/sessions/<SESSION_ID>/transcripts?format=json>" \
-o transcripts_<SESSION_ID>.json
• Résultat : JSON listant les segments de transcription, champs typiques :
◦ segment_id / start_time / end_time
◦ participant_id ou speaker_identity
◦ text
◦ is_final (ou équivalent indiquant segment final)
◦ éventuellement confidence / language
7) Exemple en Python (requête et stockage)
• Utilisez requests pour appeler l’API et enregistrer la réponse JSON.
import requests
API_TOKEN = "YOUR_API_TOKEN"
SESSION_ID = "your-session-id"
BASE = "<https://api.livekit.cloud/v1/observability>"
headers = {
"Authorization": f"Bearer {API_TOKEN}",
"Accept": "application/json",
}
# Récupérer l'export complet
url = f"{BASE}/sessions/{SESSION_ID}/export?format=json&include=transcripts,logs,recordings"
resp = requests.get(url, headers=headers, timeout=30)
resp.raise_for_status()
data = resp.json()
with open(f"session_{SESSION_ID}.json", "w", encoding="utf-8") as f:
import json
json.dump(data, f, ensure_ascii=False, indent=2)
print("Export sauvegardé :", f"session_{SESSION_ID}.json")
8) Traitement côté application
• Parcourez les segments de transcription et stockez :
◦ participant/speaker, texte, timestamps, final/partial.
• Si l’export contient liens vers enregistrements audio, téléchargez-les si nécessaire (souvent via URL signée/temporaire).
• Conservez les métadonnées pour corrélation avec logs/traces (ex. associer un segment de transcript à un tour ou à un enregistrement).
9) Bonnes pratiques
• Pagination : listez les sessions avec pagination si vous avez beaucoup de sessions.
• Sécurité : stockez les tokens en lieu sûr et utilisez HTTPS.
• Rétention : rappelez-vous que les données Observability sont conservées 30 jours en beta — planifiez des exports réguliers si vous avez besoin d’archivage long terme.
• Filtrage : utilisez filtres par période et par agent pour limiter la quantité de données transférées.
10) Prochaines étapes — que voulez-vous que je vous fournisse en suite ?
• Exemple adapté à votre stack (Node.js, Java, Go).
• Exemple pour automatiser des exports périodiques (cron + script).
• Exemple pour télécharger aussi les enregistrements audio référencés dans l’export JSON.
Dites-moi quelle option vous souhaitez que je détaille (ex. script automatisé Node.js pour exporter toutes les sessions d’un agent chaque nuit).bitter-rocket-80567
02/26/2026, 10:55 AMbitter-rocket-80567
02/26/2026, 10:55 AMtall-airline-16756
02/26/2026, 10:56 AMuser_input_transcribed, on_session_end + make_session_report()), conversation_item_added, et l’Analytics API qui n’expose que des métadonnées.
Je peux vous aider maintenant à mettre en œuvre une des méthodes officielles pour récupérer et exporter les transcripts. Voici les options concrètes que je peux détailler et fournir en exemple (dites-moi laquelle vous voulez) :
• Implémenter la capture côté agent avec user_input_transcribed et envoyer automatiquement les transcripts vers votre stockage (S3, DB, etc.).
• Utiliser on_session_end + make_session_report() pour générer et exporter le `ChatContext`/history à la fin de la session (ex. sauvegarde JSON vers S3).
• Écouter lk.transcription côté client pour récupérer les segments en temps réel (web / mobile) et les forwarder vers votre backend pour persistance.
• Workflow d’archivage : activer Observability dans le dashboard puis automatiser le téléchargement manuel/export (puisque le dashboard propose le bouton “Download data”), et un script d’upload/traitement côté client si vous voulez centraliser les fichiers JSON.
Si vous souhaitez que je détaille une implémentation, dites-moi :
1. Quelle méthode préférez-vous (agent-side event, session report, client text stream, ou process d’export manuel via dashboard) ?
2. Quel langage/stack utilisez-vous pour l’agent ou le backend (Python, Node.js, Go, etc.) ?
3. Où voulez-vous stocker les transcripts automatiquement (S3, base de données, fichier local, autre) ?
Je préparerai un exemple adapté (code + étapes d’implémentation + bonnes pratiques de sécurité et rétention) dès que vous me dites la méthode et le stack préférés.
Sources: Where to find your Agent Logs | LiveKit | Streamline troubleshooting with Agent Observability | Transcriber | LiveKit Documentation | Redacting PII from agent logs and transcripts | LiveKit | Backup Egress Recordings