Transporte y despliegue

2.1 Despliegue por defecto

Un servicio DEBE escuchar por defecto en las direcciones loopback 127.0.0.1 y ::1. El puerto convencional es 17832, lo que fija la dirección base por defecto en http://127.0.0.1:17832.

Elemento Valor
Direcciones de escucha 127.0.0.1 y ::1
Transporte HTTP/1.1 o HTTP/2 con JSON
Streaming Eventos enviados por el servidor, Content-Type: text/event-stream
Prefijo de la interfaz principal /lmsp/v1
Prefijo compatible con OpenAI /v1
Descripción del servicio GET /.well-known/lmsp.json
Contrato legible por máquina GET /lmsp/v1/openapi.json
Canal local opcional Socket de dominio Unix o canal con nombre de Windows

Las solicitudes y las respuestas usan JSON en UTF-8 (Content-Type: application/json), salvo los flujos (text/event-stream) y los errores (application/problem+json). Las marcas de tiempo son enteros: segundos desde la época Unix. Los identificadores son cadenas opacas; un prefijo de tipo como resp_ o task_ es RECOMENDADO.

El contrato de la interfaz es un documento OpenAPI 3.2. OpenAPI 3.2 puede describir eventos enviados por el servidor, JSON Lines y JSON Sequences, de modo que los endpoints de streaming se especifican en el mismo documento que el resto. El contrato de esta versión se publica en /lmsp/1.0/openapi.json.

Un servicio PUEDE aceptar también conexiones en un socket de dominio Unix o en un canal con nombre de Windows con la misma semántica HTTP. En 1.0, la forma de anunciar esos endpoints se deja a las extensiones.

2.2 Funcionamiento permanente

Un servicio DEBERÍA ser alojado por el sistema operativo: launchd en macOS, systemd en Linux y el administrador de servicios en Windows.

El proceso del servicio y los procesos de modelo DEBERÍAN estar separados. Un fallo de un modelo DEBERÍA afectar solo a las tareas que usan ese modelo. NO DEBERÍA dejar sin disponibilidad el descubrimiento del servicio, el catálogo de modelos ni las consultas sobre tareas anteriores.