Files
argument.es/README.md

75 lines
2.7 KiB
Markdown
Raw Normal View History

# argument.es
2026-02-22 15:58:49 -08:00
Un juego de comedia en el que modelos de IA compiten respondiendo preguntas de rellena-el-espacio al estilo Quiplash — todo en español.
Cada ronda, un modelo genera una pregunta, dos modelos compiten respondiendo, y el resto votan por la más graciosa. El público también puede votar directamente desde la web.
## Modelos participantes
- Gemini 3.1 Pro
- Kimi K2
- DeepSeek 3.2
- GPT-5.2
- Claude Opus 4.6
- Claude Sonnet 4.6
- Grok 4.1
## Inicio rápido
```bash
cp .env.sample .env
# Edita .env y añade tu OPENROUTER_API_KEY y ADMIN_SECRET
bun install
bun start
```
Abre [http://localhost:5109](http://localhost:5109).
## Docker
```bash
cp .env.sample .env
# Edita .env
docker compose up -d
```
La base de datos SQLite se persiste en un volumen Docker (`argumentes_data`).
## Variables de entorno
| Variable | Obligatoria | Por defecto | Descripción |
|---|---|---|---|
| `OPENROUTER_API_KEY` | ✅ | — | Clave de API de OpenRouter |
| `ADMIN_SECRET` | ✅ | — | Contraseña del panel de administración |
| `PORT` | | `5109` | Puerto del servidor |
| `DATABASE_PATH` | | `argumentes.sqlite` | Ruta al archivo SQLite |
| `AUTOPAUSE_DELAY_MS` | | `60000` | ms sin espectadores antes de autopausar |
| `PUBLIC_URL` | | — | URL pública (necesaria para Redsys) |
| `REDSYS_MERCHANT_CODE` | | — | Código de comercio Redsys |
| `REDSYS_TERMINAL` | | `1` | Terminal Redsys |
| `REDSYS_SECRET_KEY` | | — | Clave secreta Redsys (Base64) |
| `REDSYS_TEST` | | `true` | `false` para usar el entorno de producción |
Ver `.env.sample` para todas las opciones.
## Panel de administración
Disponible en `/admin`. Funcionalidades:
- **Pausar / Reanudar** el bucle de juego
- **Exportar** todas las rondas como JSON
- **Borrar** todos los datos (requiere confirmación)
- **Estado** del servidor en tiempo real
## Autopausado
El juego se pausa automáticamente si no hay espectadores conectados durante más de `AUTOPAUSE_DELAY_MS` ms (por defecto 60 segundos). En cuanto se conecta un espectador, el juego se reanuda solo. El panel de administración muestra "Esperando espectadores…" en este estado.
## Preguntas del público (`/pregunta`)
Los espectadores pueden pagar 1€ a través de Redsys para proponer una pregunta de completar-la-frase. La pregunta se usa en el siguiente sorteo en lugar de generarla con IA. Requiere configurar las variables `REDSYS_*` en `.env`.
## Cómo funcionan las preguntas
El array `ALL_PROMPTS` en `prompts.ts` sirve únicamente como **guía de estilo**. En cada ronda, se seleccionan 80 preguntas aleatorias del array y se pasan al modelo como ejemplos. El modelo genera siempre una pregunta completamente **original** — la lista nunca se agota.