System and method for improving media playback response time in contact centers
A system and method are provided to predict media playback requests of media files to decrease response times to the media playback requests. The system includes a processor and a computer readable medium operably coupled thereto, to perform predictive caching operations which include receiving metadata from an interaction stream after recording a media file of an interaction, determining contacts corresponding to users identified in the metadata that are recorded in the media file from the metadata, accessing an ML model for predictive caching of media files, determining, using the ML model and a plurality of model features for the ML model, a first prediction for a first playback of the media file, predicting the first playback of the media file by at least one of the contacts based on the first prediction, caching the media file in the data cache for a time period based on the predicting.
1 . A machine learning (ML) system configured to predict media playback requests of media files to decrease response times to the media playback requests, the ML system comprising a processor and a computer readable medium operably coupled thereto, the computer readable medium comprising a plurality of instructions stored in association therewith that are accessible to, and executable by, the processor, to perform predictive caching operations which comprise:
training an ML model to predict the media playback requests by the tenant of the media files for predictive caching of the media files on behalf of the tenant, wherein the training comprises:
retrieving contact table data for a selected time period to train the ML model,
retrieving the prior playback audit data of past media playbacks during the selected time period,
merging the contact table data and the prior playback audit data into training data based on each contact in the contact table data and corresponding ones of the past media playbacks in the prior playback audit data,
cleaning the training data,
preprocessing the training data,
training the ML model based on the training data and a plurality of model features,
testing the ML model using local tests corresponding to the plurality of model features, and
verifying results of the testing,
receiving metadata from an interaction stream after recording a media file of an interaction between a plurality of contacts for a first playback of the media file, wherein the plurality of contacts includes an agent of a tenant associated with the ML system, and wherein the tenant comprises a business entity having a plurality of users including at least one of the plurality of contacts;
determining the plurality of contacts from the metadata for the media file, wherein the plurality of contacts are permitted access to the media file or can request the first playback;
accessing the ML model;
determining, using the ML model and the plurality of model features for the ML model including at least one model feature associated with prior playback audit data of the tenant, a first prediction of a likelihood that the tenant will request that the media file be made available to the plurality of contacts for the first playback, wherein the first prediction is determined for the tenant based on the media file and prior playback audit data associated with the tenant independently from being associated with a single contact of the plurality of contacts;
determining that the one or more of the plurality of contacts of the tenant can utilize a playback application on a server corresponding to the ML system for the first playback;
predicting the first playback of the media file will be requested from the playback application based on the first prediction, wherein the first playback comprises a media player request for the media file on a computing device of one of the plurality of contacts from the playback application on the server, and wherein the first playback is predicted for the tenant independent of playback predictions for the plurality of contacts individually being determined for the first playback;
accessing a data cache of the server corresponding to the ML system, wherein the data cache provides data to a plurality of computing device of the tenant from the server; and
caching the media file in the data cache of the server for a time period based on the predicting.
2 . The ML system of claim 1 , wherein the predictive caching operations further comprise:
receiving, from the one of the plurality of contacts, the media player request for the first playback of the media file during the time period;
loading the media file from the data cache; and
transmitting the media file from the playback application on the server to an application on the computing device of the one of the plurality of contacts.
3 . The ML system of claim 2 , wherein, before loading the media file, the predictive caching operations further comprise:
authenticating the one of the plurality of contacts for access to the media file; and
determining that an amount of time has elapsed since an arrival of the metadata on the interaction stream for the interaction stream that is required to generate the media file.
4 . The ML system of claim 1 , wherein the predictive caching operations further comprise:
determining that the time period for caching the media file has expired; and
removing the media file from the data cache based on the time period having expired.
5 . The ML system of claim 1 , wherein a first percentage of the training data is used to train the ML model for predictive outputs, and wherein a second percentage of the training data is used to train the ML model for accuracy of the predictive outputs.
6 . The ML system of claim 1 , wherein the plurality of model features comprises at least one of a tenant identifier, a team identifier, an agent identifier, a skill identifier, a contact end reason of the interaction, an active duration of the interaction, a contact duration of the interaction, a contact type, a channel of the interaction, a direction of the interaction, or information sent over the interaction stream.
7 . The ML system of claim 1 , wherein, before receiving the media file, the predictive caching operations further comprise:
executing a call to an application programming interface (API) of a media processing service, wherein the media processing service downloads parts of the media file, stitches the media file together using the parts and a media processing library, and uploads the media file with the metadata to a temporary upload location of the data cache,
wherein receiving the media file comprises receiving a URL of the temporary upload location for the media file in a final playable format responsive to the call to the API.
8 . The ML system of claim 1 , wherein the first prediction is associated with an output indicating true for the one of the plurality of contacts to request the first playback, and wherein, if a second prediction for a second playback by the ML model is associated with an output indicating false for the one of the plurality of contacts to request the first playback, a corresponding media file for the second prediction is not cached.
9 . A method to predict media playback requests of media files by a machine learning (ML) system to decrease response times to the media playback requests, the method comprising:
training an ML model to predict the media playback requests by the tenant of the media files for predictive caching of the media files on behalf of the tenant, wherein the training comprises:
retrieving contact table data for a selected time period to train the ML model,
retrieving the prior playback audit data of past media playbacks during the selected time period,
merging the contact table data and the prior playback audit data into training data based on each contact in the contact table data and corresponding ones of the past media playbacks in the prior playback audit data,
cleaning the training data,
preprocessing the training data,
training the ML model based on the training data and a plurality of model features,
testing the ML model using local tests corresponding to the plurality of model features, and
verifying results of the testing,
receiving metadata from an interaction stream after recording a media file of an interaction between a plurality of contacts for a first playback of the media file, wherein the plurality of contacts includes an agent of a tenant associated with the ML system, and wherein the tenant comprises a business entity having a plurality of users including at least one of the plurality of contacts;
determining the plurality of contacts from the metadata for the media file, wherein the plurality of contacts are permitted access to the media file or can request the first playback;
accessing the ML model;
determining, using the ML model and the plurality of model features for the ML model including at least one model feature associated with prior playback audit data of the tenant, a first prediction of a likelihood that the tenant will request that the media file be made available to the plurality of contacts for the first playback, wherein the first prediction is determined for the tenant based on the media file and prior playback audit data associated with the tenant independently from being associated with a single contact of the plurality of contacts;
predicting the first playback of the media file will be requested from the playback application based on the first prediction, wherein the first playback comprises a media player request for the media file on a computing device of one of the plurality of contacts from the playback application on the server, and wherein the first playback is predicted for the tenant independent of playback predictions for the plurality of contacts individually being determined for the first playback;
accessing a data cache of the server corresponding to the ML system, wherein the data cache provides data to a plurality of computing device of the tenant from the server; and
caching the media file in the data cache of the server for a time period based on the predicting.
10 . The method of claim 9 , further comprising:
receiving, from the one of the plurality of contacts, the media player request for the first playback of the media file during the time period;
loading the media file from the data cache; and
transmitting the media file from the playback application on the server to an application on the computing device of the one of the plurality of contacts.
11 . The method of claim 10 , wherein, before loading the media file, the method further comprises:
authenticating the one of the plurality of contacts for access to the media file; and
determining that an amount of time has elapsed since an arrival of the metadata on the interaction stream for the interaction stream that is required to generate the media file.
12 . The method of claim 9 , further comprising:
determining that the time period for caching the media file has expired; and
removing the media file from the data cache based on the time period having expired.
13 . The method of claim 9 , wherein a first percentage of the training data is used to train the ML model for predictive outputs, and wherein a second percentage of the training data is used to train the ML model for accuracy of the predictive outputs.
14 . The method of claim 9 , wherein the plurality of model features comprises at least one of a tenant identifier, a team identifier, an agent identifier, a skill identifier, a contact end reason of the interaction, an active duration of the interaction, a contact duration of the interaction, a contact type, a channel of the interaction, a direction of the interaction, or information sent over the interaction stream.
15 . The method of claim 9 , wherein, before receiving the media file, the method comprises:
executing a call to an application programming interface (API) of a media processing service, wherein the media processing service downloads parts of the media file, stitches the media file together using the parts and a media processing library, and uploads the media file with the metadata to a temporary upload location of the data cache,
wherein receiving the media file comprises receiving a URL of the temporary upload location for the media file in a final playable format responsive to the call to the API.
16 . The method of claim 9 , wherein the first prediction is associated with an output indicating true for the one of the plurality of contacts to request the first playback, and wherein, if a second prediction for a second playback by the ML model is associated with an output indicating false for the one of the plurality of contacts to request the first playback, a corresponding media file for the second prediction is not cached.
17 . A non-transitory computer-readable medium having stored thereon computer-readable instructions executable to predict media playback requests of media files by a machine learning (ML) system to decrease response times to the media playback requests, the computer-readable instructions executable to perform predictive caching operations which comprises:
training an ML model to predict the media playback requests by the tenant of the media files for predictive caching of the media files on behalf of the tenant, wherein the training comprises:
retrieving contact table data for a selected time period to train the ML model,
retrieving the prior playback audit data of past media playbacks during the selected time period,
merging the contact table data and the prior playback audit data into training data based on each contact in the contact table data and corresponding ones of the past media playbacks in the prior playback audit data,
cleaning the training data,
preprocessing the training data,
training the ML model based on the training data and a plurality of model features,
testing the ML model using local tests corresponding to the plurality of model features, and
verifying results of the testing,
receiving metadata from an interaction stream after recording a media file of an interaction between a plurality of contacts for a first playback of the media file, wherein the plurality of contacts includes an agent of a tenant associated with the ML system, and wherein the tenant comprises a business entity having a plurality of users including at least one of the plurality of contacts;
determining the plurality of contacts from the metadata for the media file, wherein the plurality of contacts are permitted access to the media file or can request the first playback;
accessing the ML model;
determining, using the ML model and the plurality of model features for the ML model including at least one model feature associated with prior playback audit data of the tenant, a first prediction of a likelihood that the tenant will request that the media file be made available to the plurality of contacts for the first playback, wherein the first prediction is determined for the tenant based on the media file and prior playback audit data associated with the tenant independently from being associated with a single contact of the plurality of contacts
determining that the one or more of the plurality of contacts of the tenant can utilize a playback application on a server corresponding to the ML system for the first playback;
predicting the first playback of the media file will be requested from the playback application based on the first prediction, wherein the first playback comprises a media player request for the media file on a computing device of one of the plurality of contacts from the playback application on the server;
accessing a data cache of the server corresponding to the ML system, wherein the data cache provides data to a plurality of computing device of the tenant from the server; and
caching the media file in the data cache of the server for a time period based on the predicting.
18 . The non-transitory computer-readable medium of claim 17 , wherein the predictive caching operations further comprise:
receiving, from the one of the plurality of contacts, the media player request for the first playback of the media file during the time period;
loading the media file from the data cache; and
transmitting the media file from the playback application on the server to an application on the computing device of the one of the plurality of contacts.