io.enterpriseai.resources.RealtimeClient
Source : sdks/java/enterprise-ai-java/src/main/java/io/enterpriseai/resources/RealtimeClient.java. Retour à l'index de la référence du SDK Java.
Cette page est générée par tools/docs/gen_sdk_reference.py depuis les sources du SDK et les dossiers de textes OpenAPI. Ne la modifiez pas à la main : changez la source et régénérez.
Classe RealtimeClient
Voix en temps réel. Sessions de voix en temps réel : un jeton de salle LiveKit et un protocole d'événements WebSocket pour diffuser de l'audio vers un agent, avec consentement des participants, tours de parole, transcriptions filtrées par la DLP, enregistrements facultatifs et comptage d'usage.
Constructeur RealtimeClient
RealtimeClient(Transport transport)
Crée le client sur le transport partagé ; EnterpriseAIClient le construit, on y accède par l'accesseur du même nom.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
transport | Transport | oui | Transport partagé par les sous-clients d'un même client. |
RealtimeClient.connect
CompletableFuture<WebSocket> connect(String sessionId, WebSocket.Listener listener)
Ouvre WebSocket /v1/realtime/ws/{session_id} avec un nouveau ws_token à usage unique demandé par #createToken avant chaque connexion, de sorte qu'une reconnexion ne réutilise jamais un jeton. Les événements sont des trames texte JSON comme session.update, input_audio.append, transcript.delta, response.audio.delta, usage.update et error.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
sessionId | String | oui | Identifiant de la session vocale ; un ws_token est demandé pour elle avant la connexion. | |
listener | WebSocket.Listener | oui | WebSocket.Listener qui reçoit les trames texte JSON de la session. |
Retour : CompletableFuture<WebSocket>. Un CompletableFuture terminé par le WebSocket ouvert ; IllegalStateException si le serveur ne renvoie aucun ws_token.
Erreurs levées : IllegalStateException.
RealtimeClient.consents
JsonNode consents(String sessionId)
Lister les consentements d'une session. Consentements enregistrés pour la session, dans l'ordre de recueil, avec leur révocation le cas échéant. Une seule page.
Route : /v1/realtime/sessions/{session_id}/consents (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
sessionId | String | oui | Identifiant (UUID) de la session temps réel. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les consentements d'une session ».
Erreurs levées : les erreurs typées du transport (Erreurs).
RealtimeClient.createSession
JsonNode createSession(Object body)
Ouvrir une session temps réel. Ouvre une session (201) et la renvoie avec session_id, livekit (url, token, room, configured) et l'accès WebSocket (ws_url, ws_token, ws_token_expires_at). Demande tenant_admin, developer ou agent. Contrôles : pipeline vaut echo ou stt (400 invalid_request) ; config.vad et config.dlp_mode sont valides (422 parameter_invalid) ; un appelant agent agit pour on_behalf_of, un utilisateur ne peut ouvrir une session que pour lui-même (403 identity_mismatch) ; les identifiants LiveKit sont configurés ; la politique realtime.session.create est évaluée. La salle prend par défaut un nom dérivé du tenant et de la session. Audité sous realtime.session.create.
Route : /v1/realtime/sessions (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | Object | oui | Salle, pipeline, durée de vie du jeton, configuration, agent et utilisateur représenté. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Ouvrir une session temps réel ».
Erreurs levées : les erreurs typées du transport (Erreurs).
RealtimeClient.createSession
JsonNode createSession(Object body, RequestOptions options)
Ouvrir une session temps réel. Ouvre une session (201) et la renvoie avec session_id, livekit (url, token, room, configured) et l'accès WebSocket (ws_url, ws_token, ws_token_expires_at). Demande tenant_admin, developer ou agent. Contrôles : pipeline vaut echo ou stt (400 invalid_request) ; config.vad et config.dlp_mode sont valides (422 parameter_invalid) ; un appelant agent agit pour on_behalf_of, un utilisateur ne peut ouvrir une session que pour lui-même (403 identity_mismatch) ; les identifiants LiveKit sont configurés ; la politique realtime.session.create est évaluée. La salle prend par défaut un nom dérivé du tenant et de la session. Audité sous realtime.session.create.
Route : /v1/realtime/sessions (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | Object | oui | Salle, pipeline, durée de vie du jeton, configuration, agent et utilisateur représenté. | |
options | RequestOptions | oui | Options de l'appel (clé d'idempotence, traceparent, en-têtes, signal d'annulation). |
Retour : JsonNode. Réponse JSON décodée de l'opération « Ouvrir une session temps réel ».
Erreurs levées : les erreurs typées du transport (Erreurs).
RealtimeClient.createToken
JsonNode createToken(String id)
Obtenir un nouveau jeton WebSocket. Nouveau jeton WebSocket à usage unique pour une session ouverte (reconnexion), lu sous RLS : ws_url, ws_token, ws_token_expires_at. 409 session_ended ; 404 not_found. Demande tenant_admin, developer ou agent. Audité sous realtime.session.token.
Route : /v1/realtime/sessions/{session_id}/token (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | String | oui | Identifiant (UUID) de la session temps réel. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Obtenir un nouveau jeton WebSocket ».
Erreurs levées : les erreurs typées du transport (Erreurs).
RealtimeClient.endSession
JsonNode endSession(String id)
Terminer une session temps réel. Termine la session et enregistre son événement d'usage (voice_live : secondes d'audio, jetons d'entrée et de sortie, coût mesuré). Terminer une session déjà terminée la renvoie sans changement. Demande tenant_admin, developer ou agent. Audité sous realtime.session.end.
Route : /v1/realtime/sessions/{session_id}/end (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | String | oui | Identifiant (UUID) de la session temps réel. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Terminer une session temps réel ».
Erreurs levées : les erreurs typées du transport (Erreurs).
RealtimeClient.getSession
JsonNode getSession(String id)
Lire une session temps réel. Renvoie la session : salle, identités, agent, pipeline, configuration, statut, secondes d'audio, jetons et usage. 404 not_found.
Route : /v1/realtime/sessions/{session_id} (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | String | oui | Identifiant (UUID) de la session temps réel. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Lire une session temps réel ».
Erreurs levées : les erreurs typées du transport (Erreurs).
RealtimeClient.grantConsent
JsonNode grantConsent(String sessionId, Object body)
Enregistrer le consentement d'un participant. Consentement d'un participant (finalité, enregistrement, transcription, conservation, méthode), recueilli par l'appelant (201). Le participant est par défaut celui de la session. La méthode doit être verbal, click, written ou api (422 parameter_invalid) ; la session ne doit pas être terminée (409 session_ended) ; la politique realtime.consent.record est évaluée. Demande tenant_admin, developer ou agent. Audité sous realtime.consent.record.
Route : /v1/realtime/sessions/{session_id}/consents (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
sessionId | String | oui | Identifiant (UUID) de la session temps réel. | |
body | Object | oui | Le consentement du participant. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Enregistrer le consentement d'un participant ».
Erreurs levées : les erreurs typées du transport (Erreurs).
RealtimeClient.grantConsent
JsonNode grantConsent(String sessionId, Object body, RequestOptions options)
Enregistrer le consentement d'un participant. Consentement d'un participant (finalité, enregistrement, transcription, conservation, méthode), recueilli par l'appelant (201). Le participant est par défaut celui de la session. La méthode doit être verbal, click, written ou api (422 parameter_invalid) ; la session ne doit pas être terminée (409 session_ended) ; la politique realtime.consent.record est évaluée. Demande tenant_admin, developer ou agent. Audité sous realtime.consent.record.
Route : /v1/realtime/sessions/{session_id}/consents (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
sessionId | String | oui | Identifiant (UUID) de la session temps réel. | |
body | Object | oui | Le consentement du participant. | |
options | RequestOptions | oui | Options de l'appel (clé d'idempotence, traceparent, en-têtes, signal d'annulation). |
Retour : JsonNode. Réponse JSON décodée de l'opération « Enregistrer le consentement d'un participant ».
Erreurs levées : les erreurs typées du transport (Erreurs).
RealtimeClient.revokeConsent
JsonNode revokeConsent(String sessionId, String consentId)
Révoquer un consentement. La révocation prend effet au prochain événement audio : transcription et enregistrement sont de nouveau refusés. Un consentement déjà révoqué ou inconnu répond 404 not_found. Demande tenant_admin, developer ou agent. Audité sous realtime.consent.revoke.
Route : /v1/realtime/sessions/{session_id}/consents/{consent_id}/revoke (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
sessionId | String | oui | Identifiant (UUID) de la session temps réel. | |
consentId | String | oui | Identifiant (UUID) du consentement. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Révoquer un consentement ».
Erreurs levées : les erreurs typées du transport (Erreurs).
RealtimeClient.revokeConsent
JsonNode revokeConsent(String sessionId, String consentId, RequestOptions options)
Révoquer un consentement. La révocation prend effet au prochain événement audio : transcription et enregistrement sont de nouveau refusés. Un consentement déjà révoqué ou inconnu répond 404 not_found. Demande tenant_admin, developer ou agent. Audité sous realtime.consent.revoke.
Route : /v1/realtime/sessions/{session_id}/consents/{consent_id}/revoke (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
sessionId | String | oui | Identifiant (UUID) de la session temps réel. | |
consentId | String | oui | Identifiant (UUID) du consentement. | |
options | RequestOptions | oui | Options de l'appel (clé d'idempotence, traceparent, en-têtes, signal d'annulation). |
Retour : JsonNode. Réponse JSON décodée de l'opération « Révoquer un consentement ».
Erreurs levées : les erreurs typées du transport (Erreurs).
RealtimeClient.transcripts
JsonNode transcripts(String sessionId)
Lister les transcriptions d'une session. Transcriptions conservées, déjà filtrées par la DLP (la transcription brute n'est jamais conservée), avec tour, consentement, participant, détections DLP et expiration. Demande tenant_admin, developer, auditor ou security_officer.
Route : /v1/realtime/sessions/{session_id}/transcripts (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
sessionId | String | oui | Identifiant (UUID) de la session temps réel. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les transcriptions d'une session ».
Erreurs levées : les erreurs typées du transport (Erreurs).
RealtimeClient.turns
JsonNode turns(String sessionId)
Lister les tours d'une session. Tours avec le participant, l'utilisateur, l'agent, l'identifiant de trace, le statut (une interruption enregistre cancelled) et la latence mesurée, dans l'ordre. Une seule page.
Route : /v1/realtime/sessions/{session_id}/turns (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
sessionId | String | oui | Identifiant (UUID) de la session temps réel. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les tours d'une session ».
Erreurs levées : les erreurs typées du transport (Erreurs).