v3 / modules /semantic /semantic_process_23-9-24.py
AIdeaText's picture
Upload 216 files
c58df45 verified
raw
history blame
2.88 kB
import logging
import io
import base64
import matplotlib.pyplot as plt
from ..text_analysis.semantic_analysis import perform_semantic_analysis
from .flexible_analysis_handler import FlexibleAnalysisHandler
logger = logging.getLogger(__name__)
def encode_image_to_base64(image_data):
if isinstance(image_data, str): # Si es una ruta de archivo
with open(image_data, "rb") as image_file:
encoded_string = base64.b64encode(image_file.read()).decode("utf-8")
elif isinstance(image_data, bytes): # Si son datos de imagen en memoria
encoded_string = base64.b64encode(image_data).decode("utf-8")
else:
raise ValueError("Invalid image data type. Expected string (file path) or bytes.")
return encoded_string #
def process_semantic_analysis(file_contents, nlp_model, lang_code):
logger.info(f"Starting semantic analysis processing for language: {lang_code}")
try:
result = perform_semantic_analysis(file_contents, nlp_model, lang_code)
#handler = FlexibleAnalysisHandler(result)
#concept_graph = handler.get_graph('concept_graph')
#entity_graph = handler.get_graph('entity_graph')
#key_concepts = handler.get_key_concepts()
concept_graph = result['concept_graph']
entity_graph = result['entity_graph']
key_concepts = result['key_concepts']
# Convertir los gráficos a base64
concept_graph_base64 = fig_to_base64(concept_graph) if concept_graph else None
entity_graph_base64 = fig_to_base64(entity_graph) if entity_graph else None
logger.info("Semantic analysis processing completed successfully")
return concept_graph_base64, entity_graph_base64, key_concepts
except Exception as e:
logger.error(f"Error in semantic analysis processing: {str(e)}")
return None, None, [] # Retorna valores vacíos en caso de error
'''
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.DEBUG)
def process_semantic_analysis(file_contents, nlp_model, lang_code):
logger.info(f"Starting semantic analysis for language: {lang_code}")
try:
logger.debug("Calling perform_semantic_analysis")
result = perform_semantic_analysis(file_contents, nlp_model, lang_code)
logger.debug(f"Result keys: {result.keys()}")
logger.debug(f"Type of concept_graph: {type(result['concept_graph'])}")
logger.debug(f"Type of entity_graph: {type(result['entity_graph'])}")
logger.debug(f"Number of key_concepts: {len(result['key_concepts'])}")
logger.info("Semantic analysis completed successfully")
return result['concept_graph'], result['entity_graph'], result['key_concepts']
except Exception as e:
logger.error(f"Error in semantic analysis: {str(e)}")
raise
'''