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 avatares3. 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 /voicesModo 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.