AIdeaText commited on
Commit
90c6006
1 Parent(s): 3e62e24

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -9
app.py CHANGED
@@ -1,3 +1,5 @@
 
 
1
  import datetime
2
  import io
3
  import base64
@@ -6,11 +8,12 @@ import streamlit as st
6
  import spacy
7
  from spacy import displacy
8
  import re
 
9
  from transformers import BlenderbotTokenizer, BlenderbotForConditionalGeneration
10
  from azure.cosmos import CosmosClient
11
  from azure.cosmos.exceptions import CosmosHttpResponseError
12
  from pymongo import MongoClient
13
- import numpy as np
14
  from dotenv import load_dotenv
15
  load_dotenv()
16
 
@@ -99,18 +102,37 @@ def load_spacy_models():
99
  'fr': spacy.load("fr_core_news_lg")
100
  }
101
 
102
- def store_analysis_result(username, text, repeated_words, arc_diagram, network_diagram):
103
  try:
104
- analysis_collection.insert_one({
105
- 'username': username,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
106
  'text': text,
107
- 'repeated_words': repeated_words,
108
- 'arc_diagram': arc_diagram,
109
- 'network_diagram': network_diagram
110
- })
 
 
 
 
 
111
  return True
112
  except Exception as e:
113
- st.error(f"Error storing analysis result: {e}")
114
  return False
115
 
116
  def login_page():
 
1
+ import logging
2
+ logging.basicConfig(level=logging.INFO)
3
  import datetime
4
  import io
5
  import base64
 
8
  import spacy
9
  from spacy import displacy
10
  import re
11
+ import numpy as np
12
  from transformers import BlenderbotTokenizer, BlenderbotForConditionalGeneration
13
  from azure.cosmos import CosmosClient
14
  from azure.cosmos.exceptions import CosmosHttpResponseError
15
  from pymongo import MongoClient
16
+
17
  from dotenv import load_dotenv
18
  load_dotenv()
19
 
 
102
  'fr': spacy.load("fr_core_news_lg")
103
  }
104
 
105
+ def store_analysis_result(username, text, repeated_words, arc_diagrams, network_diagram):
106
  try:
107
+ # Convertir el gráfico de matplotlib a base64
108
+ buffer = io.BytesIO()
109
+ network_diagram.savefig(buffer, format='png')
110
+ buffer.seek(0)
111
+ network_diagram_base64 = base64.b64encode(buffer.getvalue()).decode()
112
+
113
+ # Contar palabras repetidas por categoría gramatical
114
+ word_count = {}
115
+ for word, color in repeated_words.items():
116
+ category = POS_TRANSLATIONS.get(color, 'Otros')
117
+ word_count[category] = word_count.get(category, 0) + 1
118
+
119
+ # Crear el documento para MongoDB
120
+ analysis_document = {
121
+ 'username': username, # Este campo se usará como sharded key
122
+ 'timestamp': datetime.datetime.utcnow(),
123
  'text': text,
124
+ 'word_count': word_count,
125
+ 'arc_diagrams': arc_diagrams,
126
+ 'network_diagram': network_diagram_base64
127
+ }
128
+
129
+ # Insertar el documento en la colección
130
+ result = analysis_collection.insert_one(analysis_document)
131
+
132
+ logging.info(f"Análisis guardado con ID: {result.inserted_id} para el usuario: {username}")
133
  return True
134
  except Exception as e:
135
+ logging.error(f"Error al guardar el análisis para el usuario {username}: {str(e)}")
136
  return False
137
 
138
  def login_page():