LeireWin

Integración y motores

Todo lo necesario para llevar a Leire a tu web, tu software y tus propios servidores.

Descargar motores (Docker)

1. Widget

<script src="https://TU-DOMINIO/widget.js" data-agent="leire" data-ref="cliente-123" async></script>

También puedes incrustar directamente https://TU-DOMINIO/talk/ID?embed=1 en un iframe con allow="microphone; autoplay".

2. API

Crea una clave en Panel → Integraciones. La conversación mantiene su memoria con conversation_id; el avatar usa sus herramientas y la búsqueda en internet igual que en voz.

curl -X POST https://TU-DOMINIO/api/public/v1/chat \
  -H "Authorization: Bearer lw_TU_CLAVE" -H "Content-Type: application/json" \
  -d '{"agent_id":"ID_DEL_AVATAR","message":"¿Tenéis mesa para 4 el sábado a las 21:00?"}'

# Respuesta
{"conversation_id":"…","reply":"¡Claro! Déjame comprobarlo…"}

GET https://TU-DOMINIO/api/public/v1/agents   # lista tus avatares

3. Herramientas (tu software actúa)

En cada avatar añade herramientas con nombre, URL, método y parámetros. Cuando la conversación lo pide, LeireWin llama a tu URL con un JSON con esos parámetros (o query string en GET) y usa tu respuesta para contestar.

POST https://tu-software.com/api/reservas
Content-Type: application/json
Authorization: Bearer <la cabecera que configures>

{"fecha":"2026-10-10 21:00","personas":4}

4. Webhooks

POST <tu URL>
X-LeireWin-Event: conversation.ended | message.created
X-LeireWin-Signature: sha256=<HMAC-SHA256(cuerpo, secreto)>

{"event":"conversation.ended","data":{"conversation_id":"…","agent_id":"…","channel":"widget","external_ref":"cliente-123","messages":[{"role":"user","text":"…"}]}}

5. Motor de avatar (labios reales)

Genera vídeo de la propia foto hablando: labios, dientes y cara se mueven con la voz. No se dibuja ninguna boca encima. Usa la red neuronal Wav2Lip: con GPU NVIDIA va en tiempo real con unos 0,35 s de retraso; solo con CPU funciona igual, con unos 0,6–1 s. LeireWin retrasa la voz exactamente lo que tarda el motor, para que labios y voz coincidan.

unzip leirewin-engines.zip && cd leirewin-engines
# Solo CPU (gratis, cualquier ordenador o VPS):
docker compose --profile cpu up -d
# Con GPU NVIDIA:
docker compose --profile gpu up -d

# Motor de avatar:  http://TU-IP:8765   -> pégalo en el avatar (Motor de avatar URL)
# Servidor de voz:  http://TU-IP:8766   -> pégalo en el avatar (Servidor de voz URL)

Para usarlo desde la web publicada necesitas HTTPS (por ejemplo con Cloudflare Tunnel: cloudflared tunnel --url http://localhost:8765). Para escalar, levanta varias réplicas detrás de un balanceador.

6. Servidor de voz (Piper, edge-tts, Whisper, Ollama)

POST /tts   {"text":"Hola","voice":"es-ES-ElviraNeural"}  -> audio
POST /stt   (multipart audio)                          -> {"text": "..."}
POST /chat  {"system":"...","messages":[...]}          -> {"text": "..."}  (Ollama local)
GET  /voices

Modo mixto: el cerebro va en la nube y la voz en tu servidor. Modo local: también el cerebro (Ollama) en tu servidor; si no responde, se usa la nube.