|
|
|
from .mongo_db import insert_document, find_documents, get_collection |
|
from datetime import datetime, timezone |
|
import logging |
|
from .database_init import get_mongodb |
|
|
|
logger = logging.getLogger(__name__) |
|
COLLECTION_NAME = 'chat_history-v3' |
|
|
|
def get_chat_history(username, analysis_type='sidebar', limit=None): |
|
""" |
|
Recupera el historial del chat |
|
""" |
|
try: |
|
query = { |
|
"username": username, |
|
"analysis_type": analysis_type |
|
} |
|
|
|
collection = get_collection(COLLECTION_NAME) |
|
if collection is None: |
|
logger.error("No se pudo obtener la colecci贸n de chat") |
|
return [] |
|
|
|
cursor = collection.find(query).sort("timestamp", -1) |
|
if limit: |
|
cursor = cursor.limit(limit) |
|
|
|
return list(cursor) |
|
except Exception as e: |
|
logger.error(f"Error al recuperar historial de chat: {str(e)}") |
|
return [] |
|
|
|
def store_chat_history(username, messages, analysis_type='sidebar'): |
|
""" |
|
Guarda el historial del chat |
|
""" |
|
try: |
|
collection = get_collection(COLLECTION_NAME) |
|
if collection is None: |
|
logger.error("No se pudo obtener la colecci贸n de chat") |
|
return False |
|
|
|
chat_document = { |
|
'username': username, |
|
'timestamp': datetime.now(timezone.utc).isoformat(), |
|
'messages': messages, |
|
'analysis_type': analysis_type |
|
} |
|
|
|
result = collection.insert_one(chat_document) |
|
if result.inserted_id: |
|
logger.info(f"Historial de chat guardado con ID: {result.inserted_id} para el usuario: {username}") |
|
return True |
|
|
|
logger.error("No se pudo insertar el documento") |
|
return False |
|
|
|
except Exception as e: |
|
logger.error(f"Error al guardar historial de chat: {str(e)}") |
|
return False |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|