Feat Contexto Fijo Espacio-Temporal
This commit is contained in:
@@ -9,7 +9,7 @@ using Microsoft.AspNetCore.RateLimiting;
|
|||||||
using Microsoft.Extensions.Caching.Memory;
|
using Microsoft.Extensions.Caching.Memory;
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using System.Globalization;
|
||||||
|
|
||||||
// Clases de Request/Response
|
// Clases de Request/Response
|
||||||
public class GenerationConfig
|
public class GenerationConfig
|
||||||
@@ -220,7 +220,7 @@ namespace ChatbotApi.Controllers
|
|||||||
_logger.LogInformation("Ejecutando intención: Noticias de Portada.");
|
_logger.LogInformation("Ejecutando intención: Noticias de Portada.");
|
||||||
|
|
||||||
// 1. Obtenemos la lista de artículos de la portada.
|
// 1. Obtenemos la lista de artículos de la portada.
|
||||||
var articles = await GetWebsiteNewsAsync(_siteUrl, 25);
|
var articles = await GetWebsiteNewsAsync(_siteUrl, 50);
|
||||||
|
|
||||||
// 2. Usamos la IA para encontrar el mejor artículo.
|
// 2. Usamos la IA para encontrar el mejor artículo.
|
||||||
var bestMatch = await FindBestMatchingArticleAsync(userMessage, articles);
|
var bestMatch = await FindBestMatchingArticleAsync(userMessage, articles);
|
||||||
@@ -271,6 +271,24 @@ namespace ChatbotApi.Controllers
|
|||||||
var promptBuilder = new StringBuilder();
|
var promptBuilder = new StringBuilder();
|
||||||
promptBuilder.AppendLine("INSTRUCCIONES:");
|
promptBuilder.AppendLine("INSTRUCCIONES:");
|
||||||
promptBuilder.AppendLine("Eres DiaBot, el asistente virtual del periódico El Día. Tu personalidad es profesional, servicial y concisa. Responde siempre en español Rioplatense.");
|
promptBuilder.AppendLine("Eres DiaBot, el asistente virtual del periódico El Día. Tu personalidad es profesional, servicial y concisa. Responde siempre en español Rioplatense.");
|
||||||
|
// CONTEXTO FIJO
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// Forzamos la zona horaria de Argentina para ser independientes de la configuración del servidor.
|
||||||
|
var argentinaTimeZone = TimeZoneInfo.FindSystemTimeZoneById("America/Argentina/Buenos_Aires");
|
||||||
|
var localTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, argentinaTimeZone);
|
||||||
|
var formattedTime = localTime.ToString("dddd, dd/MM/yyyy HH:mm 'Hs.'", new CultureInfo("es-AR"));
|
||||||
|
|
||||||
|
promptBuilder.AppendLine("\n--- CONTEXTO FIJO ESPACIO-TEMPORAL (Tu Identidad) ---");
|
||||||
|
promptBuilder.AppendLine($"Tu base de operaciones y el foco principal de tus noticias es La Plata, Provincia de Buenos Aires, Argentina.");
|
||||||
|
promptBuilder.AppendLine($"La fecha y hora actual en La Plata es: {formattedTime}.");
|
||||||
|
promptBuilder.AppendLine("Usa esta información para dar contexto a las noticias y responder preguntas sobre el día o la ubicación.");
|
||||||
|
promptBuilder.AppendLine("--------------------------------------------------");
|
||||||
|
}
|
||||||
|
catch(Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogWarning(ex, "No se pudo determinar la zona horaria de Argentina. El contexto de tiempo será omitido.");
|
||||||
|
}
|
||||||
promptBuilder.AppendLine(promptInstructions);
|
promptBuilder.AppendLine(promptInstructions);
|
||||||
promptBuilder.AppendLine("NUNCA INVENTES información. Si la respuesta no está en el contexto, indica amablemente que no encontraste la información.");
|
promptBuilder.AppendLine("NUNCA INVENTES información. Si la respuesta no está en el contexto, indica amablemente que no encontraste la información.");
|
||||||
promptBuilder.AppendLine("\nCONTEXTO:\n---");
|
promptBuilder.AppendLine("\nCONTEXTO:\n---");
|
||||||
|
|||||||
Reference in New Issue
Block a user