function extract_conclusion_text_for_pdf
Extracts human-readable conclusion or interpretation text from nested analysis result dictionaries by checking multiple possible field locations and data structures.
/tf/active/vicechatdev/vice_ai/new_app.py
3323 - 3349
simple
Purpose
This function is designed to extract meaningful conclusion text from analysis results that may have varying structures. It's particularly useful when generating PDF reports from data analysis results where the conclusion text might be stored in different fields ('results', 'response', 'conclusion') and in different formats (string, dict with 'interpretation' key, or complex nested structures). The function provides a fallback mechanism to ensure some text is always returned for PDF generation.
Source Code
def extract_conclusion_text_for_pdf(analysis):
"""Extract meaningful conclusion text from analysis results"""
# Check results field first
if 'results' in analysis:
if isinstance(analysis['results'], str):
return analysis['results']
elif isinstance(analysis['results'], dict):
if 'interpretation' in analysis['results']:
return analysis['results']['interpretation']
# Try to format as text
return json.dumps(analysis['results'], indent=2)
# Check response field
if 'response' in analysis:
if isinstance(analysis['response'], str):
return analysis['response']
elif isinstance(analysis['response'], dict) and 'interpretation' in analysis['response']:
return analysis['response']['interpretation']
# Check conclusion field
if 'conclusion' in analysis:
if isinstance(analysis['conclusion'], str):
return analysis['conclusion']
elif isinstance(analysis['conclusion'], dict) and 'interpretation' in analysis['conclusion']:
return analysis['conclusion']['interpretation']
return 'No interpretation available.'
Parameters
| Name | Type | Default | Kind |
|---|---|---|---|
analysis |
- | - | positional_or_keyword |
Parameter Details
analysis: A dictionary containing analysis results. Expected to potentially contain keys like 'results', 'response', or 'conclusion'. Each of these keys may map to either a string (direct conclusion text), a dictionary (which may contain an 'interpretation' key), or other data structures. The function handles all these variations gracefully.
Return Value
Returns a string containing the extracted conclusion text. If 'results', 'response', or 'conclusion' fields contain strings, those are returned directly. If they contain dictionaries with 'interpretation' keys, those values are returned. If 'results' is a dict without 'interpretation', it's JSON-formatted and returned. If no suitable text is found, returns the default string 'No interpretation available.'
Dependencies
json
Required Imports
import json
Usage Example
import json
# Example 1: String in results field
analysis1 = {'results': 'The data shows a significant positive correlation.'}
conclusion1 = extract_conclusion_text_for_pdf(analysis1)
print(conclusion1) # Output: 'The data shows a significant positive correlation.'
# Example 2: Dict with interpretation in results
analysis2 = {
'results': {
'interpretation': 'The regression model indicates strong predictive power.',
'r_squared': 0.85
}
}
conclusion2 = extract_conclusion_text_for_pdf(analysis2)
print(conclusion2) # Output: 'The regression model indicates strong predictive power.'
# Example 3: String in response field
analysis3 = {'response': 'Analysis complete with no significant findings.'}
conclusion3 = extract_conclusion_text_for_pdf(analysis3)
print(conclusion3) # Output: 'Analysis complete with no significant findings.'
# Example 4: No valid fields
analysis4 = {'data': [1, 2, 3]}
conclusion4 = extract_conclusion_text_for_pdf(analysis4)
print(conclusion4) # Output: 'No interpretation available.'
# Example 5: Dict without interpretation (JSON formatted)
analysis5 = {'results': {'mean': 42.5, 'std': 10.2}}
conclusion5 = extract_conclusion_text_for_pdf(analysis5)
print(conclusion5) # Output: JSON formatted string of the dict
Best Practices
- This function is designed for robustness and will always return a string, never None or raise an exception
- The function checks fields in priority order: 'results' first, then 'response', then 'conclusion'
- When passing analysis dictionaries, ensure at least one of the expected keys ('results', 'response', 'conclusion') is present for meaningful output
- If you need custom field checking, consider extending this function rather than modifying it to maintain backward compatibility
- The function uses isinstance() checks to safely handle different data types without raising TypeErrors
- For complex nested structures in 'results' that don't have 'interpretation', the function will JSON-serialize them, which may produce verbose output
Tags
Similar Components
AI-powered semantic similarity - components with related functionality:
-
function add_data_section_to_pdf 53.6% similar
-
function extract_sheet_context 52.6% similar
-
function extract_previous_reports_summary 52.3% similar
-
class PDFTextExtractor 51.2% similar
-
function extract_text_from_pdf 51.2% similar