Dejar la API es una línea de código.
La reescritura para la que todos reservan presupuesto no existe. Los serving stacks self-hosted hablan la misma API compatible con OpenAI que su código ya llama, así que la migración de la fontanería es la base URL. El resto honesto son evals, no ingeniería, y corta en ambos sentidos: la misma línea que le permite dejarlos a ellos le permite dejarnos a nosotros.
En este artículo 3 secciones
- Los equipos se quedan en APIs de IA alojadas mucho después de querer irse, porque han presupuestado una reescritura. Para la infraestructura de debajo, esa reescritura no existe: los serving stacks self-hosted exponen la misma API compatible con OpenAI que su código ya habla.
- La migración del lado de la aplicación es la base URL y la key. Sus prompts, sus handlers de streaming, sus herramientas: sin cambios.
- El resto honesto es el comportamiento del modelo: un modelo distinto responde distinto, así que el trabajo real de la migración es ejecutar sus evals sobre sus propias tareas. Menor que una reescritura, y comprobable antes de comprometerse.
- La misma propiedad le protege a la salida: open weights más una API estándar significan que dejarnos también es una línea. Vendemos a clientes que pueden irse.
La reunión ocurre en todas partes. Todos en la sala quieren dejar la API alojada, elija el motivo: los datos que no deberían salir, el tramo de rate limit que no sobrevivirá al roadmap, la factura que escala con el éxito. Y entonces alguien dice la frase que la termina: estamos demasiado integrados, sería una reescritura. Seis meses después, misma reunión, misma frase, un sprint más de lógica de reintentos entre medias.
La frase merece una auditoría, porque la integración que describe tiene la profundidad de un valor de configuración.
h2 (#the-standard): El mundo se estandarizó mientras usted no miraba
Algo útil ocurrió en el mundo del serving en los últimos años: el formato de la API de OpenAI se convirtió en el wire standard de facto para hablar con modelos de lenguaje, y los serving stacks de código abierto lo adoptaron a propósito. Mismas rutas, mismo formato de petición, mismo protocolo de streaming, para el núcleo de uso general de la superficie: chat completions, streaming, embeddings. Cuando entregamos un endpoint privado, habla ese dialecto de forma nativa. Su SDK no sabe que se ha mudado. Si su aplicación se apoyó en los extras propietarios de un proveedor, eso es una auditoría corta, no una reescritura, y la recorremos con usted: la mayoría de los extras tienen equivalentes directos o shims finos.
- OPENAI_BASE_URL=https://api.vendor.example/v1
+ OPENAI_BASE_URL=https://inference.yourcompany.internal/v1
OPENAI_API_KEY=**** # your key, issued by you, revoked by youPrompts, handlers de streaming, lógica de reintentos, herramientas: intactos. Ese diff es toda la migración de la fontanería. Precisamente por eso el presupuesto de reescritura merece sospecha: se calculó para un mundo en el que cada proveedor tenía su propio wire format, y ese mundo ha desaparecido.
h2 (#the-honest-remainder): Lo que cambia de verdad: el modelo
Ahora la mitad honesta, porque la afirmación de la única línea solo es cierta para la infraestructura de debajo. Un modelo distinto es un colega distinto. Hágale la misma pregunta y la respuesta vuelve redactada y estructurada de otra manera. Los prompts ajustados para un modelo pueden necesitar adaptación. Los casos límite se desplazan. Esto es trabajo real. También es acotado, comprobable y barato comparado con lo que presupuestó: ejecute su conjunto de evals existente (o construya el pequeño que debería tener de todos modos) contra el modelo candidato en sus tareas reales, compare, decida. Ocurre antes de comprometerse, en un endpoint que puede probar, no después de una reescritura que no puede deshacer.
| UNA LÍNEA (LA FONTANERÍA) | TRABAJO REAL (EL MODELO) |
|---|---|
| LA PARTE QUE TODOS SOBREESTIMANLa base URL y la API key | Ejecutar sus evals en el nuevo modelo |
| Formatos de petición y respuesta, streaming | Ajustes de prompts donde cambió el comportamiento |
| Su código de reintentos y herramientas | Decidir cuantización y dimensionamiento (eso lo asumimos nosotros) |
| Extras de API específicos del proveedor, si los usó | Una auditoría corta: sustituir o poner un shim a cada uno |
Fíjese en lo que no apareció en esa tabla: ninguna afirmación de que el modelo abierto sea igual de bueno. No hacemos esa afirmación, porque envejece mal y porque no debería aceptarla de un proveedor en ningún caso. La ejecución de los evals sustituye a la afirmación. Sus tareas, ambos modelos, lado a lado, y la decisión es suya con las pruebas delante. Esa pasada de evals forma parte de nuestro despliegue, junto con el dimensionamiento y el compromiso de la cuantización (que mostramos, no escondemos), que es donde un proveedor gestionado se gana su tarifa.
h2 (#both-ways): La línea corta en ambos sentidos, a propósito
Todo lo anterior describe también dejarnos a nosotros. Los open weights son archivos portables. El endpoint habla el dialecto estándar. Sus datos viven en su máquina y se marchan con usted. Si dejamos de merecer la carga de trabajo, la migración lejos de nosotros es la misma única línea, y lo construimos así deliberadamente, por la misma razón por la que el resto de esta empresa eliminó los contadores y rechaza los impuestos de salida (el argumento sobre las tarifas de egress es la misma postura una capa más abajo). Un anti-lock-in que no puede ejercer es una palabra de folleto. Los clientes que pueden irse, y se quedan de todos modos, son la única referencia que vale.
Una libertad más viaja con ello: una vez que el modelo es suyo, nadie lo retira debajo de sus prompts, y la versión que pasó sus evals sigue siendo la versión que responde hasta que usted decida otra cosa. En una API alojada, ese calendario pertenece a otro.
“La misma línea que le permite dejarlos a ellos le permite dejarnos a nosotros. Ese es el sentido.”
Respuestas directas
¿La API compatible con OpenAI es realmente compatible?+
El núcleo de uso general (chat completions, streaming, embeddings) es el estándar de facto que implementa el mundo del serving. Si se apoyó en los extras propietarios de un proveedor, estos reciben una auditoría corta: la mayoría tienen equivalentes directos o shims finos, y recorremos esa lista con usted.
¿Qué pasa con mi prompt engineering?+
La mayor parte se transfiere. Una parte necesita ajuste donde el comportamiento del nuevo modelo difiere, y sus evals le muestran exactamente dónde. Presupueste horas de ajuste de prompts, no una reescritura.
A una línea de su propio endpoint.
Tráiganos el modelo que quiere ejecutar. Lo dimensionaremos, lo desplegaremos detrás de la API que su código ya habla, y ejecutaremos los evals con usted antes de que cambie nada.
Hable con un ingenieroHa llegado al final.
Ponga la lectura a trabajar
¿Qué está ejecutando?
Cuéntenos la carga de trabajo, el tráfico y los requisitos de recuperación. Empiece por el configurador de servidores o repase los detalles con un ingeniero.
Escrito por los ingenieros que construyen y operan la infraestructura que describe.Hable con un ingeniero
