Update app.py
Browse files
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 |
-
|
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,
|
103 |
try:
|
104 |
-
|
105 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
'text': text,
|
107 |
-
'
|
108 |
-
'
|
109 |
-
'network_diagram':
|
110 |
-
}
|
|
|
|
|
|
|
|
|
|
|
111 |
return True
|
112 |
except Exception as e:
|
113 |
-
|
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():
|