in sam-app/lambda_functions/sfProcessTranscriptionResult.py [0:0]
def lambda_handler(event, context):
try:
logger.info('Received event: %s' % event)
transcriptFileUri = event["TranscriptionJob"]["Transcript"]["TranscriptFileUri"]
languageCode = event["TranscriptionJob"]["LanguageCode"].split('-')[0]
bucket = transcriptFileUri.split('/')[3]
key = transcriptFileUri.split('/')[4]
contactId = event["TranscriptionJob"]["TranscriptionJobName"].split('_')[0]
logger.info('Getting lock file metadata: %s ' % contactId)
oMetadata = getS3FileMetadata(bucket, key.split('_')[0])
postcallTranscribeComprehendAnalysis = []
if 'postcallTranscribeComprehendAnalysis'.lower() in oMetadata:
postcallTranscribeComprehendAnalysis = oMetadata['postcallTranscribeComprehendAnalysis'.lower()].split(',')
mACContactChannelAnalyticsId = None
if 'ACContactChannelAnalyticsId'.lower() in oMetadata:
mACContactChannelAnalyticsId = oMetadata['ACContactChannelAnalyticsId'.lower()]
logger.info('Retrieving transcription file: %s', key)
transcriptObj = getS3FileJSONObject(bucket, key)
logger.info('Retrieved transcription file: %s', key)
logger.info('Processing Customer transcript')
customerTranscripts = processTranscript(transcriptObj['results']['channel_labels']['channels'][0]['items'])
logger.info('Customer transcript: %s' % customerTranscripts)
logger.info('Processing Agent transcript')
agentTranscripts = processTranscript(transcriptObj['results']['channel_labels']['channels'][1]['items'])
logger.info('Agent transcript: %s' % agentTranscripts)
comprehendResults = {}
#Test Comprehend
if len(customerTranscripts) > 0:
for ca in postcallTranscribeComprehendAnalysis:
if ca == 'snt':
comprehendResults['FormattedSentiment'] = GetFormattedSentiment(StartComprehendAnalysis(customerTranscripts, 'snt', languageCode, False))
elif ca=='kw':
comprehendResults['FormattedKeywords'] = GetFormattedKeywords(StartComprehendAnalysis(customerTranscripts, 'kw', languageCode, False))
elif ca=='dl':
comprehendResults['FormattedDominantLanguage'] = GetFormattedDominantLanguage(StartComprehendAnalysis(customerTranscripts, 'dl', languageCode, False))
elif ca=='ne':
comprehendResults['FormattedNamedEntities'] = GetFormattedNamedEntities(StartComprehendAnalysis(customerTranscripts, 'ne', languageCode, False))
elif ca=='syn':
comprehendResults['FormattedSyntax'] = GetFormattedSyntax(StartComprehendAnalysis(customerTranscripts, 'syn', languageCode, False))
#End Test Comprehend
createSalesforceObject(contactId, customerTranscripts, agentTranscripts, comprehendResults, mACContactChannelAnalyticsId)
updateLock(bucket, key.split('_')[0], oMetadata)
logger.info('Done')
return {"Done": True}
except Exception as e:
raise e