L'API Gemini Live permet des interactions bidirectionnelles à faible latence qui utilisent du texte, de l'audio et de la vidéo en entrée, avec une sortie audio et textuelle. Cela facilite les conversations vocales naturelles et humaines, avec la possibilité d'interrompre le modèle à tout moment. La capacité de compréhension vidéo du modèle élargit les modalités de communication, ce qui vous permet de partager des entrées de l'appareil photo ou des enregistrements d'écran, et de poser des questions à leur sujet.
Capacités
L'API Live inclut les principales fonctionnalités suivantes:
- Multimodalité: le modèle peut voir, entendre et parler.
- Interaction en temps réel à faible latence: le modèle peut fournir des réponses rapides.
- Mémoire de session: le modèle conserve la mémoire de toutes les interactions au cours d'une même session, en rappelant les informations entendues ou vues précédemment.
- Compatibilité avec l'appel de fonction, l'exécution de code et la recherche en tant qu'outil : vous pouvez intégrer le modèle à des services et des sources de données externes.
L'API Live est conçue pour la communication de serveur à serveur.
Pour les applications Web et mobiles, nous vous recommandons d'utiliser l'intégration de nos partenaires Daily.
Commencer
Pour essayer l'API Live, accédez à Vertex AI Studio, puis cliquez sur Start Session (Démarrer la session).
L'API Live est une API avec état qui utilise WebSockets.
Cette section montre comment utiliser l'API Live pour la génération de texte à partir de texte, à l'aide de Python 3.9 ou version ultérieure.
Gen AI SDK for Python
Installer
pip install --upgrade google-genai
Définissez des variables d'environnement pour utiliser le SDK Gen AI avec Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=us-central1 export GOOGLE_GENAI_USE_VERTEXAI=True
Guide d'intégration
Cette section explique comment fonctionne l'intégration avec l'API Live.
Sessions
Une connexion WebSocket établit une session entre le client et le serveur Gemini.
Une fois qu'un client a établi une nouvelle connexion, la session peut échanger des messages avec le serveur pour:
- Envoyer du texte, de l'audio ou de la vidéo au serveur Gemini
- Recevoir des requêtes d'appel audio, textuel ou de fonction à partir du serveur Gemini
La configuration de la session est envoyée dans le premier message après la connexion. Une configuration de session comprend le modèle, les paramètres de génération, les instructions système et les outils.
Consultez l'exemple de configuration suivant:
{
"model": string,
"generationConfig": {
"candidateCount": integer,
"maxOutputTokens": integer,
"temperature": number,
"topP": number,
"topK": integer,
"presencePenalty": number,
"frequencyPenalty": number,
"responseModalities": [string],
"speechConfig": object
},
"systemInstruction": string,
"tools": [object]
}
Pour en savoir plus, consultez BidiGenerateContentSetup.
Envoyer des messages
Les messages sont des objets au format JSON échangés via la connexion WebSocket.
Pour envoyer un message, le client doit envoyer un objet JSON via une connexion WebSocket ouverte. L'objet JSON doit comporter exactement un des champs de l'ensemble d'objets suivant:
{
"setup": BidiGenerateContentSetup,
"clientContent": BidiGenerateContentClientContent,
"realtimeInput": BidiGenerateContentRealtimeInput,
"toolResponse": BidiGenerateContentToolResponse
}
Messages client compatibles
Consultez les messages client acceptés dans le tableau suivant:
Message | Description |
---|---|
BidiGenerateContentSetup |
Configuration de la session à envoyer dans le premier message |
BidiGenerateContentClientContent |
Mise à jour incrémentielle du contenu de la conversation en cours envoyée par le client |
BidiGenerateContentRealtimeInput |
Entrée audio ou vidéo en temps réel |
BidiGenerateContentToolResponse |
Réponse à un ToolCallMessage reçu du serveur |
Recevoir des messages
Pour recevoir des messages de Gemini, écoutez l'événement "message" WebSocket, puis analysez le résultat conformément à la définition des messages de serveur compatibles.
Consultez les références suivantes :
ws.addEventListener("message", async (evt) => { if (evt.data instanceof Blob) { // Process the received data (audio, video, etc.) } else { // Process JSON response } });
Les messages du serveur comportent exactement un des champs de l'ensemble d'objets suivant:
{
"setupComplete": BidiGenerateContentSetupComplete,
"serverContent": BidiGenerateContentServerContent,
"toolCall": BidiGenerateContentToolCall,
"toolCallCancellation": BidiGenerateContentToolCallCancellation
"usageMetadata": UsageMetadata
"goAway": GoAway
"sessionResumptionUpdate": SessionResumptionUpdate
"inputTranscription": BidiGenerateContentTranscription
"outputTranscription": BidiGenerateContentTranscription
}
Messages de serveur compatibles
Consultez les messages de serveur compatibles dans le tableau suivant:
Message | Description |
---|---|
BidiGenerateContentSetupComplete |
Message BidiGenerateContentSetup du client, envoyé une fois la configuration terminée |
BidiGenerateContentServerContent |
Contenu généré par le modèle en réponse à un message client |
BidiGenerateContentToolCall |
Demander au client d'exécuter les appels de fonction et de renvoyer les réponses avec les ID correspondants |
BidiGenerateContentToolCallCancellation |
Envoyée lorsqu'un appel de fonction est annulé parce que l'utilisateur interrompt la sortie du modèle |
UsageMetadata |
Rapport sur le nombre de jetons utilisés par la session jusqu'à présent |
GoAway |
Signal indiquant que la connexion actuelle sera bientôt interrompue |
SessionResumptionUpdate |
Un point de contrôle de session, qui peut être repris |
BidiGenerateContentTranscription |
Transcription de la parole de l'utilisateur ou du modèle |
Mises à jour incrémentielles du contenu
Utilisez des mises à jour incrémentielles pour envoyer une saisie de texte, établir le contexte de session ou restaurer le contexte de session. Pour les contextes courts, vous pouvez envoyer des interactions par étape pour représenter la séquence exacte des événements. Pour les contextes plus longs, nous vous recommandons de fournir un seul résumé de message afin de libérer la fenêtre de contexte pour les interactions de suivi.
Consultez l'exemple de message de contexte suivant:
{ "clientContent": { "turns": [ { "parts":[ { "text": "" } ], "role":"user" }, { "parts":[ { "text": "" } ], "role":"model" } ], "turnComplete": true } }
Notez que, bien que les parties de contenu puissent être de type functionResponse
, BidiGenerateContentClientContent
ne doit pas être utilisé pour fournir une réponse aux appels de fonction émis par le modèle. Utilisez BidiGenerateContentToolResponse
à la place. BidiGenerateContentClientContent
ne doit être utilisé que pour établir le contexte précédent ou fournir une entrée de texte à la conversation.
Streaming audio et vidéo
Exécution du code
Pour en savoir plus sur l'exécution du code, consultez la section Exécution du code.
Appel de fonction
Toutes les fonctions doivent être déclarées au début de la session en envoyant des définitions d'outils dans le message BidiGenerateContentSetup
.
Vous définissez des fonctions à l'aide de JSON, en particulier avec un sous-ensemble sélectionné du format de schéma OpenAPI. Une seule déclaration de fonction peut inclure les paramètres suivants:
name (chaîne): identifiant unique de la fonction dans l'appel d'API.
description (chaîne): explication complète de l'objectif et des fonctionnalités de la fonction.
parameters (objet): définit les données d'entrée requises par la fonction.
type (chaîne): spécifie le type de données global, tel qu'un objet.
properties (objet): liste les paramètres individuels, chacun avec:
- type (chaîne): type de données du paramètre, par exemple "chaîne", "entier" ou "booléen".
- description (chaîne): explication claire de l'objectif du paramètre et du format attendu.
required (tableau): tableau de chaînes listant les noms de paramètres obligatoires pour que la fonction fonctionne.
Pour obtenir des exemples de code d'une déclaration de fonction à l'aide de commandes curl, consultez la section Appel de fonction avec l'API Gemini. Pour obtenir des exemples de création de déclarations de fonction à l'aide des SDK de l'API Gemini, consultez le tutoriel sur l'appel de fonction.
À partir d'une seule invite, le modèle peut générer plusieurs appels de fonction et le code nécessaire pour enchaîner leurs sorties. Ce code s'exécute dans un environnement bac à sable, générant des messages BidiGenerateContentToolCall
ultérieurs. L'exécution est mise en pause jusqu'à ce que les résultats de chaque appel de fonction soient disponibles, ce qui garantit un traitement séquentiel.
Le client doit répondre avec BidiGenerateContentToolResponse
.
Pour en savoir plus, consultez la section Présentation des appels de fonction.
Formats audio
L'API Live est compatible avec les formats audio suivants:
- Format audio d'entrée: audio PCM brut 16 bits à 16 kHz, little-endian
- Format audio de sortie: audio PCM brut 16 bits à 24 kHz, little-endian
Instructions système
Vous pouvez fournir des instructions système pour mieux contrôler la sortie du modèle et spécifier le ton et le sentiment des réponses audio.
Les instructions système sont ajoutées à l'invite avant le début de l'interaction et restent en vigueur pendant toute la session.
Les instructions système ne peuvent être définies qu'au début d'une session, immédiatement après la connexion initiale. Pour fournir d'autres informations au modèle pendant la session, utilisez des mises à jour de contenu incrémentielles.
Interruptions
Les utilisateurs peuvent interrompre la sortie du modèle à tout moment. Lorsque la détection d'activité vocale (VAD) détecte une interruption, la génération en cours est annulée et supprimée. Seules les informations déjà envoyées au client sont conservées dans l'historique de la session. Le serveur envoie ensuite un message BidiGenerateContentServerContent
pour signaler l'interruption.
En outre, le serveur Gemini supprime tous les appels de fonction en attente et envoie un message BidiGenerateContentServerContent
avec les ID des appels annulés.
Voix
L'API Live est compatible avec les voix suivantes:
- Palet
- Charon
- Kore
- Fenrir
- Aoede
Pour spécifier une voix, définissez voiceName
dans l'objet speechConfig
, dans le cadre de la configuration de la session.
Consultez la représentation JSON suivante d'un objet speechConfig
:
{ "voiceConfig": { "prebuiltVoiceConfig": { "voiceName": "VOICE_NAME" } } }
Limites
Tenez compte des limites suivantes de l'API Live et de Gemini 2.0 lorsque vous planifiez votre projet.
Authentification client
L'API en direct ne fournit qu'une authentification de serveur à serveur et n'est pas recommandée pour une utilisation directe par le client. L'entrée client doit être acheminée via un serveur d'application intermédiaire pour une authentification sécurisée avec l'API Live.
Historique de la conversation
Bien que le modèle suive les interactions pendant la session, l'historique de la conversation n'est pas stocké. À la fin d'une session, le contexte correspondant est effacé.
Pour restaurer une session précédente ou fournir au modèle le contexte historique des interactions utilisateur, l'application doit gérer son propre journal de conversation et utiliser un message BidiGenerateContentClientContent
pour envoyer ces informations au début d'une nouvelle session.
Durée maximale de la session
La durée de la session est limitée à 15 minutes pour l'audio ou à 2 minutes pour l'audio et la vidéo. Lorsque la durée de la session dépasse la limite, la connexion est interrompue.
Le modèle est également limité par la taille du contexte. L'envoi de grands blocs de contenu en plus des flux vidéo et audio peut entraîner la fin prématurée de la session.
Détection de l'activité vocale (VAD)
Par défaut, le modèle effectue automatiquement la détection de l'activité vocale (VAD) sur un flux d'entrée audio continu. La VAD peut être configurée avec le champ RealtimeInputConfig.AutomaticActivityDetection
du message de configuration.
Lorsque le flux audio est mis en pause pendant plus d'une seconde (par exemple, lorsque l'utilisateur éteint le micro), un événement AudioStreamEnd
est envoyé pour vider tout contenu audio mis en cache. Le client peut reprendre l'envoi de données audio à tout moment.
Vous pouvez également désactiver la VAD automatique en définissant RealtimeInputConfig.AutomaticActivityDetection.disabled
sur true
dans le message de configuration. Dans cette configuration, le client est chargé de détecter la parole de l'utilisateur et d'envoyer des messages ActivityStart
et ActivityEnd
au moment opportun. Aucun AudioStreamEnd
n'est envoyé dans cette configuration. Au lieu de cela, toute interruption du flux est signalée par un message ActivityEnd
.
Autres limites
Le point de terminaison manuel n'est pas accepté.
Les entrées et les sorties audio ont un impact négatif sur la capacité du modèle à utiliser l'appel de fonction.
Nombre de jetons
Le nombre de jetons n'est pas accepté.
Limites de débit
Les limites de débit suivantes s'appliquent:
- 3 sessions simultanées par clé API
- 4 millions de jetons par minute
Messages et événements
BidiGenerateContentClientContent
Mise à jour incrémentielle de la conversation en cours envoyée par le client. Tout le contenu est ajouté sans condition à l'historique de la conversation et utilisé dans l'invite envoyée au modèle pour générer du contenu.
Un message s'affichera pour interrompre toute génération de modèle en cours.
Champs | |
---|---|
turns[] |
Facultatif. Contenu ajouté à la conversation en cours avec le modèle. Pour les requêtes à un seul tour, il s'agit d'une instance unique. Pour les requêtes multitours, il s'agit d'un champ répété contenant l'historique de la conversation et la dernière requête. |
turn_complete |
Facultatif. Si la valeur est "true", la génération de contenu du serveur doit commencer par l'invite actuellement accumulée. Sinon, le serveur attendra d'autres messages avant de commencer la génération. |
BidiGenerateContentRealtimeInput
Entrée utilisateur envoyée en temps réel.
Cette méthode diffère de ClientContentUpdate
de plusieurs manières:
- Peut être envoyé en continu sans interruption pour la génération du modèle.
- Si vous devez mélanger des données entrelacées sur
ClientContentUpdate
etRealtimeUpdate
, le serveur tente d'optimiser la réponse, mais aucune garantie n'est fournie. - La fin du tour n'est pas spécifiée explicitement, mais dérive de l'activité de l'utilisateur (par exemple, la fin de la parole).
- Même avant la fin du tour, les données sont traitées de manière incrémentielle pour optimiser le démarrage rapide de la réponse du modèle.
- Il est toujours considéré comme l'entrée de l'utilisateur (ne peut pas être utilisé pour renseigner l'historique des conversations).
Champs | |
---|---|
media_chunks[] |
Facultatif. Données d'octets intégrées pour l'entrée multimédia. |
activity_start |
Facultatif. Indique le début de l'activité de l'utilisateur. Cette information ne peut être envoyée que si la détection automatique (c'est-à-dire côté serveur) de l'activité est désactivée. |
activity_end |
Facultatif. Indique la fin de l'activité de l'utilisateur. Cette information ne peut être envoyée que si la détection automatique (c'est-à-dire côté serveur) de l'activité est désactivée. |
ActivityEnd
Ce type ne comporte aucun champ.
Indique la fin de l'activité de l'utilisateur.
ActivityStart
Ce type ne comporte aucun champ.
Un seul des champs de ce message doit être défini à la fois. Indique le début de l'activité de l'utilisateur.
BidiGenerateContentServerContent
Mise à jour incrémentielle du serveur générée par le modèle en réponse aux messages client.
Le contenu est généré aussi rapidement que possible, et non en temps réel. Les clients peuvent choisir de mettre en mémoire tampon et de lire le contenu en temps réel.
Champs | |
---|---|
turn_complete |
Uniquement en sortie. Si la valeur est "true", cela signifie que la génération du modèle est terminée. La génération ne commencera qu'en réponse à des messages client supplémentaires. Peut être défini avec |
interrupted |
Uniquement en sortie. Si la valeur est "true", cela indique qu'un message client a interrompu la génération de modèle en cours. Si le client lit le contenu en temps réel, c'est un bon signal pour arrêter et vider la file d'attente actuelle. Si le client lit le contenu en temps réel, c'est un bon signal pour arrêter et vider la file d'attente de lecture actuelle. |
generation_complete |
Uniquement en sortie. Si la valeur est "true", cela signifie que la génération du modèle est terminée. Lorsque le modèle est interrompu pendant la génération, aucun message "generation_complete" n'est envoyé pendant le tour interrompu. Il passe par "interrupted > turn_complete". Lorsque le modèle suppose une lecture en temps réel, un délai s'écoule entre generation_complete et turn_complete, car le modèle attend la fin de la lecture. |
grounding_metadata |
Uniquement en sortie. Les métadonnées spécifient les sources utilisées pour ancrer le contenu généré. |
input_transcription |
Facultatif. Saisissez la transcription. La transcription est indépendante du tour du modèle, ce qui signifie qu'elle n'implique aucun ordre entre la transcription et le tour du modèle. |
output_transcription |
Facultatif. Transcription de sortie. La transcription est indépendante du tour du modèle, ce qui signifie qu'elle n'implique aucun ordre entre la transcription et le tour du modèle. |
model_turn |
Uniquement en sortie. Contenu généré par le modèle dans le cadre de la conversation en cours avec l'utilisateur. |
Transcription
Message de transcription audio.
Champs | |
---|---|
text |
Facultatif. Texte de la transcription. |
finished |
Facultatif. La valeur booléenne indique la fin de la transcription. |
BidiGenerateContentSetup
Message à envoyer dans le premier et seul message client. Contient la configuration qui s'appliquera pendant toute la durée de la session de streaming.
Les clients doivent attendre un message BidiGenerateContentSetupComplete
avant d'envoyer des messages supplémentaires.
Champs | |
---|---|
model |
Obligatoire. Nom complet du modèle de l'éditeur. Format du modèle d'éditeur: |
generation_config |
Facultatif. Configuration de génération. Les champs suivants ne sont pas acceptés:
|
system_instruction |
Facultatif. Instructions système fournies par l'utilisateur pour le modèle. Remarque : Seul du texte doit être utilisé dans les parties et le contenu de chaque partie figurera dans un paragraphe distinct. |
tools[] |
Facultatif. Liste des Un |
session_resumption |
Facultatif. Configure le mécanisme de reprise de session. Si elle est incluse, le serveur envoie des messages |
context_window_compression |
Facultatif. Configure le mécanisme de compression de la fenêtre de contexte. Si cette valeur est incluse, le serveur compresse la fenêtre de contexte pour qu'elle s'adapte à la longueur donnée. |
realtime_input_config |
Facultatif. Configure la gestion des entrées en temps réel. |
input_audio_transcription |
Facultatif. La transcription de l'entrée correspond à la langue audio de l'entrée. |
output_audio_transcription |
Facultatif. La transcription de la sortie correspond au code de langue spécifié pour l'audio de sortie. |
AudioTranscriptionConfig
Ce type ne comporte aucun champ.
Configuration de la transcription audio.
BidiGenerateContentSetupComplete
Ce type ne comporte aucun champ.
Envoyée en réponse à un message BidiGenerateContentSetup
du client.
BidiGenerateContentToolCall
Demandez au client d'exécuter function_calls
et de renvoyer les réponses avec les id
correspondants.
Champs | |
---|---|
function_calls[] |
Uniquement en sortie. Appel de fonction à exécuter. |
BidiGenerateContentToolCallCancellation
Notification au client indiquant qu'une ToolCallMessage
précédemment émise avec les id
spécifiées n'aurait pas dû être exécutée et doit être annulée. Si ces appels d'outils ont des effets secondaires, les clients peuvent essayer de les annuler. Ce message ne s'affiche que lorsque les clients interrompent les tours du serveur.
Champs | |
---|---|
ids[] |
Uniquement en sortie. ID des appels d'outil à annuler. |
BidiGenerateContentToolResponse
Réponse générée par le client à un ToolCall
reçu du serveur. Les objets FunctionResponse
individuels sont mis en correspondance avec les objets FunctionCall
respectifs par le champ id
.
Notez que dans les API GenerateContent unary et server-streaming, l'appel de fonction s'effectue en échangeant les parties Content
, tandis que dans les API GenerateContent bidi, l'appel de fonction s'effectue sur cet ensemble de messages dédié.
Champs | |
---|---|
function_responses[] |
Facultatif. Réponse aux appels de fonction. |
RealtimeInputConfig
Configure le comportement des entrées en temps réel dans BidiGenerateContent
.
Champs | |
---|---|
automatic_activity_detection |
Facultatif. Si ce champ n'est pas défini, la détection automatique des activités est activée par défaut. Si la détection vocale automatique est désactivée, le client doit envoyer des signaux d'activité. |
activity_handling |
Facultatif. Définit l'effet de l'activité. |
turn_coverage |
Facultatif. Définit l'entrée incluse au tour de l'utilisateur. |
ActivityHandling
Différentes façons de gérer l'activité des utilisateurs.
Enums | |
---|---|
ACTIVITY_HANDLING_UNSPECIFIED |
Si aucune valeur n'est spécifiée, le comportement par défaut est START_OF_ACTIVITY_INTERRUPTS . |
START_OF_ACTIVITY_INTERRUPTS |
Si la valeur est "true", le début de l'activité interrompt la réponse du modèle (également appelé "barrage"). La réponse actuelle du modèle sera interrompue au moment de l'interruption. Il s'agit du comportement par défaut. |
NO_INTERRUPTION |
La réponse du modèle ne sera pas interrompue. |
AutomaticActivityDetection
Configure la détection automatique de l'activité.
Champs | |
---|---|
start_of_speech_sensitivity |
Facultatif. Détermine la probabilité de détection de la parole. |
end_of_speech_sensitivity |
Facultatif. Détermine la probabilité que la parole détectée soit terminée. |
prefix_padding_ms |
Facultatif. Durée requise de la parole détectée avant que le début de la parole ne soit validé. Plus cette valeur est faible, plus la détection du début de la parole est sensible et plus la parole peut être courte. Cependant, cela augmente également la probabilité de faux positifs. |
silence_duration_ms |
Facultatif. Durée requise du silence (ou du contenu audio non vocal) détecté avant que la fin de la parole ne soit validée. Plus cette valeur est élevée, plus les pauses de parole peuvent être longues sans interrompre l'activité de l'utilisateur. Toutefois, cela augmente la latence du modèle. |
disabled |
Facultatif. Si cette option est activée, la saisie vocale et textuelle détectée est comptabilisée comme activité. Si elle est désactivée, le client doit envoyer des signaux d'activité. |
EndSensitivity
Fin de la sensibilité de la fin de voix.
Enums | |
---|---|
END_SENSITIVITY_UNSPECIFIED |
La valeur par défaut est END_SENSITIVITY_LOW. |
END_SENSITIVITY_HIGH |
La détection automatique met fin à la parole plus souvent. |
END_SENSITIVITY_LOW |
La détection automatique met fin à la parole moins souvent. |
StartSensitivity
Début de la sensibilité de la voix.
Enums | |
---|---|
START_SENSITIVITY_UNSPECIFIED |
La valeur par défaut est START_SENSITIVITY_LOW. |
START_SENSITIVITY_HIGH |
La détection automatique détectera plus souvent le début de la parole. |
START_SENSITIVITY_LOW |
La détection automatique détectera moins souvent le début de la parole. |
TurnCoverage
Options concernant l'entrée incluse dans le tour de l'utilisateur.
Enums | |
---|---|
TURN_COVERAGE_UNSPECIFIED |
Si aucune valeur n'est spécifiée, le comportement par défaut est TURN_INCLUDES_ALL_INPUT . |
TURN_INCLUDES_ONLY_ACTIVITY |
Le tour de l'utilisateur n'inclut que l'activité depuis le dernier tour, à l'exclusion de l'inactivité (par exemple, le silence sur le flux audio). |
TURN_INCLUDES_ALL_INPUT |
Le tour de l'utilisateur inclut toutes les entrées en temps réel depuis le dernier tour, y compris l'inactivité (par exemple, le silence sur le flux audio). Il s'agit du comportement par défaut. |
UsageMetadata
Métadonnées sur l'utilisation du contenu mis en cache.
Champs | |
---|---|
total_token_count |
Nombre total de jetons consommés par le contenu mis en cache. |
text_count |
Nombre de caractères de texte. |
image_count |
Nombre d'images. |
video_duration_seconds |
Durée de la vidéo en secondes. |
audio_duration_seconds |
Durée de l'audio en secondes. |
GoAway
Le serveur ne pourra bientôt plus répondre aux demandes des clients.
Champs | |
---|---|
time_left |
Temps restant avant que la connexion ne soit arrêtée en tant que "ABORTED". La durée minimale renvoyée ici est spécifiée différemment, ainsi que les limites de débit pour un modèle donné. |
SessionResumptionUpdate
Mise à jour de l'état de reprise de la session.
N'est envoyé que si BidiGenerateContentSetup.session_resumption
a été défini.
Champs | |
---|---|
new_handle |
Nouveau gestionnaire représentant l'état pouvant être repris. Vide si |
resumable |
"True" si la session peut être reprise à ce stade. Il est possible que vous ne puissiez pas reprendre la session à certains moments. Dans ce cas, nous envoyons une mise à jour de new_handle vide et resumable=false. Par exemple, le modèle exécute des appels de fonction ou génère simplement. La reprise de la session (à l'aide du jeton de session précédent) dans cet état entraînera une perte de données. |
last_consumed_client_message_index |
Indice du dernier message envoyé par le client qui est inclus dans l'état représenté par ce SessionResumptionToken. N'est envoyé que lorsque La présence de cet indice permet aux utilisateurs de se reconnecter de manière transparente et d'éviter de perdre une partie de l'entrée audio/vidéo en temps réel. Si le client souhaite se déconnecter temporairement (par exemple, en raison de la réception de GoAway), il peut le faire sans perdre l'état en mettant en mémoire tampon les messages envoyés depuis le dernier Il ne sera pas utilisé pour la "reprise de l'état de restauration" plus tard. Dans ce cas, les images audio et vidéo partielles ne sont probablement pas nécessaires. |
Étape suivante
- En savoir plus sur les appels de fonction
- Pour obtenir des exemples, consultez la documentation de référence sur l'appel de fonction.