LibreChat: operar una interfaz compartida de IA
Lea la compuerta de readiness de LibreChat
Interprete SERVER_NOT_READY siguiendo el middleware, su montaje y los endpoints de salud del servidor fijado.
Qué aprenderás
- Una rama explícita
- Salud y preparación
- Plan de aceptación
Antes de empezar
- Lectura básica de comandos y configuración
- Entorno de ensayo desechable y autorizado
Construya un monitor de solo lectura que diferencie proceso accesible, aplicación lista y conversación de modelo completada.
Conclusiones clave
- POST nuevo sin readiness recibe un código explícito.
- Abort y otros métodos pasan esta compuerta.
- Liveness no demuestra preparación.
Una rama explícita
rejectChatStartsUntilReady deja pasar si el servidor está listo, el método no es POST o la ruta es /abort. En otro caso responde 503 con Retry-After de un segundo y código SERVER_NOT_READY.
El middleware se monta en /api/agents/chat. La observación se limita a esa familia; no demuestra que todas las escrituras compartan la compuerta. Las escrituras de calendarios tienen otra construcción de readiness.
Salud y preparación
/health y /livez devuelven 200 cuando son accesibles. /readyz devuelve 503 y NOT_READY mientras serverReady sea false. Un monitor que solo consulta /health puede ignorar inicialización incompleta tras comenzar a escuchar.
El callback de escucha establece true al completar trabajo y false cuando captura un error, que registra. Revise esa causa antes de rotar claves del proveedor o repetir indefinidamente una petición.
Plan de aceptación
Cubra POST preparado, POST no preparado, método distinto de POST y excepción /abort. Compruebe estado, cuerpo y Retry-After por separado. Añada otra prueba para montaje y transiciones reales de arranque.
Inspeccionamos las ramas sin ejecutar el servidor ni sus pruebas upstream. La tabla siguiente es una propuesta de fixture. No es un informe de pruebas superadas ni una certificación de fiabilidad global.
Cómo elegir
| Criterio | Opción A | Opción B |
|---|---|---|
| Best when | You need predictable behavior and easy auditing | You need adaptive optimization and have reliable telemetry |
| Main risk | May leave performance on the table | Can become difficult to explain or debug |
Pasos de implementación
- 1
Lea middleware y montaje juntos.
- 2
Compare /livez y /readyz durante un arranque controlado.
- 3
Separe pruebas de ramas e inicialización.
Ejemplo para copiar
ready=true → next
ready=false, method!=POST → next
ready=false, path=/abort → next
otro caso → 503 + Retry-After: 1 + SERVER_NOT_READYPreguntas frecuentes
¿Todo 503 exige otra clave?
SERVER_NOT_READY apunta primero a inicialización de la aplicación.
¿Cubre todas las rutas?
La revisión identifica el montaje de chat de agentes; otras rutas requieren análisis.
Fuentes
- LibreChat / api/server/index.jsFuente verificada 2026-09-18