|
|
| import streamlit as st
|
| from typing import Dict, List, Tuple
|
| import logging
|
|
|
| logger = logging.getLogger(__name__)
|
|
|
| class AIdeaTextChatbot:
|
| def __init__(self, lang_code: str):
|
| self.lang_code = lang_code
|
| self.conversation_history = []
|
| self.context = {
|
| 'current_analysis': None,
|
| 'last_question': None,
|
| 'user_profile': None
|
| }
|
|
|
| def process_message(self, message: str, context: Dict = None) -> str:
|
| """
|
| Procesa el mensaje del usuario y genera una respuesta
|
| """
|
| try:
|
|
|
| if context:
|
| self.context.update(context)
|
|
|
|
|
| intent = self._analyze_intent(message)
|
|
|
|
|
| response = self._generate_response(intent, message)
|
|
|
|
|
| self._update_history(message, response)
|
|
|
| return response
|
|
|
| except Exception as e:
|
| logger.error(f"Error procesando mensaje: {str(e)}")
|
| return self._get_fallback_response()
|
|
|
| def _analyze_intent(self, message: str) -> str:
|
| """
|
| Analiza la intenci贸n del mensaje del usuario
|
| """
|
|
|
| pass
|
|
|
| def _generate_response(self, intent: str, message: str) -> str:
|
| """
|
| Genera una respuesta basada en la intenci贸n
|
| """
|
|
|
| pass
|
|
|
| def get_conversation_history(self) -> List[Tuple[str, str]]:
|
| """
|
| Retorna el historial de conversaci贸n
|
| """
|
| return self.conversation_history |