Cómo probar una API compatible con OpenAI
Guía de producción: Cómo probar una API compatible con OpenAI. Incluye un artefacto determinista, límites de fallo, controles de despliegue y fuentes verificadas.
Guía de producción: Cómo probar una API compatible con OpenAI. Incluye un artefacto determinista, límites de fallo, controles de despliegue y fuentes verificadas.
Decisión primero
Cómo probar una API compatible con OpenAI es un contrato explícito de producción, no un cambio aislado. Defina éxito, fallo terminal y rollback antes de mover tráfico; el artefacto separa evidencia de supuestos.
Empiece por text, demuestre stream con un caso determinista y convierta errors en una condición de despliegue.
Artefacto reutilizable
Una fila solo pasa cuando la evidencia procede de la misma solicitud, ventana de prueba o versión de configuración.
| Punto de control | Evidencia | Condición de aprobación |
|---|---|---|
text |
non-stream_response,finish_state,empty_and_Unicode_input |
El valor se conserva y compara exactamente en el límite del protocolo. |
stream |
SSE_event_order,terminal_marker,usage_placement,disconnect |
El registro une una solicitud lógica y un intento concreto. |
tools |
single_and_parallel_calls,argument_schema,call_correlation |
El registro une una solicitud lógica y un intento concreto. |
schema |
valid_object,refusal,truncation,unsupported_keyword |
El límite es explícito y falla de forma cerrada. |
usage |
input,output,cache_read/write,missing_categories |
Reserva, observación y valor final cuadran en un ledger duradero. |
errors |
401,403,429,499,5xx_outer_and_embedded_failures |
Owner, fuente, fecha y limitación quedan registrados. |
Ejemplo resuelto
El ejemplo es sintético y determinista. Sustituya parámetros por valores revisados; no incluya secretos ni datos de clientes.
corpus_version: 1
cases:
- id: text/non_stream_zero_values
request: { stream: false, temperature: 0 }
assert: [http_status, response_shape, explicit_zero_preserved]
- id: stream/disconnect
action: cancel_after_first_content_delta
assert: [client_cancelled, upstream_cancelled, terminal_state_recorded]
- id: tools/two_calls
assert: [stable_call_ids, arguments_validated, results_correlated]
- id: errors/rate_limit
assert: [status_429, retry_after_parsed, attempt_budget_respected]
Procedimiento de implantación
- Congele solicitud, respuesta, configuración y línea base observable.
- Ejecute un caso positivo determinista y conserve el resultado completo.
- Ejecute el caso negativo o límite correspondiente.
- Una todos los intentos con un ID lógico y registre tiempo, estado final y uso sin contenido sensible.
- Despliegue en una cohorte acotada con condiciones de parada.
- Relea el estado duradero y el comportamiento público; revierta si falla una invariante.
Modos de fallo
Estos fallos invalidan el resultado aunque el HTTP exterior parezca correcto:
- Una sola respuesta de texto se toma como prueba de compatibilidad completa.
- Se pierde un
0ofalseexplícito durante la serialización. - Se lee un campo cómodo y se pierden outputs tipados, tools, rechazos o resultados parciales.
- Se reintenta sin presupuesto y se amplifica la carga.
Límite de Modelflare
Modelflare centraliza rutas compatibles con OpenAI, claves, grupos, uso y fallos, pero una ruta configurada no prueba todas las capacidades del proveedor. Verifique modelo y canal por el protocolo nativo; conserve ceros explícitos y use la liquidación duradera como verdad de facturación.
Consulte la guía principal para el límite de decisión y la documentación para la configuración actual.
Lista previa a publicación
- Responder primero a la pregunta principal.
- Asignar un owner a cada campo, estado, métrica y fórmula.
- Usar solo identificadores sintéticos.
- Mantener estructura, código, límites y advertencias en todos los idiomas.
- Revalidar contratos, soporte y precios en T-1; mover la fecha si cambia un hecho.
- Antes de la hora, excluir la página de API pública, rutas y sitemap.
Fuentes y fecha de verificación
Fuentes verificadas el 2026-08-07; no demuestran compatibilidad de una ruta no probada.