<- Volver a proxectos
~/projects/ Produción

NiPtAIdea

Sobre o proxecto

NiPtAIdea é un xogo de adiviñanza inspirado en Akinator — pero invertido e con actitude. A IA escolle un concepto secreto dunha de cinco categorías (Persoa, Lugar, Animal, Obra ou Concepto) e tes 15 preguntas para adiviñalo. A IA ten unha personalidade condescendente: insultarache se tardas demasiado e non agacha o seu desprezo cando fas unha pregunta mala.

Podes facer preguntas de si/non ou intentar adiviñar directamente. A IA responde con: Si, Non, Frío, Tibio ou Quente — dando pistas direccionais sen confirmar demasiado. Os gañadores poden gardar a súa puntuación no top 10, ordenado por intentos usados e logo por tempo.

Stack técnico

CapaTecnoloxía
FrameworkNext.js 16 (App Router, standalone output)
UIReact 19 + Tailwind CSS v4
IAGemini Flash 3 vía OpenRouter (@openrouter/ai-sdk-provider)
StreamingVercel AI SDK v6 (useChat, streamText)
Base de datosSQLite (better-sqlite3)
DespregamentoDocker + Coolify

Características clave

  • 5 categorías con selección ponderada — Persoa, Lugar, Animal, Obra, Concepto.
  • Pistas de temperatura — as respostas van máis alá do si/non: Frío, Tibio, Quente dan orientación direccional.
  • Sistema sen repetición — os últimos 20 conceptos vistos gárdanse en localStorage e envíanse ao endpoint de inicio para que o modelo os evite.
  • Tolerancia a erros tipográficos — as respostas do xogador valídanse con distancia de Levenshtein (≤ 2), polo que pequenos erros tipográficos non custan un intento.
  • Cifrado do concepto — o concepto cífrase con AES-GCM antes de envialo ao cliente como token opaco, evitando trampas desde as DevTools.
  • Taunts automáticos — se o xogador está inactivo 60, 120, 180 ou 240 segundos, a IA inxecta automaticamente unha mensaxe de burla.
  • Rate limiting — 30 partidas por IP por hora (fixed-window, en memoria).
  • Top 10 leaderboard — ordenado por intentos usados (asc), logo por tempo (asc). Se o marcador está cheo e a nova puntuación é peor que a última entrada, descártase.

Demo

Dispoñible en niptaidea.mougan.es.