Marciano by Hostarys
Demo · IA

Habla con Marciano.

Un chat de verdad, con IA: pregúntale por hosting, dominios, correo o tu WordPress y te contesta en lenguaje llano. Mientras piensa pone cara de pensar, y al responder elige él mismo la expresión.

  • Pensando mientras espera la respuesta
  • Feliz / guiño en respuestas normales y consejos
  • Enamorado si le das las gracias
  • Triste si algo no funciona
  • Sorprendido con algo inesperado

Abajo a la derecha tienes también la versión flotante, lista para ponerla en cualquier página.

← Todas las demos

Marciano

Conectando…

Intro para enviar, Mayúsculas + Intro para una nueva línea.

Marciano puede equivocarse. Para precios, contratos o tu cuenta, contacta con el soporte de Hostarys.

Cómo funciona

El navegador habla con POST /api/chat, que llama a la API de Claude desde el servidor (la clave nunca llega al cliente) y devuelve la respuesta en streaming. Sin clave, el endpoint responde 503 y el chat usa el asistente sin conexión.

1. Variables de entorno

.env.local
# apps/web/.env.local (en Vercel: Settings → Environment Variables)
ANTHROPIC_API_KEY=sk-ant-...        # solo servidor, nunca NEXT_PUBLIC_
CLAUDE_MODEL=claude-haiku-5-5       # opcional

2. Protocolo de expresiones

Respuesta del modelo → eventos
// El modelo empieza cada respuesta con dos etiquetas:
[[mood:happy]][[say:¡A por ese dominio!]]¡Buena idea...

// /api/chat las separa del texto (aunque lleguen
// partidas entre trozos) y las envía como eventos SSE:
event: mood   data: {"mood":"happy"}
event: say    data: {"text":"¡A por ese dominio!"}
event: delta  data: {"text":"¡Buena idea..."}
event: done   data: {"stopReason":"end_turn"}

3. Personalidad

El prompt de sistema está en src/lib/chat/system-prompt.ts: tono, temas, reglas (no inventar precios ni compromisos, derivar al soporte de Hostarys) y el formato de etiquetas. Las expresiones válidas son dots, hearts, spiral, sleepy, cross, angry, surprised, happy, sad, wink y thinking; cualquier otra se convierte en dots.

4. Protecciones

  • Máx. 20 mensajes de historial y 2.000 caracteres por mensaje; respuestas de 600 tokens como mucho.
  • Mismo origen obligatorio y límite de 15 peticiones/minuto por IP (por instancia: en producción, añade una regla en Vercel Firewall).
  • No se registra el contenido de los mensajes.

5. Chat flotante

app/layout.tsx
// app/layout.tsx: el botón flotante en toda la web
import { MarcianoChatLauncher } from "@/components/chat";

<body>
  ...
  <MarcianoChatLauncher />
</body>