Categories:
Description of Aura bot conversational-search-dialog, that is specifically designed to resolve the advanced TV recommendation using LLMs in ATRIA and complex logic resolution.
Introduction
The conversational-search-dialog is specifically designed to resolve the advanced recommendation, using LLMs in ATRIA. Specifically the LLM configured for TV Conversational Search UC.
You can check its source code in Github:
- conversational-search-dialog.ts.
- conversational-search-v3-dialog.ts. Currently, this dialog is available for Aura channelData V1 and V3 versions.
For this use case, the required specific configuration is set below:
{
"channelDataVersion": "v3", // Only in Aura channelData V3 version
"id": "conversational-search-dialog-v3",
"allowAnonymous": true,
"triggerConditions": [
{
"intent": "intent.conversational.search",
"settings": {
"locales": {
"error": [
"core:flc.answer.error"
]
},
"needTvResolution": true
}
}
],
"bypass": {
"duration": 60,
"payloadName": "openai",
"initialData": {},
"recognizersEnabled": true,
"recognizersBreakIntents": {
"intent.tv.display": [],
"intent.navigation.section_show": []
}
}
}
Specific values
| Key | Value | Description |
|---|---|---|
| bypass.duration | 60 (minutes) | This value overwrites the default aura-bot value for bypass lasting 10 minutes. |
| bypass.payloadName | openai | Name of the interface that will be used as bypass payload for this dialog. |
| bypass.initialData | empty | It should contain any data needed by the dialog to be initialized. |
| bypass.recognizersEnabled | true | This value overwrites the default aura-bot way of working with recognizers when it is in bypass mode. If it is set to true, recognizers are executed, and their result is stored in the bypass payload to be used, if needed, afterwards. |
| bypass.recognizersBreakIntents | Array of intents | Used to handle when the user requested any other use case during the execution of the TV Conversational Search UC. |
Configuration by channel
For this dialog it is necessary to add the configuration of applicationId and presetId per channel and intent in the channel model.
For this use case, the required specific configuration per channel is set below:
{
"atria": {
"dialogs": {
"intent.conversational.search": {
"applicationId": "816bdab6-3ea3-4a77-bdea-12945d6d7053",
"presetId": "acdef02f-f810-4474-8143-6b2a04a042f8"
}
}
}
}
Environment variables
| Property | Type | Description | Mandatory |
|---|---|---|---|
| AURA_AUTHORIZATION_HEADER | string | Authorization header to be sent to AURA_GATEWAY_API_ENDPOINT |
yes |
| AURA_COMPLEX_LOGIC_ENDPOINT | string | URL of Complex Logic endpoint to interact with resolution API. | yes |
| AURA_GATEWAY_API_ENDPOINT | string | URL of Aura Gateway API endpoint | yes |
| AURA_GATEWAY_API_ISSUER_URL | string | Issuer URL for token info | yes |
| AURA_CHANNELDATA_DEFAULT_VERSION | string | Default version of channelData. By default 1.0.0. |
no |
| AURA_CHANNELDATA_LA_DEFAULT_VERSION | string | Default version of channelData for Latin America. By default 2.0.0. |
no |
| CONVERSATIONAL_SEARCH_MAX_TAGS | number | Default number of max tags to manage in the dialog. By default 4. |
no |
| CONVERSATIONAL_SEARCH_TAGS_SCORE_THRESHOLD | number | Default number with minimum score threshold required for a tag to be considered relevant in a TV Conversational Search. Value of this variable oscillates between 0 and 1. By default 0. |
no |
How it works
Steps
- The dialog starts by init bypass mode.
- Then, it checks if the iteration comes from the Triage recognizer, by setting the user’s text to the fixed phase of resource:
tv-conversational-search:command.recommendand then calling the AI service. - If the iteration originated because there were no results, it will return the text obtained from the resource:
tv-conversational-search:command.no-resultsto the user. - Then, it calls the AI service to get a generative response based on the intent and the current session ID. The session ID is updated in the context for future requests.
- Next, with the response obtained from the LLM, the user will be composed of the following:
- If the generative response returns command info, It will be checked if the command is
EXITso the bypass will be closed and the resource:tv-conversational-search:command.exitwill be returned to the user. - If the generative response returns tags info, it calls the complex logic service to get a resolution based on the intent and tags from the generative response. If the tags are not valid or not meet a threshold or there are no results, the resource will be returned:
tv-conversational-search:command.no-results. Instead, ff content exists, it will be returned in the channel data, but the text of the result shown to the user will always be the one obtained from generative response. - If the generative response returns text info, this text is included in response of user, unless there are no results, as we indicated in the previous paragraph, a specific resource will be returned.
- If the generative response returns command info, It will be checked if the command is
- Finally, it sends the activity to the user and ends the dialog.
- The bypass will only be closed if these two conditions are met:
- The ‘EXIT’ command is detected.
- A new user intent configured that match those configured in the dialog in field:
recognizersBreakIntents.
Sequence diagram
sequenceDiagram
autonumber
participant User
participant Dialog
participant AI Services
participant Complex Logic
Dialog->>Dialog: Open dialog
Dialog->>Dialog: Init bypass mode and check interaction origin
alt interaction origin is no-results
Dialog->>User: Send activity to user with command no-results text
Dialog->>Dialog: End dialog
else interaction origin is triage
Dialog->>Dialog: set text to send LLM with command recommend.
end
Dialog->>Dialog: continue bypass
alt user intent recognized match with break intent configured
Dialog->>Dialog: Close bypass
Dialog->>User: Send activity to user with command exit text
else user intent is not break intent configured
Dialog->>Dialog: continue bypass
Dialog->>AI Services: Call AI service with intent and session ID
AI Services->>Dialog: Return generative response and session ID
alt generative response contains a 'EXIT' command
Dialog->>Dialog: Close bypass
Dialog->>User: Send activity to user with command exit text
Dialog->>Dialog: End dialog
else generative response contains tags
alt tags are valid
Dialog->>Complex Logic: Call complex logic service with intent and tags
Complex Logic->>Dialog: Return resolution
alt No content found in resolution
Dialog->>User: Send activity to user with command no-results text
else Content found
Dialog->>User: Send activity to user with text of generative response and resolution
end
else tags are invalid
Dialog->>User: Send activity to user with command no-results text
end
else generative response contains text
Dialog->>User: Send activity to user with text of generative response
end
end
Dialog->>Dialog: End dialog
Last modified October 2, 2025: feat: Create recognizer for video triage #AURA-29855 [RTM] (30baa1a1)