Feat: Añadidas Palabras Claves. Filtros Historial Ajustados

This commit is contained in:
2025-12-10 10:13:20 -03:00
parent 7a24538b6c
commit 56b529b1b8
2 changed files with 33 additions and 10 deletions

View File

@@ -259,7 +259,7 @@ namespace ChatbotApi.Services
catch (Exception ex)
{
_logger.LogError(ex, "Error en llamada unificada a Gemini.");
errorMessage = "Lo siento, el servicio está temporalmente no disponible. Por favor, intenta de nuevo.";
errorMessage = "Lo siento, el servicio está temporalmente no disponible. Por favor, intenta de nuevo en unos minutos.";
}
if (!string.IsNullOrEmpty(errorMessage))
@@ -424,7 +424,8 @@ namespace ChatbotApi.Services
var specificKeywords = new[] {
"economía", "economia", "inflación", "inflacion", "dólar", "dolar",
"política", "politica", "elecciones", "gobierno",
"clima", "deporte", "fútbol", "futbol", "boca", "river"
"clima", "deporte", "fútbol", "futbol", "boca", "river",
"estudiantes", "gimnasia", "pincha", "lobo", "partido"
};
// Si NO contiene ningún keyword específico, skip AI
@@ -463,7 +464,7 @@ namespace ChatbotApi.Services
// Confirmaciones/Aceptación (argentinismos incluidos)
"ok", "perfecto", "genial", "bárbaro", "barbaro", "dale", "dale dale",
"está bien", "esta bien", "de acuerdo", "si", "sí", "vale", "listo",
"joya", "buenísimo", "buenisimo", "excelente",
"joya", "buenísimo", "buenisimo", "excelente", "piola",
// Agradecimientos
"gracias", "muchas gracias", "mil gracias", "thank you", "thanks",

View File

@@ -20,9 +20,18 @@ const LogsViewer: React.FC<LogsViewerProps> = ({ onAuthError }) => {
const [logs, setLogs] = useState<ConversacionLog[]>([]);
const [error, setError] = useState<string | null>(null);
// Filtros
const [startDate, setStartDate] = useState('');
const [endDate, setEndDate] = useState('');
// Obtener fecha de hoy en formato YYYY-MM-DD
const getTodayDate = () => {
const today = new Date();
const year = today.getFullYear();
const month = String(today.getMonth() + 1).padStart(2, '0');
const day = String(today.getDate()).padStart(2, '0');
return `${year}-${month}-${day}`;
};
// Filtros con fecha de hoy por defecto
const [startDate, setStartDate] = useState(getTodayDate());
const [endDate, setEndDate] = useState(getTodayDate());
const [search, setSearch] = useState('');
const [paginationModel, setPaginationModel] = useState({
@@ -33,8 +42,19 @@ const LogsViewer: React.FC<LogsViewerProps> = ({ onAuthError }) => {
const fetchLogs = useCallback(async () => {
try {
const params = new URLSearchParams();
if (startDate) params.append('startDate', startDate);
if (endDate) params.append('endDate', endDate);
// Agregar fecha de inicio con hora 00:00:00
if (startDate) {
const startDateTime = `${startDate}T00:00:00`;
params.append('startDate', startDateTime);
}
// Agregar fecha de fin con hora 23:59:59
if (endDate) {
const endDateTime = `${endDate}T23:59:59`;
params.append('endDate', endDateTime);
}
if (search) params.append('search', search);
const response = await apiClient.get(`/api/admin/logs?${params.toString()}`);
@@ -47,10 +67,12 @@ const LogsViewer: React.FC<LogsViewerProps> = ({ onAuthError }) => {
}
}, [onAuthError, startDate, endDate, search]);
useEffect(() => {
// Cargar logs automáticamente con los filtros por defecto (fecha de hoy)
fetchLogs();
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []); // Carga inicial solamente, o cuando el usuario pulse "Filtrar"
}, [fetchLogs]);
const columns: GridColDef[] = [