def upload()

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)}'))