Integraciones y cambios seguros
Integraciones principales
Sección titulada «Integraciones principales»| Integración | Uso | Fallo esperado |
|---|---|---|
| Supabase | Usuarios, conversaciones, mensajes, estados y búsquedas | El chat persistente puede fallar o degradarse |
| Storage S3 compatible | Archivos de conversación | El texto puede analizarse, pero la carga persistente puede omitirse |
| Proveedores LLM | Planificación, herramientas, respuesta y evaluación | resilientChatCompletion puede usar fallback fuera del estudio fijado |
| PubMed | Evidencia biomédica y PMID verificados | La respuesta debe declarar que no hubo PMID verificado |
| Semantic Scholar / OpenScholar | Literatura adicional | La herramienta registra el fallo y el pipeline puede continuar |
| Conocimiento local / grafo | Recuperación especializada | El pipeline puede usar otro método o una respuesta directa |
| BiobadamexAI study harness | Llama la ruta stateless con nota desidentificada | 401 sin bearer válido; 503 si la clave no está configurada |
| x402 | Pago opcional para API externa | 402 o 429 según el estado del pago y límites |
Variables que definen comportamiento
Sección titulada «Variables que definen comportamiento»Esta lista nombra configuración, nunca valores:
- Servidor:
PORT,HOST,CORS_ORIGINS. - Estudio:
RHEUMAI_STUDY_API_KEY,CORS_STUDY_ORIGINS,RHEUMAI_STUDY_TOOL_ALLOWLIST,RHEUMAI_STUDY_MAX_PAID_CALLS. - Modelos:
REPLY_LLM_PROVIDER,REPLY_LLM_MODEL,HYP_LLM_PROVIDER,HYP_LLM_MODEL,STRUCTURED_LLM_MODEL. - ORVS:
ORVS_ENABLED,ORVS_VERSION. - Storage y base de datos: variables documentadas por los proveedores configurados; no copiarlas a la documentación.
- x402:
X402_ENABLED, entorno, dirección de pago y credenciales del facilitador.
Invariantes que no deben romperse
Sección titulada «Invariantes que no deben romperse»- La ruta de estudio permanece stateless y cerrada si falta la clave.
- El cuerpo de una nota no aparece en logs ni errores.
- Un pin de estudio obliga a usar el proveedor/modelo fijado y desactiva fallback entre modelos.
- Herramientas con costo quedan fuera del allowlist por defecto y el techo pagado predeterminado es cero.
- Los PMID publicados deben provenir del conjunto recuperado en ese turno.
- El chat clínico normal termina en
REPLY, salvo flujos explícitos de protocolo o investigación. - Un fallo de RheumAI nunca autoriza el envío de datos al registro.
- Solo un médico autoriza datos clínicos finales.
Mapa de cambios y pruebas
Sección titulada «Mapa de cambios y pruebas»| Si cambias | Revisa | Pruebas mínimas |
|---|---|---|
| Montaje de rutas o CORS | src/index.ts y plugins Elysia |
bun run build, smoke API sin mutaciones |
| Chat, orden de pasos o fallbacks | src/routes/chat.ts, src/services/chat/* |
tests de herramientas y smoke con datos sintéticos |
| Ruta de estudio | src/study/* |
bun test src/study/rheumaai-reply-route.test.ts src/study/tool-cap.test.ts |
| Proveedores/modelos | src/llm/* |
bun test src/llm/resilient.test.ts y pruebas de pin |
| ORVS o citas | src/tools/verification/* y control PMID |
tests unitarios, caso de PMID permitido y fabricado |
| Archivos o laboratorio | src/tools/file-upload/*, src/tools/lab-interpretation/* |
bun test src/tools/lab-interpretation/lab-interpretation.test.ts con fixtures sintéticos |
| Herramientas dinámicas | src/tools/index.ts |
arrancar el registro y revisar herramientas cargadas/fallidas |
| Interfaz | client/src/* |
bun run check, bun run build |
Verificación local recomendada
Sección titulada «Verificación local recomendada»bun install --frozen-lockfilebun run checkbun run buildbun test src/study/rheumaai-reply-route.test.ts \ src/study/tool-cap.test.ts \ src/tools/lab-interpretation/lab-interpretation.test.ts \ src/tools/knowledgeGraph/knowledgeGraph.test.tsEn el commit documentado, el conjunto enfocado anterior pasó 26 pruebas, 0 fallas después de una instalación congelada. El arranque del registro también mostró warnings por herramientas sin credenciales o sin index.ts; las pruebas enfocadas no sustituyen una verificación completa del servidor.
Los smoke tests que llaman servicios externos requieren configuración válida. No deben ejecutarse contra producción ni con notas reales como parte de una modificación rutinaria.
Estados del código
Sección titulada «Estados del código»- Activo: importado por
src/index.ts, la ruta de chat o una herramienta cargada y cubierto por pruebas observables. - Configurable: activo solo cuando una variable o proveedor está presente.
- Experimental: modos comparativos, benchmarks y scripts no usados por defecto.
- Placeholder o roto: carpeta registrada sin
index.ts, import que falla o integración que exige credenciales ausentes. - Legado: conservado para compatibilidad, pero no es el camino preferido.
No documentes una carpeta como funcional solo porque existe. Confirma su importación, configuración y prueba.
La cobertura automática no incluye las rutas principales de chat, investigación profunda, autenticación, comunidad, Telegram o x402, ni tiene pruebas de cliente. Una modificación en esas áreas necesita smoke checks sintéticos además de los tests existentes.