This is the multi-page printable view of this section.
Click here to print.
Return to the regular view of this page.
TV none use case
TV none use case
Global use case developed by Aura Platform Team that allows searching content related with the user’s utterance when the intent is intent.tv.none
Introduction
The TV none use case is a global experience designed and developed by Aura Global Team that allows Telefónica customers to ask Aura using a vocal interface.
Find additional information in following the documents:
Specifications
Kernel API
In order to resolve the user’s request, Aura uses Video Contents normalized Kernel API.
Request-response model
TV none use case is adapted to the new request-response normalized model v3.
Available channels
Once TV none v3 use case is fully normalized, it will be available for any channel that implements normalized v3 request-response model including TV related data.
Currently, STB channels in BR are already available.
Display features
Currently, the normalized TV none use case includes basic search features for content/channels:
- none search content/channels with user normalized utterance
Therefore, the answer could be any provided by the recognized intent: intent.tv.none
Use case development
The TV none use case development includes these components:
Understanding features
-
TV none use case intent: intent.tv.none
-
TV none use case entities: Ignore the entities for search content/channels, use normalized utterance for contigency search.
In order to understand users’ requests (utterances), Aura is trained with:
- NLP expression to recognize the user’s utterance and detect her intention.
- TV catalog in order to understand TV content (channels) in the user’s utterance and detect them as Aura entities.
Use case logic
Once Aura has recognized the user’s utterance based on NLP components, the use case should be resolved based on:
1 - Dialog configuration
Configuration of the generic dialog for TV none use case
How the generic dialog must be configured for this use case
Specific configuration
The TV none use case is triggered by the generic dialog v3.
For this use case, the required specific configuration is set below:
{
"id": "generic-dialog-v3",
"channelDataVersion": "v3",
"triggerConditions": [
{
"intent": "intent.tv.none",
"settings": {
"locales": {
"error": [
"core:flc.answer.error"
]
},
"needTvResolution": true
}
}
],
"onlyIn": [
"set-top-box"
]
}
Specific values
| Key |
Value |
Description |
| triggerConditions[?].settings.needTvResolution |
true |
Get resolution from resolution API |
2 - TV None plugin
TV none plugin
Complex Logic Framework plugin for the TV none use case
Introduction
The TV none plugin resolves the request from a user getting information about channel.
It includes some key steps described in the following sections.
This step validates that the input request fulfills all the requirements from the input schema.
If the input data has an error, the resource returned is:
tv:video.model-validation.request.error.
Contingency Search
The contingency search is a more in-depth search to get, at least, one response. This search uses the entire utterance in every search field.
Contingency search is based on the following steps:
Normalization section
When a request is made by the user, it is possible to find certain words with no real value for Aura, so the system is not able to redirect them to obtain a response. For this reason, a list of forbidden words known as “ignore-words” will be declared, which will be eliminated.
The first step is to transform the entire utterance received as input to lowercase, removing all non-alphanumeric characters and separators. Once the utterance has been normalized, the words that belong to the list of “ignore-words” are eliminated.
This list is declared in a resource file called normalizer_rules.json. This file can be found in the following path:
src.aura_clf_video.resources.[language].normalizer_rules.json
Where [language] must be replaced by each language, for example: es-es.
If the language does not have the normalizer rule defined, it will be redirected to a default folder:
src.aura_clf_video.resources.default.normalizer_rules.json
If, for example, the language is Spanish, the path to the resource where the normalization rules are defined will be:
src.aura_clf_video.resources.es-es.normalizer_rules.json
-
Normalizer rules structure:
It is a dictionary where all the items are declared in a list as shown below:
{
"ignore_items": [
"ignore item 1",
"ignore item 2"
]
}
-
Validation of resource content:
The normalization is done sequentially, a previous rule cannot affect a succeeding one.
For example:
- The utterance is “ok aura some”.
- We define “aura” and also “ok aura” in the “ignore-words” list.
- If we remove “aura” firstly from the original utterance, we obtain the following normalized utterance: “ok some”. In this case, “ok aura” does not have any effect.
- In short, the correct order should be: first, remove “ok aura” and, after that, remove “aura”. In this case, we will obtain the final utterance as “some”.
“Ignore-words” will be automatically validated in order to prevent this behavior in every Pull Request.
If after normalization the normalized phrase is empty, the resource returned is:
tv:video.search.contingency.no-results
API video query
After normalizing, we will query the Telefonica Kernel video API by searching through all possible fields with the remaining words.
To make this API call, a series of parameters are going to be needed, which are described below:
user_id: Input data[aura_user][user_id]
administrative_number: Input data[app_context][user][account_number]
access_token: Input data[aura_user][access_token]
scopes: Input data[aura_user][scopes]
purposes: Input data[aura_user][purposes]
device_type: Input data[app_context][device][type]
catalog_types: List that is made by VOD, LIVE and L7D.
search_query: Is a joint of the normalized phrase by OR operator. Use this format to search by any fields. Example: “La resistencia Shameless” the search_query is “(La OR resistencia OR Shameless)”.
show_series: series.
profile: Input data[app_context][user][video_profile_name]. This field may not be implemented in some cases and this could give the error 501 Not Implemented in the video API according to the documentation.
To prevent this problem, we should send this field only when input data has this value.
commercialization_types: List made by SVOD.
max_quality: Input data[app_context][device][max_quality]
order: personal
current_region: Input data[app_context][location][currentRegion] if exists. Otherwise, do not use this param.
Contingency search response
When performing a contingency search, there are four possible scenarios for the response received by the search:
a. Receive an API error. The returned resource is tv:video.api.answer.error
b. Receive no results at all. The returned resource is tv:video.search.contingency.no-results
c. Receive a single result. The returned resource is tv:video.search.contingency.single-result
d. Receive several results. The returned resource is tv:video.search.contingency.multiple-results
Response
The response follows this response schema.
Where:
-
intent: input intent.
-
entities: input entities.
-
result_intent: This field is always MEDIA.SEARCH because it is the response associated to this domain.
-
resources: List of response resources that includes three main parameters:
-
payload: Information provided by the Kernel API, when we make the search request.
If we receive a response. This field includes the following parameters:
type: The value of this field depends on the type of data included in the field data (info returned by the API):
- If it is a value:
details
- If it is a list:
content_list
data: It returns the information provided by the Kernel API.
-
status: Final status request. this field includes field the following parameters:
code: Status code.
message: Status message, which describes the status code.
params: Parameter that sends details of status. This field does not appear if it is empty.
-
actions: Actions to follow with the result of request.
-
conditions: Condition for the actions to be applied.
3 - TV none resources
TV none use case resources
Resources used by the TV none use case
The TV none use case will use three different types of resources:
Specific resources for the use case: tv.none
The resources associated to the TV none plugin are defined below:
| Specific resources for tv.none use case |
Definition |
Example |
Managed by |
Scope |
tv:video.search.contingency.no-results |
Resource returned when the contingency search does not find any result |
No he encontrado nada |
tv.none plugin |
Use case-specific |
tv:video.search.contingency.single-result |
Resource returned when the contingency search finds one result |
Este es el resultado que he encontrado |
tv.none plugin |
Use case-specific |
tv:video.search.contingency.multiple-results |
Resource returned when the contingency search finds more than one result |
Estos son los resultados que he encontrado |
tv.none plugin |
Use case-specific |
4 - NLP configuration by OB
NLP configuration by OB
NLP configuration by OB for the TV None use case
Introduction
The current document includes the configuration of the NLP model for the TV None use case in the OBs where it is available.
Brazil
The aura-nlpdata repository structure in Brazil is organized by channel: aura-nlpdata-br-[channel]. Each repository will contain the files for the available use cases in this channel.
The following configuration corresponds to the STB channel, which is included in the repository: https://github.com/Telefonica/aura-nlpdata-br-stb
Intent
intent.tv.none
Entities
- No use specific entities to obtain results.
Pipeline stages
The following stages of STB’s pipeline have been used to develop this UC:
The whole pipeline.jsonfile is available at: https://github.com/Telefonica/aura-nlpdata-br-stb/blob/master/data/pt-br/stb/pipeline.json