in infra-as-code/modules/ingest-pipeline/cf-ccai-conversation-upload/insights_uploader.py [0:0]
def upload(self, event):
"""
Cloud Function entry point for uploading conversations.
Processes a Cloud Storage event trigger to upload the corresponding conversation and transcript to CCAI Insights.
Args:
event (dict): The Cloud Storage event data.
"""
transcript_bucket_name = event.get("transcript_bucket")
transcript_file_name = event.get("transcript_filename")
event_bucket = event.get("event_bucket")
event_filename = event.get("event_filename")
print("Bucket name: {}".format(transcript_bucket_name))
print("File name: {}".format(transcript_file_name))
transcript_uri = self.get_gcs_uri(transcript_bucket_name, transcript_file_name)
audio_uri = self.get_gcs_uri("redacted-audio-files", event_filename)
metadata = self.get_audiofile_metadata(event_bucket, event_filename)
record_keeper = RecordKeeper(self.ingest_record_bucket_id, event.get('original_file_name'))
if not audio_uri:
print('No audio to ingest')
return
try:
operation_name = self.upload_insights_conversation(transcript_uri, metadata, audio_uri)
print('Created operation ID: {}'.format(operation_name))
record_keeper.replace_row(record_keeper.create_processed_record())
return operation_name
except Exception as e:
upload_conversation_url = ('https://{}/{}/projects/{}/locations/{}/conversations:upload').format(self.insights_endpoint, self.insights_api_version, self.ccai_insights_project_id, self.ccai_insights_location_id)
self.log_error(str(e), audio_uri, transcript_uri, upload_conversation_url)
record_keeper.replace_row(
record_keeper.create_error_record(f'An error ocurred during upload conversation: {str(e)}'))