from typing import Dict import hmac import streamlit as st def process_olivia_data(transcription: dict) -> str: phrases = transcription['phrases'] conversation = '' for phrase in phrases: conversation += 'Agent: ' if phrase['channel'] == 0 else 'Customer: ' parsed_phrase = ''.join(word['text'] for word in phrase['words']) conversation += parsed_phrase conversation += '\n\n\n' return {'text': conversation} def process_tethr_data(data: Dict) -> Dict: extracted_words = [] participants = data.get("participants", []) for participant in participants: participant_type = 'Agent' if 'Agent' in participant.get("refType", "") else 'Customer' utterances = participant.get("utterances", []) for utterance in utterances: words = utterance.get("words") # by words, not utterances since messed up for word in words: word_obj = { 'participant': participant_type, 'word': word.get('content', ''), 'start': word.get('startMs', None), 'end': word.get('endMs', None) } extracted_words.append(word_obj) extracted_words.sort(key=lambda x: x['start']) # Sort by start time conversation = '' participant = None for word in extracted_words: if word['participant'] != participant: if participant: conversation += '\n\n' participant = word['participant'] conversation += f'{participant}: ' conversation += f"{word['word']} " return {'id': data['callId'], 'text': conversation} def check_password(): """Returns `True` if the user had the correct password.""" def password_entered(): """Checks whether a password entered by the user is correct.""" if hmac.compare_digest(st.session_state["password"], st.secrets["PASSWORD"]): st.session_state["password_correct"] = True del st.session_state["password"] # Don't store the password. else: st.session_state["password_correct"] = False # Return True if the passward is validated. if st.session_state.get("password_correct", False): return True # Show input for password. st.text_input( "Password", type="password", on_change=password_entered, key="password" ) if "password_correct" in st.session_state: st.error("Incorrect password") return False