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) catch (Exception ex)
{ {
_logger.LogError(ex, "Error en llamada unificada a Gemini."); _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)) if (!string.IsNullOrEmpty(errorMessage))
@@ -424,7 +424,8 @@ namespace ChatbotApi.Services
var specificKeywords = new[] { var specificKeywords = new[] {
"economía", "economia", "inflación", "inflacion", "dólar", "dolar", "economía", "economia", "inflación", "inflacion", "dólar", "dolar",
"política", "politica", "elecciones", "gobierno", "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 // Si NO contiene ningún keyword específico, skip AI
@@ -463,7 +464,7 @@ namespace ChatbotApi.Services
// Confirmaciones/Aceptación (argentinismos incluidos) // Confirmaciones/Aceptación (argentinismos incluidos)
"ok", "perfecto", "genial", "bárbaro", "barbaro", "dale", "dale dale", "ok", "perfecto", "genial", "bárbaro", "barbaro", "dale", "dale dale",
"está bien", "esta bien", "de acuerdo", "si", "sí", "vale", "listo", "está bien", "esta bien", "de acuerdo", "si", "sí", "vale", "listo",
"joya", "buenísimo", "buenisimo", "excelente", "joya", "buenísimo", "buenisimo", "excelente", "piola",
// Agradecimientos // Agradecimientos
"gracias", "muchas gracias", "mil gracias", "thank you", "thanks", "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 [logs, setLogs] = useState<ConversacionLog[]>([]);
const [error, setError] = useState<string | null>(null); const [error, setError] = useState<string | null>(null);
// Filtros // Obtener fecha de hoy en formato YYYY-MM-DD
const [startDate, setStartDate] = useState(''); const getTodayDate = () => {
const [endDate, setEndDate] = useState(''); 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 [search, setSearch] = useState('');
const [paginationModel, setPaginationModel] = useState({ const [paginationModel, setPaginationModel] = useState({
@@ -33,8 +42,19 @@ const LogsViewer: React.FC<LogsViewerProps> = ({ onAuthError }) => {
const fetchLogs = useCallback(async () => { const fetchLogs = useCallback(async () => {
try { try {
const params = new URLSearchParams(); 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); if (search) params.append('search', search);
const response = await apiClient.get(`/api/admin/logs?${params.toString()}`); const response = await apiClient.get(`/api/admin/logs?${params.toString()}`);
@@ -47,10 +67,12 @@ const LogsViewer: React.FC<LogsViewerProps> = ({ onAuthError }) => {
} }
}, [onAuthError, startDate, endDate, search]); }, [onAuthError, startDate, endDate, search]);
useEffect(() => { useEffect(() => {
// Cargar logs automáticamente con los filtros por defecto (fecha de hoy)
fetchLogs(); fetchLogs();
// eslint-disable-next-line react-hooks/exhaustive-deps }, [fetchLogs]);
}, []); // Carga inicial solamente, o cuando el usuario pulse "Filtrar"
const columns: GridColDef[] = [ const columns: GridColDef[] = [