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():
|