⏱️ Lectura: 19 min
Autor: Juan Carlos · Afiliación: elsolitario.org — análisis técnico independiente · Fecha de publicación: 2026-04-22 · Versión del artículo: v1.0 (primer post nativo en formato IMRyD v2.0)
📑 En este artículo
- Resumen estructurado
- 1. Introducción
- 2. Metodología
- 3. Trabajos previos y contexto histórico
- 4. Resultados
- 5. Discusión
- 6. Limitaciones del estudio
- 7. Recomendaciones por perfil de usuario
- 8. Conclusiones y trabajo futuro
- Preguntas frecuentes
- ¿Cuál es el mínimo para llamar a mi servidor «OpenAI-compatible»?
- ¿Por qué el estándar OpenAI ganó y no el de HuggingFace o Anthropic?
- ¿Cuál es la diferencia entre Chat Completions y Responses API?
- ¿Es seguro exponer mi servidor OpenAI-compat a internet?
- ¿LiteLLM hace que mi app sea 100% portable?
- ¿Anthropic tiene endpoint OpenAI-compatible?
- Declaraciones
- Referencias
Resumen estructurado
Contexto. La inferencia de Large Language Models se disputó durante 2020–2023 entre formatos propietarios (OpenAI, Anthropic, Cohere) y estándares abiertos (HuggingFace Inference). A partir de 2024 emergió un contrato de-facto —no publicado por ningún organismo de estándares— centrado en los endpoints /v1/chat/completions de OpenAI, que la comunidad open-source y gran parte de los competidores comerciales adoptaron como interfaz unificada.
Metodología. Se verificó la especificación oficial mediante el repositorio openai/openai-openapi (OpenAPI 3.1, 26k líneas, 76 paths, 284 schemas) el 2026-04-22, se auditaron 16 implementaciones (8 open-source auto-hospedables, 8 cloud), y se contrastaron claims documentales con threads de issues de GitHub y bugs reportados.
Resultados. La adopción se explica por dos mecanismos técnicos: (i) la publicación del SDK oficial openai Python/Node con parámetro base_url configurable, y (ii) un MVP de únicamente 2 endpoints (/v1/chat/completions con SSE streaming + /v1/models) que hereda gratis acceso a LangChain, LlamaIndex, Continue, Aider y Cursor. Se identificaron divergencias sistemáticas en logprobs, seed, n>1, Batch API, Assistants, moderations, structured outputs y reasoning content.
Conclusiones. El estándar «OpenAI-compatible» es un contrato interoperable parcial, no una especificación formal. Es suficiente para arquitecturas de agentes, chat y embeddings; insuficiente para reproducibilidad científica estricta y features propietarias de frontera. Para equipos LATAM, habilita portabilidad real entre providers cambiando una variable de entorno.
Palabras clave: OpenAI API, LLM inference, OpenAI-compatible, de-facto standard, LiteLLM, vLLM, Ollama, chat completions, SSE streaming, API interoperability.
1. Introducción
1.1 Contexto del problema
Hasta 2023, cada proveedor de modelos de lenguaje publicaba su propia interfaz: OpenAI usaba /v1/completions [1], Anthropic publicaba /v1/messages, Cohere exponía /v1/chat con su propio esquema, y HuggingFace mantenía endpoints por pipeline (text-generation, text-to-image). El resultado: cada aplicación cliente debía implementar adaptadores por proveedor, con fricción de migración alta.
A partir de marzo de 2023, con el lanzamiento del endpoint /v1/chat/completions de OpenAI [2], comenzó un proceso de convergencia en el que implementaciones open-source (Ollama, vLLM, llama.cpp, LM Studio) y competidores comerciales (Groq, Mistral, DeepSeek, Qwen, Fireworks, Together AI, OpenRouter) adoptaron el mismo formato JSON. Este artículo audita la especificación, las implementaciones y las limitaciones de este contrato emergente.
1.2 Trabajos previos y formatos alternativos
Antes de la convergencia OpenAI, hubo tres intentos notables de estandarización fallida:
- HuggingFace Inference API — shape propio por pipeline, no ganó tracción fuera del ecosistema HF. En 2025, HuggingFace capituló y adoptó formato OpenAI-compatible para sus 15+ Inference Providers [3].
- Cohere /v1/chat — formato con
chat_history+messageestructurados; sobrevivió pero nunca logró adopción externa. - ONNX Runtime + OpenVINO — estándares a nivel de formato de modelo, no de API HTTP.
La OpenAI API ganó por efecto red del SDK oficial: una vez que openai.chat.completions.create() aceptó base_url arbitrario [4], cualquier servidor que devolviera el mismo JSON quedó automáticamente compatible con miles de apps downstream. El costo de migración bajó a cero.
1.3 Pregunta de investigación
¿Constituye la API de OpenAI un estándar técnico suficiente para interoperabilidad real entre proveedores de inferencia LLM, o existen divergencias sistemáticas que comprometen la portabilidad prometida?
1.4 Contribuciones
Este artículo aporta:
- Cronología verificada de la evolución de la especificación OpenAI (2020–2026) con fuentes primarias.
- Catálogo auditado de 16 implementaciones (open-source + cloud) con endpoints cubiertos y gaps conocidos.
- Evaluación cuantitativa de divergencias entre implementaciones en 8 categorías de funcionalidad.
- Propuesta de MVP mínimo para construir un servidor propio OpenAI-compatible.
- Declaración explícita de riesgos de seguridad y limitaciones de la «compatibilidad».
2. Metodología
2.1 Fuentes primarias
Se consultó la especificación oficial de OpenAI en el repositorio público github.com/openai/openai-openapi [5], branch manual_spec (OpenAPI 3.1, 26k líneas, 76 paths, 284 schemas). Fecha de consulta: 2026-04-22. Se validó complementariamente con developers.openai.com/api/reference [6].
2.2 Fuentes secundarias
Documentación oficial de cada implementación auditada (URLs individuales citadas en §4), más cobertura analítica por Simon Willison [7], Keywords AI [8], Mozilla.ai [9], Deepankar Mahapatro [10] y threads técnicos en GitHub Issues de los repositorios respectivos.
2.3 Criterios de inclusión / exclusión
Se incluyeron: (a) implementaciones que declaran explícitamente compatibilidad OpenAI en documentación oficial, (b) con endpoint /v1/chat/completions verificable al 2026-04-22. Se excluyeron: (c) proyectos archivados o sin actividad en los últimos 12 meses, (d) wrappers únicamente del lado cliente (SDKs sin servidor).
2.4 Herramientas de verificación
GitHub CLI (gh api repos/...), búsqueda web (Brave + DuckDuckGo), agent-reach digest sobre threads de Hacker News y r/LocalLLaMA, y pruebas empíricas con curl contra endpoints locales (Ollama 11434, LM Studio 1234) cuando estaban disponibles.
2.5 Limitaciones metodológicas declaradas
- No se ejecutaron benchmarks de throughput contra cada implementación.
- No se validó empíricamente el soporte de streaming SSE en cada una de las 16 implementaciones — se confió en la documentación oficial.
- No se audita el comportamiento bajo carga ni edge cases (cancelación de streams, timeouts).
- No se evalúa la exactitud de las respuestas de los modelos subyacentes — solo la conformidad del contrato HTTP.
3. Trabajos previos y contexto histórico
La evolución del estándar puede dividirse en cinco hitos documentados:
| Fecha | Hito | Fuente |
|---|---|---|
| 2020-06-11 | OpenAI lanza API original con /v1/completions (GPT-3 private beta) |
TechCrunch [1] |
| 2023-03-01 | Introducción de /v1/chat/completions con gpt-3.5-turbo — formato messages[] con roles |
OpenAI Changelog [2] |
| 2023-06-13 | Function calling añadido al chat/completions; JSON-schema en tools |
OpenAI Docs [11] |
| 2023-11 (DevDay) | Vision (image_url), seed, logprobs, response_format: json_object, Assistants API |
InfoQ [12] |
| 2024-02 | Ollama adopta OpenAI-compatibility oficialmente | Ollama Blog [13] |
| 2025 | Responses API stateful; OpenAI declara Chat Completions «supported indefinitely as an industry standard» | OpenAI Community [14] |
| 2025 | HuggingFace capitula y adopta OpenAI-compatible en todos sus Inference Providers | HuggingFace Changelog [3] |
4. Resultados
4.1 Especificación técnica canónica
Los endpoints bajo /v1/ agrupados por dominio [6]:
| Endpoint | Función | Método |
|---|---|---|
/chat/completions |
Conversación — endpoint dominante | POST |
/completions |
Text completion legacy | POST |
/embeddings |
Vectores de embedding | POST |
/models, /models/{id} |
Listado de modelos disponibles | GET |
/audio/transcriptions, /translations, /speech |
Whisper STT + TTS | POST |
/images/generations, /edits, /variations |
DALL-E | POST |
/moderations |
Safety classifier | POST |
/files, /fine_tuning/jobs, /batches |
Entrenamiento y batch async | POST |
/responses (2025) |
Primitiva agéntica stateful | POST |
4.2 Shape canónico de /v1/chat/completions
Request: model (string), messages (array de {role, content}), temperature, top_p, n, stream, max_tokens, tools, tool_choice, seed, logprobs, response_format, presence_penalty, frequency_penalty, logit_bias.
Response: id, object:"chat.completion", created, model, choices[].message, choices[].finish_reason, usage{prompt_tokens, completion_tokens, total_tokens} [6].
4.3 Streaming Server-Sent Events
Content-Type text/event-stream. Cada chunk: data: {<chunk-json>}\n\n con object: "chat.completion.chunk" y choices[].delta.content incremental. Terminador obligatorio: la línea literal data: [DONE]\n\n [15].
4.4 Implementaciones auditadas (16)
| Proyecto | Lang | Puerto | Licencia | Endpoints implementados |
|---|---|---|---|---|
| Ollama [16] | Go | 11434 | MIT | chat/completions, completions, embeddings, models, responses (v0.13.3+) |
| vLLM [17] | Python | 8000 | Apache-2.0 | chat, completions, embeddings, models, audio/transcriptions, Realtime WS |
| llama.cpp server [18] | C/C++ | 8080 | MIT | chat, embeddings, tool calling, vision |
| LM Studio [19] | TS + Electron | 1234 | Proprietary (free) | chat, completions, embeddings, models, responses + Anthropic-compat |
| HF TGI [20] | Rust + Python | 8080 | Apache-2.0 | Messages API desde v1.4.0 (feb 2024) |
| text-generation-webui [21] | Python | 5000 | AGPL-3.0 | chat, completions, embeddings + Anthropic messages |
| TabbyAPI [22] | Python (FastAPI) | 5000 | AGPL-3.0 | OAI sobre ExllamaV2/V3 |
| LocalAI [23] | Go | 8080 | MIT | Near-full surface (incl. audio, images, responses) |
| LiteLLM Proxy [24] | Python | 4000 | MIT | Full OAI → 100+ providers (Bedrock, Vertex, Anthropic, Cohere) |
| OpenRouter [25] | cloud | n/a | SaaS | chat, completions, models, Responses beta |
| Together AI [26] | cloud | n/a | SaaS | chat, completions, embeddings, images, audio |
| Groq [27] | cloud | n/a | SaaS | chat/completions, models, audio |
| Fireworks AI [28] | cloud | n/a | SaaS | chat, completions, embeddings, images |
| Anthropic [29] | cloud | n/a | SaaS | OAI-compat beta: chat completions only, «test-only, not production-recommended» |
| Azure OpenAI [30] | cloud | n/a | SaaS | Same path shape, works with official SDK directly |
| Anyscale Endpoints | cloud | n/a | SaaS (privatizado 2024) | chat, completions, embeddings |
4.5 Divergencias sistemáticas identificadas
Analizando la cobertura de features entre las 16 implementaciones, se identifican 6 categorías con divergencia notable:
| Feature | Implementaciones con soporte completo | Gaps observados |
|---|---|---|
logprobs + top_logprobs |
OpenAI, Azure, LocalAI | Groq, Ollama parcial, Anthropic no |
seed determinístico + system_fingerprint |
OpenAI únicamente | El resto lo aceptan pero no garantizan reproducibilidad |
n > 1 (múltiples completions) |
OpenAI, vLLM | Groq, Ollama no soportan |
Batch API (/v1/batches) |
OpenAI, Azure, Anthropic | Ninguna open-source |
| Assistants API | OpenAI únicamente | Ninguna otra implementación |
| Moderations | OpenAI únicamente | Reemplazable con Llama Guard local, pero no con el contrato /v1/moderations |
| Fine-tuning jobs | OpenAI, Fireworks, Together | Ollama, vLLM, llama.cpp no exponen API |
Structured Outputs (strict: true) |
OpenAI, Azure, Groq (parcial) | Anthropic ignora strict; vLLM tiene guided_json extendido |
4.6 Extensiones fuera de especificación
Varias implementaciones añaden parámetros propios no presentes en OpenAI [17][16]:
- vLLM:
guided_json,guided_regex,guided_grammar,guided_choice,prefix_caching. - Ollama:
keep_alive,options.num_ctx,options.num_gpu. - llama.cpp: endpoints extra
/slots,/tokenize,/props.
4.7 MVP para construir un servidor OpenAI-compatible
Los 2 endpoints mínimos que heredan gratis el ecosistema [31]:
# MVP: FastAPI (Python) — ~80 líneas
@app.post("/v1/chat/completions")
async def chat_completions(req: ChatRequest):
if req.stream:
return StreamingResponse(sse_generator(req), media_type="text/event-stream")
return {"id": "...", "object": "chat.completion", "created": int(time.time()),
"model": req.model, "choices": [...], "usage": {...}}
@app.get("/v1/models")
async def list_models():
return {"object": "list", "data": [{"id": "mi-modelo", "object": "model", ...}]}
Test dorado:
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="dummy")
client.chat.completions.create(model="mi-modelo", messages=[{"role":"user","content":"hi"}])
Si este snippet funciona (incluyendo streaming y tool_calls básicos), el servidor es «compatible suficiente» para el 90% del ecosistema [32].
5. Discusión
5.1 Fortalezas verificables del estándar
Portabilidad real en casos básicos: swappear proveedor = cambiar un env var. Groq, DeepSeek, Mistral, xAI, Qwen, Together, Fireworks adoptaron el patrón base_url explícitamente [33]. Los ejemplos de documentación oficial muestran que el mismo código Python con OpenAI(base_url=...) funciona contra cualquiera.
Ecosistema gratuito: LangChain admite base_url nativamente [34], LlamaIndex tiene clase OpenAILike exactamente para endpoints compatibles [35], y Continue.dev, Aider, Cline, Cursor, Haystack, AutoGen aceptan OPENAI_BASE_URL. Implementar 2 endpoints → 20+ herramientas funcionan sin cambios.
LiteLLM como pegamento universal [24]: traduce a formato OpenAI 100+ proveedores incluyendo no-compatibles (Bedrock Converse, Anthropic Messages native). Añadir un provider nuevo es editar un JSON.
5.2 Debilidades y riesgos
La «compatibilidad» es parcialmente una ilusión. Como concluye Deepankar Mahapatro en su análisis «The OpenAI Compatibility Paradox» [10]: «‘OpenAI-compatible’ currently means ‘similar enough to seem interchangeable until it’s not.’ Abstraction layers like LiteLLM inherit the problem and don’t actually insulate developers from fragmentation.»
Features de frontera divergen: reasoning content de modelos tipo o1/o3, structured outputs estrictos, prompt caching, y Responses API stateful de 2025 están fragmentando el estándar. Mozilla.ai documentó que cada proveedor inventó su propio campo para reasoning (reasoning_content vs thinking) [9].
Streaming SSE es el punto más roto: muchos servidores open-source olvidan el \n\n terminal o dividen tokens UTF-8 entre chunks, rompiendo SDKs. Ver por ejemplo LocalAI issue #2101 [36].
Tool calling diverge: OpenAI, Azure, Groq, LM Studio, y Ollama v0.3+ implementan el contrato tools/tool_calls nativamente. TGI lo tiene parcial. llama.cpp y vLLM recurren a grammar-constrained JSON para coercionar modelos no entrenados en tool use [17].
5.3 Red flags identificados
- Lock-in sutil en plataformas cloud: AWS Bedrock añadió endpoint OpenAI-compat solo para modelos OpenAI hosteados; para Claude en Bedrock hay que volver a boto3 [37]. La «portabilidad» se rompe en fronteras de provider.
- Seguridad por default insuficiente: vLLM documenta que
--api-keysolo protege/v1; endpoints como/healthy/metricsquedan abiertos [38]. - Bill shock es el riesgo operacional #1: keys filtradas generan USD 4k–15k en horas; OpenAI escanea GitHub y desactiva keys detectadas [39].
- Responses API (2025) introduce un segundo contrato stateful, divergente de chat/completions — riesgo de nuevo split si los implementadores se quedan atrás.
5.4 Contextualización histórica
El patrón recuerda a la convergencia de otros estándares de-facto en la historia del software:
- S3 API para object storage (2006): MinIO, Cloudflare R2, Backblaze B2, DigitalOcean Spaces, Wasabi — todos implementan el contrato AWS S3. Idéntica lógica: SDK ecosystem +
endpoint_urloverride. - Kubernetes API: K3s, OpenShift, Rancher — mismo contrato base, diferencias en extensiones.
- Bitcoin RPC: Bitcoin Core definió el JSON-RPC que Bitcoin Cash, Litecoin y forks heredaron.
En todos los casos la convergencia ocurrió por efecto red del ecosistema cliente, no por consenso formal de un body de estándares (ISO, IETF, IEEE).
6. Limitaciones del estudio
- No se ejecutaron benchmarks de throughput, latencia o fidelidad de respuesta contra ninguna implementación.
- No se validó empíricamente la correctitud de streaming SSE en las 16 implementaciones.
- La clasificación de «completo» vs «parcial» se basa en documentación oficial; puede haber gaps no declarados.
- El corte temporal de fuentes es 2026-04-22; cambios posteriores no están reflejados.
- No se auditan licencias de modelos individuales (ej: restricciones de uso comercial en Llama, Gemma).
7. Recomendaciones por perfil de usuario
| Perfil | Recomendación | Justificación |
|---|---|---|
| Developer solo construyendo producto | ✅ Adoptar OpenAI SDK + base_url |
Máxima portabilidad con fricción cero |
| Equipo ML con múltiples providers | ✅ LiteLLM Proxy como capa central | 100+ providers normalizados, observabilidad integrada |
| Self-hoster (privacidad + costo cero) | Ollama (simplicidad) o vLLM (throughput) | Ambos exponen /v1/chat/completions nativo |
| Aplicación que requiere reasoning content (o1/o3) | ⚠️ Cuidado — formato de reasoning_content no estandarizado |
Necesitarás adapter propio |
| Investigación que requiere reproducibilidad | ❌ Evitar — seed solo determinístico en OpenAI |
Usar modelos locales con seeds explícitas y registro completo de weights |
| Construir servidor propio OpenAI-compat | ✅ FastAPI + 2 endpoints + SSE | Ecosistema entero hereda gratis, referencia: vLLM + llama.cpp |
8. Conclusiones y trabajo futuro
El estándar OpenAI-compatible API es una convergencia pragmática, no una especificación formal. Funciona suficientemente bien para chat, embeddings y tool calling básico — suficientes para la mayoría de aplicaciones. Falla en reproducibilidad científica, features de frontera, y cuando se atraviesan fronteras de provider comercial.
Para LATAM y equipos pequeños, la recomendación práctica es: (i) escribir código contra el SDK openai oficial con base_url configurable, (ii) introducir LiteLLM Proxy como capa de abstracción cuando haya 3+ providers, y (iii) documentar explícitamente cualquier dependencia en features no-compat (Batch, Assistants, Responses) para facilitar migraciones futuras.
Trabajo futuro: (a) benchmarks empíricos de conformidad por implementación, (b) testing de robustez de streaming SSE bajo carga, (c) análisis comparativo de la nueva Responses API stateful y su adopción, (d) evaluación de Mozilla any-llm y Llama Stack como capas de normalización para reasoning content.
Preguntas frecuentes
¿Cuál es el mínimo para llamar a mi servidor «OpenAI-compatible»?
Implementar POST /v1/chat/completions (con stream: true vía SSE) y GET /v1/models. Con eso, el SDK openai oficial funciona — y por tanto funcionan LangChain, LlamaIndex, Continue, Aider y Cursor.
¿Por qué el estándar OpenAI ganó y no el de HuggingFace o Anthropic?
Efecto red del SDK. OpenAI publicó SDKs oficiales (Python, Node) con base_url configurable temprano. Cualquier servidor que cumpliera el contrato heredaba gratis miles de apps. HuggingFace capituló en 2025 y adoptó el formato OpenAI en sus Inference Providers [3].
¿Cuál es la diferencia entre Chat Completions y Responses API?
Chat Completions es stateless (tú mantenés el messages[]); Responses API es stateful (OpenAI mantiene el estado conversacional del lado server). OpenAI declaró que Chat Completions seguirá «supported indefinitely as an industry standard» [14], pero Responses puede divergir del estándar en features agénticas.
¿Es seguro exponer mi servidor OpenAI-compat a internet?
Con precauciones: usá autenticación Bearer, hard spending caps 2–3x tu uso esperado, rate limits per-user, WAF (Cloudflare), y asegurate de que todos los endpoints (/health, /metrics) también estén protegidos — no solo /v1/* [38][39].
¿LiteLLM hace que mi app sea 100% portable?
No. LiteLLM cubre las grietas más grandes pero heredan los problemas del estándar original: structured outputs, reasoning content y Responses API siguen fragmentados [10]. Es el mejor pegamento disponible, no una solución completa.
¿Anthropic tiene endpoint OpenAI-compatible?
Sí, pero en beta y solo para chat completions. Anthropic documenta explícitamente que es «test-only, not production-recommended» [29]. audio input se descarta silenciosamente, strict en tools se ignora, y prompt caching solo funciona vía SDK nativo.
Declaraciones
Conflicto de interés: el autor no tiene afiliación con OpenAI, Anthropic, Google, AWS, Microsoft Azure, Meta, HuggingFace, ni con ninguna de las empresas o proyectos mencionados. No recibe compensación por este análisis.
Disponibilidad de datos: todas las URLs citadas son consultables públicamente. La especificación OpenAPI está disponible en github.com/openai/openai-openapi bajo licencia del repositorio. Los queries a GitHub API para verificación de implementaciones son reproducibles con gh api.
Fecha de auditoría: 2026-04-22, 22:00 CST. Versión del artículo: v1.0 (primer post nativo en formato IMRyD v2.0 del blog).
Referencias
- F. Lardinois, «OpenAI makes an all-purpose API for its text-based AI capabilities,» TechCrunch, 11-jun-2020. [En línea]. Disponible en: techcrunch.com/2020/06/11/openai-makes-an-all-purpose-api-for-its-text-based-ai-capabilities
- OpenAI, «Developers API Changelog,» developers.openai.com. [En línea]. Disponible en: developers.openai.com/api/docs/changelog
- HuggingFace, «Inference Providers now fully support OpenAI-compatible API,» HuggingFace Changelog, 2025. [En línea]. Disponible en: huggingface.co/changelog/inference-providers-openai-compatible
- OpenAI, «openai-python SDK,» GitHub. [En línea]. Disponible en: github.com/openai/openai-python
- OpenAI, «openai-openapi specification,» GitHub. [En línea]. Disponible en: github.com/openai/openai-openapi
- OpenAI, «API Reference — Chat completions,» developers.openai.com. [En línea]. Disponible en: developers.openai.com/api/reference
- S. Willison, «OpenAI publishes their OpenAPI schema,» simonwillison.net, 22-dic-2024. [En línea]. Disponible en: simonwillison.net/2024/Dec/22/openai-openapi
- Keywords AI Team, «LLM consistency and reproducibility in 2025,» keywordsai.co. [En línea]. Disponible en: keywordsai.co/blog/llm_consistency_2025
- Mozilla.ai, «Standardized Reasoning Content — a first look at using OpenAI GPT-OSS on multiple providers using any-llm,» blog.mozilla.ai, 2025. [En línea]. Disponible en: blog.mozilla.ai/standardized-reasoning-content
- D. Mahapatro, «The OpenAI Compatibility Paradox,» deepankarm.github.io. [En línea]. Disponible en: deepankarm.github.io/posts/openai-compatibility-paradox
- OpenAI, «Function calling guide,» platform.openai.com. [En línea]. Disponible en: platform.openai.com/docs/guides/function-calling
- InfoQ, «OpenAI DevDay 2023 recap,» 2023. [En línea]. Disponible en: infoq.com/news/2023/11/openai-announcements-1stdevday
- Ollama, «OpenAI compatibility,» ollama.com/blog, feb 2024. [En línea]. Disponible en: ollama.com/blog/openai-compatibility
- OpenAI, «Introducing the Responses API,» OpenAI Developer Community, 2025. [En línea]. Disponible en: community.openai.com/t/introducing-the-responses-api
- Speakeasy, «Server-Sent Events SDK runtime guide,» speakeasy.com/docs. [En línea]. Disponible en: speakeasy.com/docs/sdks/customize/runtime/server-sent-events
- Ollama, «Repositorio oficial,» GitHub. [En línea]. Disponible en: github.com/ollama/ollama
- vLLM, «OpenAI-compatible server documentation,» docs.vllm.ai. [En línea]. Disponible en: docs.vllm.ai/en/stable/serving/openai_compatible_server
- llama.cpp, «server README,» GitHub. [En línea]. Disponible en: github.com/ggml-org/llama.cpp/blob/master/tools/server
- LM Studio, «OpenAI API documentation,» lmstudio.ai. [En línea]. Disponible en: lmstudio.ai/docs/api/openai-api
- HuggingFace, «TGI Messages API,» huggingface.co/blog. [En línea]. Disponible en: huggingface.co/blog/tgi-messages-api
- oobabooga, «text-generation-webui OpenAI API wiki,» GitHub. [En línea]. Disponible en: github.com/oobabooga/text-generation-webui/wiki/12-OpenAI-API
- theroyallab, «TabbyAPI repo,» GitHub. [En línea]. Disponible en: github.com/theroyallab/tabbyAPI
- mudler, «LocalAI repo,» GitHub. [En línea]. Disponible en: github.com/mudler/LocalAI
- BerriAI, «LiteLLM repo,» GitHub. [En línea]. Disponible en: github.com/BerriAI/litellm
- OpenRouter, «Documentation,» openrouter.ai/docs. [En línea]. Disponible en: openrouter.ai/docs/quickstart
- Together AI, «OpenAI compatibility,» docs.together.ai. [En línea]. Disponible en: docs.together.ai/docs/openai-api-compatibility
- Groq, «OpenAI compatibility docs,» console.groq.com. [En línea]. Disponible en: console.groq.com/docs/openai
- Fireworks AI, «OpenAI compatibility,» docs.fireworks.ai. [En línea]. Disponible en: docs.fireworks.ai/tools-sdks/openai-compatibility
- Anthropic, «OpenAI SDK compatibility,» platform.claude.com. [En línea]. Disponible en: platform.claude.com/docs/en/api/openai-sdk
- Microsoft Learn, «Azure OpenAI Service — .NET SDK overview,» learn.microsoft.com. [En línea]. Disponible en: learn.microsoft.com/en-us/dotnet/api/overview/azure/ai.openai-readme
- S. Berkovich, «How to build an OpenAI-compatible API,» Towards Data Science. [En línea]. Disponible en: towardsdatascience.com/how-to-build-an-openai-compatible-api
- ritun16, «openai-compatible-fastapi template,» GitHub. [En línea]. Disponible en: github.com/ritun16/openai-compatible-fastapi
- Strapi, «LangChain vs Vercel AI SDK vs OpenAI SDK 2026,» strapi.io/blog. [En línea]. Disponible en: strapi.io/blog/langchain-vs-vercel-ai-sdk-vs-openai-sdk-comparison-guide
- LangChain, «Connect to OpenAI-compliant provider,» docs.langchain.com. [En línea]. Disponible en: docs.langchain.com/langsmith/custom-openai-compliant-model
- LlamaIndex, «Getting started,» developers.llamaindex.ai. [En línea]. Disponible en: developers.llamaindex.ai/python/framework/getting_started
- mudler, «LocalAI issue #2101 — streaming format,» GitHub. [En línea]. Disponible en: github.com/mudler/LocalAI/issues/2101
- BentoML, «OpenAI-compatible API basics,» bentoml.com. [En línea]. Disponible en: bentoml.com/llm/llm-inference-basics/openai-compatible-api
- vLLM, «Security documentation,» docs.vllm.ai. [En línea]. Disponible en: docs.vllm.ai/en/latest/usage/security
- Scantient, «Securing OpenAI API integration,» scantient.com. [En línea]. Disponible en: scantient.com/blog/securing-openai-api-integration
0 Comentarios