Skip to main content
Migration is intentionally boring. If you call OpenAI through the official openai package, the change is two lines in client construction — the base URL and the API key. Message shapes, tool definitions, streaming loops, temperature and every other request field pass through the gateway verbatim, so nothing else in your codebase changes.
Prefer one dependency across all of your model traffic? The AI Reserve SDKs expose the OpenAI format natively (v0.5.0 in all five languages), with the gateway’s retry policy and exception taxonomy built in. The calling convention is identical — only the import and constructor change:
What carries over verbatim. Messages, tools / tool_choice, response_format, sampling parameters, and streaming loops — requests pass through unmodified, and streams still end at data: [DONE]. What changes: the key and its environment variable, the base URL, and the model namespace — every gateway model is now callable from the same code, and GET /v1/models enumerates the live catalog.