Volver al portafolio

herramienta propia

Asistente del portafolio

Un chatbot que no puede inventarse mi experiencia

En producciónVivo en esta web

El chat que espera en la esquina de esta página. Responde únicamente con lo que dice este portafolio: el corpus se genera en cada build desde las mismas fuentes que renderizan la web, viaja entero en el prompt y no hay nada más. Corre sobre un Worker de Cloudflare con límites de abuso, guardarraíles contra inyección de prompts y dos modelos compitiendo por contestar primero.

pregunta repetida
0,9 s
pregunta nueva
3,8 s
coste al mes
$0
  • No puede afirmar nada que esta web ya no diga: el corpus se genera en el build desde las mismas fuentes que renderizan el sitio, así que publicar es la única manera de cambiar lo que el asistente sabe.
  • Dos capas contra la inyección de prompts. El sistema ignora las instrucciones que vengan dentro de la pregunta, y un filtro de salida borra cualquier enlace o correo que no sea mío antes de llegar a la pantalla — aunque el modelo se haya dejado convencer.
  • Ese filtro sobrevive al streaming, que es la parte difícil: un enlace solo se puede juzgar entero, así que nada se publica hasta que ha empezado la palabra siguiente. La propiedad se verifica contra todos los cortes posibles del texto, no contra uno elegido.
  • Cuando el primer modelo tarda más de 4 segundos, el segundo arranca en paralelo y gana el que conteste antes. La media bajó de 8,3 s a 3,8 s y el peor caso de 13,0 s a 5,8 s.
  • Una pregunta repetida vuelve de la caché en menos de un segundo sin gastar cuota del proveedor, y publicar el sitio invalida las entradas por sí solo porque el corpus forma parte de la clave.
  • Coste cero y sin tarjeta: Workers, Durable Objects con SQLite, AI Gateway y la capa gratuita de Google AI Studio.

Mi rol: lo diseñé y construí entero — el widget, el endpoint, los guardarraíles, las mediciones que decidieron cada ajuste y el ADR que explica por qué.