Aller au contenu
Console
Try one

    Sessions et contexte

    Transmettez un contexte stable de session, d'utilisateur, d'appareil et de traçage dans les requêtes des SDK Thalovant.

    Les champs de session et de contexte permettent à votre produit de garder les requêtes au hub rattachées au bon parcours utilisateur.

    Utilisez-les quand un client a besoin de mémoire, de traçage, de journaux d’audit, de personnalisation ou d’appels d’outils autour d’une requête.

    ChampPortéePourquoi c’est important
    session_idPlusieurs requêtesGarde regroupés les éléments d’une conversation ou d’un parcours.
    request_idUne requêteDonne aux journaux et aux dossiers de soutien une clé de traçage stable.
    contextUne requête ou une sessionTransporte des métadonnées du produit sans modifier l’énoncé.
    site_idIdentité du clientNomme le client ou le runtime déployé.

    Ce sont des champs d’application. Le session_id d’une conversation ne remplace ni l’identité du client ni les clés enregistrées par le SDK. Une reconnexion ouvre une nouvelle session chiffrée; gardez le même ID de session d’application pour les tours liés, et conservez les clés enregistrées par le SDK d’une reconnexion et d’un redémarrage à l’autre.

    Les libellés de session et d’utilisateur n’accordent aucune autorisation et ne garantissent pas une mémoire durable. Les compétences décident de la façon dont elles utilisent le contexte, et la mémoire durable a sa propre API et ses propres contrôles d’accès. Un request_id sert à associer les réponses; il ne garantit pas l’idempotence d’une action répétée.

    Le hub peut remplacer par le sien un ID de session fourni par le client. Ask exige l’ID de requête correspondant : un ID de session modifié ne fait donc pas perdre la réponse. Les filtres d’événements de plus bas niveau conservent leur traitement documenté des événements sans ID. Utilisez les fonctions de corrélation du SDK au lieu d’exiger que l’ID de session renvoyé soit identique à celui envoyé.

    Générez un nouvel ID de requête pour chaque Ask logique et un nouvel ID Query pour chaque Query logique. Les SDK de haut niveau refusent un collecteur actif en double sur le même client. Ask et Query utilisent des espaces de noms indépendants. Un appel ultérieur a quand même besoin d’un nouvel ID, y compris après une annulation, parce que des réponses distantes en retard peuvent survivre au collecteur précédent.

    Commencez par des champs qui vous aident à déboguer et à personnaliser sans risque :

    Clé de contexteExempleUtilisation
    user_iduser-42Rattacher la requête à un utilisateur de l’application sans envoyer de données de profil privées.
    user_nameAdaPermettre aux compétences de s’adresser à l’utilisateur quand c’est utile.
    sourcekiosk-checkoutIdentifier l’application, l’appareil ou le parcours d’entrée.
    platformwebDistinguer le comportement navigateur, mobile, service et embarqué.
    localeen-USPrivilégier une langue de réponse ou un style de mise en forme.
    trace_idreq-2026-06-05-001Relier les journaux du SDK, du service et du hub.
    from uuid import uuid4
    from thalovant import ThalovantClient, build_client_context
    request_id = str(uuid4())
    context = build_client_context(
    user_id="user-42",
    user_name="Ada",
    source="checkout-kiosk",
    platform="kiosk",
    locale="en-US",
    metadata={"trace_id": request_id},
    )
    with ThalovantClient.from_identity_file("_identity.json") as client:
    reply = client.ask(
    "What should happen next?",
    session_id="checkout-session",
    request_id=request_id,
    context=context,
    )
    1. Gardez les identifiants stables. Réutilisez session_id pour toute la conversation ou tout le parcours.
    2. Gardez les ID de requête uniques. Générez un nouveau request_id pour chaque envoi.
    3. Gardez le contexte léger. Envoyez des libellés, des ID et des indications de routage plutôt que de grosses charges utiles.
    4. Laissez les secrets de côté. Ne passez pas de jetons, de mots de passe ni de matériel d’identité brut dans le contexte.
    5. Gardez des noms génériques. Modélisez les rôles et les parcours du produit dans votre application, puis passez des métadonnées neutres au SDK.

    Session de clavardage

    Un session_id par conversation visible, avec un request_id par tour.

    Session de parcours

    Un session_id par tâche, passage à la caisse, formulaire ou processus guidé.

    Session d'appareil

    Un session_id par fenêtre d’interaction avec l’appareil, associé à un site_id stable.

    Trace de service

    Un ID de trace de service copié dans le contexte de la requête et dans les journaux.