Fix-Feat: Invalida la caché al modificar fuentes de contexto. Añade selector de contenido de contexto.
Se soluciona un bug donde el chatbot no reconocía las nuevas fuentes de conocimiento o los items de contexto añadidos desde el panel de administración hasta que la API se reiniciaba. Ahora, el AdminController borra la caché correspondiente después de cada operación de Crear, Actualizar o Eliminar. Esto fuerza al chatbot a recargar la información desde la base de datos en la siguiente petición, haciendo que los cambios se reflejen de forma inmediata. Se añade un nuevo campo para determinar el selector de contenido dentro de la web al momento de realizar el scrap.
This commit is contained in:
@@ -2,6 +2,8 @@
|
||||
using ChatbotApi.Data.Models;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.Extensions.Caching.Memory;
|
||||
using ChatbotApi.Services;
|
||||
|
||||
namespace ChatbotApi.Controllers
|
||||
{
|
||||
@@ -11,10 +13,12 @@ namespace ChatbotApi.Controllers
|
||||
public class AdminController : ControllerBase
|
||||
{
|
||||
private readonly AppContexto _context;
|
||||
private readonly IMemoryCache _cache;
|
||||
|
||||
public AdminController(AppContexto context)
|
||||
public AdminController(AppContexto context, IMemoryCache cache)
|
||||
{
|
||||
_context = context;
|
||||
_cache = cache;
|
||||
}
|
||||
|
||||
// GET: api/admin/contexto
|
||||
@@ -36,6 +40,10 @@ namespace ChatbotApi.Controllers
|
||||
item.FechaActualizacion = DateTime.UtcNow;
|
||||
_context.ContextoItems.Add(item);
|
||||
await _context.SaveChangesAsync();
|
||||
|
||||
// Invalida la caché de KnowledgeItems
|
||||
_cache.Remove(CacheKeys.KnowledgeItems);
|
||||
|
||||
return CreatedAtAction(nameof(GetAllContextoItems), new { id = item.Id }, item);
|
||||
}
|
||||
|
||||
@@ -58,6 +66,9 @@ namespace ChatbotApi.Controllers
|
||||
existingItem.FechaActualizacion = DateTime.UtcNow;
|
||||
|
||||
await _context.SaveChangesAsync();
|
||||
// Invalida la caché de KnowledgeItems
|
||||
_cache.Remove(CacheKeys.KnowledgeItems);
|
||||
|
||||
return NoContent();
|
||||
}
|
||||
|
||||
@@ -72,6 +83,9 @@ namespace ChatbotApi.Controllers
|
||||
}
|
||||
_context.ContextoItems.Remove(item);
|
||||
await _context.SaveChangesAsync();
|
||||
// Invalida la caché de KnowledgeItems
|
||||
_cache.Remove(CacheKeys.KnowledgeItems);
|
||||
|
||||
return NoContent();
|
||||
}
|
||||
|
||||
@@ -100,6 +114,10 @@ namespace ChatbotApi.Controllers
|
||||
{
|
||||
_context.FuentesDeContexto.Add(fuente);
|
||||
await _context.SaveChangesAsync();
|
||||
|
||||
// Invalida la caché de FuentesDeContexto
|
||||
_cache.Remove(CacheKeys.FuentesDeContexto);
|
||||
|
||||
return CreatedAtAction(nameof(GetAllFuentes), new { id = fuente.Id }, fuente);
|
||||
}
|
||||
|
||||
@@ -129,6 +147,9 @@ namespace ChatbotApi.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
// Invalida la caché de FuentesDeContexto
|
||||
_cache.Remove(CacheKeys.FuentesDeContexto);
|
||||
|
||||
return NoContent();
|
||||
}
|
||||
|
||||
@@ -144,6 +165,9 @@ namespace ChatbotApi.Controllers
|
||||
_context.FuentesDeContexto.Remove(fuente);
|
||||
await _context.SaveChangesAsync();
|
||||
|
||||
// Invalida la caché de FuentesDeContexto
|
||||
_cache.Remove(CacheKeys.FuentesDeContexto);
|
||||
|
||||
return NoContent();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user