aigw-openai-compat handles providers that are "OpenAI API-shaped but not officially OpenAI."
Typical targets:
- vLLM
- Together AI
- Groq
- Fireworks
- Perplexity
- LM Studio
These providers largely reuse OpenAI-style paths, JSON structures, and SSE formats, but usually diverge in some ways:
- Different
base_url - Different supported endpoint subsets
Responses APIis often incomplete or absent- Varying support for
tools,tool_choice,vision,parallel_tool_calls - Some fields are accepted but silently ignored
Therefore, instead of repurposing aigw-openai as a "third-party compatibility bus," we maintain a separate configurable compat layer.
aigw-openai- Covers only the official OpenAI standard
- Goal: maximum protocol fidelity
aigw-openai-compat- Covers the OpenAI-compatible ecosystem
- Uses
quirksto describe per-provider differences - Promises "OpenAI-shaped," not "OpenAI-identical"
The minimal configuration model so far:
OpenAICompatProviderOpenAICompatConfigQuirksOpenAICompatConfigError
Roadmap suggestions:
- Extract a shared HTTP/SSE transport layer for
aigw-openaiandaigw-openai-compatto share. - The compat layer should prioritize support for:
chat/completionsembeddings- Common streaming chat SSE
Responses APIsupport should be gated behind capability detection or provider presets — do not assume it exists by default.- All provider-specific differences should be expressed through
quirksor a capability matrix. Do not hardcode Groq/Together/vLLM branches into the official OpenAI crate.