AIdeaText commited on
Commit
ecf0cbb
·
verified ·
1 Parent(s): cd645bd

Update modules/database/semantic_mongo_db.py

Browse files
Files changed (1) hide show
  1. modules/database/semantic_mongo_db.py +29 -12
modules/database/semantic_mongo_db.py CHANGED
@@ -14,35 +14,52 @@ def store_student_semantic_result(username, text, analysis_result):
14
  Args:
15
  username: Nombre del usuario
16
  text: Texto analizado
17
- analysis_result: Resultado del análisis que incluye:
18
- - key_concepts: Lista de conceptos clave y sus frecuencias
19
- - concept_graph: Gráfico de relaciones conceptuales en bytes
20
- - entities: Diccionario de entidades identificadas
21
- - entity_graph: Gráfico de relaciones entre entidades en bytes
22
  """
23
  try:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  analysis_document = {
25
  'username': username,
26
  'timestamp': datetime.now(timezone.utc).isoformat(),
27
  'text': text,
28
  'analysis_type': 'semantic',
29
- 'key_concepts': analysis_result['key_concepts'],
30
- 'concept_graph': analysis_result['concept_graph'],
31
- 'entities': analysis_result['entities'],
32
- 'entity_graph': analysis_result['entity_graph']
33
  }
34
-
 
35
  result = insert_document(COLLECTION_NAME, analysis_document)
36
-
37
  if result:
38
  logger.info(f"Análisis semántico guardado con ID: {result} para el usuario: {username}")
39
  return True
40
- return False
41
 
 
 
 
42
  except Exception as e:
43
  logger.error(f"Error al guardar el análisis semántico: {str(e)}")
44
  return False
45
 
 
 
 
46
  def get_student_semantic_analysis(username, limit=10):
47
  """
48
  Recupera los análisis semánticos de un estudiante.
 
14
  Args:
15
  username: Nombre del usuario
16
  text: Texto analizado
17
+ analysis_result: Resultado del análisis
 
 
 
 
18
  """
19
  try:
20
+ # Convertir gráfico a formato base64
21
+ concept_graph_data = None
22
+ if 'concept_graph' in analysis_result:
23
+ buf = io.BytesIO()
24
+ analysis_result['concept_graph'].savefig(buf, format='png')
25
+ buf.seek(0)
26
+ concept_graph_data = base64.b64encode(buf.getvalue()).decode('utf-8')
27
+
28
+ entity_graph_data = None
29
+ if 'entity_graph' in analysis_result:
30
+ buf = io.BytesIO()
31
+ analysis_result['entity_graph'].savefig(buf, format='png')
32
+ buf.seek(0)
33
+ entity_graph_data = base64.b64encode(buf.getvalue()).decode('utf-8')
34
+
35
+ # Crear documento para MongoDB
36
  analysis_document = {
37
  'username': username,
38
  'timestamp': datetime.now(timezone.utc).isoformat(),
39
  'text': text,
40
  'analysis_type': 'semantic',
41
+ 'key_concepts': analysis_result.get('key_concepts', []),
42
+ 'concept_graph': concept_graph_data,
43
+ 'entities': analysis_result.get('entities', {}),
44
+ 'entity_graph': entity_graph_data
45
  }
46
+
47
+ # Insertar en MongoDB
48
  result = insert_document(COLLECTION_NAME, analysis_document)
 
49
  if result:
50
  logger.info(f"Análisis semántico guardado con ID: {result} para el usuario: {username}")
51
  return True
 
52
 
53
+ logger.error("No se pudo insertar el documento en MongoDB")
54
+ return False
55
+
56
  except Exception as e:
57
  logger.error(f"Error al guardar el análisis semántico: {str(e)}")
58
  return False
59
 
60
+
61
+
62
+
63
  def get_student_semantic_analysis(username, limit=10):
64
  """
65
  Recupera los análisis semánticos de un estudiante.