plexus.utils.score_result_s3_utils module
- plexus.utils.score_result_s3_utils.check_s3_bucket_access(bucket_name=None)
Diagnostic function to check if the S3 bucket exists and is accessible.
- Args:
bucket_name: Name of the bucket to check, or None to use the default
- Returns:
Dict with diagnostic information
- plexus.utils.score_result_s3_utils.download_score_result_log_file(s3_path, local_path=None)
Download a log file from S3.
Automatically detects the correct bucket based on the path: - Paths starting with ‘items/’ use the datasources bucket (item attachments) - Other paths use the score result attachments bucket
- Args:
s3_path: S3 key path for the file (e.g., ‘items/123/transcript.txt’ or ‘scoreresults/123/log.txt’) local_path: Optional local path to save the file to
- Returns:
The content of the file as a string, and the local path if saved
- plexus.utils.score_result_s3_utils.download_score_result_trace_file(s3_path, local_path=None)
Download a trace file from S3.
Automatically detects the correct bucket based on the path: - Paths starting with ‘items/’ use the datasources bucket (item attachments) - Other paths use the score result attachments bucket
- Args:
s3_path: S3 key path for the file (e.g., ‘items/123/deepgram.json’ or ‘scoreresults/123/trace.json’) local_path: Optional local path to save the file to
- Returns:
The content of the file as a dictionary (parsed JSON), and the local path if saved
- plexus.utils.score_result_s3_utils.get_bucket_name()
Get the S3 bucket name for score result attachments from environment variables or fall back to the default.
- plexus.utils.score_result_s3_utils.get_datasources_bucket_name()
Get the S3 bucket name for data sources (item attachments) from environment variables or use default.
This bucket contains item attachments like Deepgram JSON files, transcripts, etc. The path format is typically: items/{item_external_id}/{filename}
- plexus.utils.score_result_s3_utils.upload_score_result_log_file(score_result_id: str, log_content: str) str | None
Upload a log file to S3 for a ScoreResult.
- Args:
score_result_id: The ScoreResult ID log_content: The log content to upload
- Returns:
The S3 path (key) if successful, None otherwise
- plexus.utils.score_result_s3_utils.upload_score_result_trace_file(score_result_id, trace_data, file_name='trace.json')
Upload trace data as a JSON file to the score result attachments S3 bucket.
- Args:
score_result_id: ID of the score result this file belongs to trace_data: Dictionary or JSON-serializable data to upload file_name: Name of the file to create (default: “trace.json”)
- Returns:
The S3 path (key) for the file, formatted for Amplify Gen2