Concepts / Emotions
Emotions
There is no emotion API. Nothing in the product classifies the feeling of an utterance and tells your app about it. What does exist is tone matching, which the server does on its own, without a switch to turn on and without an event to subscribe to.
ZeliEvent.EMOTION_DETECTED, EmotionEvent and
AvatarConfig.emotion_responsive are reserved. No
server sends an emotion frame, so the handler never runs; the configuration
field is never transmitted, so setting it changes nothing. They are still
exported, because both packages are published and deleting a name a program has
already typed would break a build to remove a branch that costs nothing. Kept is
not the same as working, and this page is the one place that says so plainly.
What actually happens instead
The server picks a tone clip per reply, by itself, from whatever tone variants the avatar you chose happens to have. You do not ask for it and you cannot switch it off. There is no classification step your app can see, and no event in the middle.
Two things you can observe, and they are the honest substitutes:
- Which tone was used. The reply frame carries the face that delivered it, so a transcript line can be labelled with the tone actually on screen. See Avatars and tones.
- Which tones exist. The session announces the avatar's tone variants when it opens, so your UI can say what this avatar is capable of rather than guessing. Coverage is per avatar: a reply can be neutral simply because that face has no clip for what the words are doing.
If you need the feeling of a turn
Classify it yourself, on the text you already have. Your app sees every user message and every assistant reply, so the sentiment of a turn is something you can decide with your own model and your own thresholds, and then act on in your own UI. That is a real option today, and it does not depend on anything here changing.
It used to teach the opposite: a worked example setting
emotion_responsive=True, a handler printing
event.emotion, and a note explaining which channel the events
arrive on. None of that ever ran. Deleting the page would leave the same wrong
idea in everyone's notes with nothing to correct it, so it says what is true
instead.