L’objet state
Chaque template est rendu avec deux variables de premier niveau : state (tout ce qui concerne la conversation en cours) et skdwn (l’instance active de l’assistant). Lisez-les pour décider de ce qu’il faut afficher.
state
| Variable | Contenu |
|---|---|
state.query | Le texte actuellement dans le champ de recherche. |
state.results | Le tableau des échanges jusqu’ici (questions, réponses, formulaires, accueil). |
state.isLoading | true pendant l’exécution d’une requête : utilisez-le pour afficher l’indicateur de chargement. |
state.config | La configuration complète de l’assistant (paramètres, suggestions, formulaires, traductions). |
state.name | Le nom d’affichage de l’assistant. |
state.instance | L’instance du connecteur (également accessible via skdwn.instance). |
state.attachmentResponses | Les résumés générés pour les pièces jointes. |
state.followUps | Les questions de relance suggérées, le cas échéant. |
skdwn
skdwn.instance est l’assistant en cours d’exécution. Les éléments que vous utiliserez dans les templates :
skdwn.instance.config: la configuration fusionnée.skdwn.instance.helpers: les helpers que vous appelez depuisonclick/oninput.skdwn.instance.templates: tous les templates actifs, par nom.skdwn.instance.startOptions: les options avec lesquelles la page a démarré l’assistant (y compris votreadditionalContext).
Lire l’état
{% if state.isLoading %}
{% include 'loading' %}
{% elsif state.results.length == 0 %}
{% include 'welcome' %}
{% else %}
{% include 'results' %}
{% endif %}
Activez le débogage pendant la construction
Démarrez l’assistant avec isDebug: true et Seekdown journalise l’état avant chaque rendu : vous voyez exactement de quoi dispose votre template. Vous pouvez aussi insérer {{ state | log }} dans un template pour afficher l’état directement.