Streaming
Tokens as they decode
Server-sent events with usage reporting, so streaming UIs keep rendering without a change.
Keep the SDK, the prompts and the tooling. Change the base URL, and inference runs on infrastructure you control.
Every official OpenAI SDK accepts a base URL. Point it at your server, keep the rest of the code.
The official Python SDK, with only the constructor changed.
The official .NET SDK, with the endpoint set in the client options.
No SDK at all: the wire shape is the one your tooling already speaks.
Model names come from this server's catalog rather than OpenAI's lineup; list them
with GET /v1/models. The coverage
matrix states exactly which endpoints and parameters are served.
The parts of the OpenAI surface production code actually depends on, tested with the stock clients.
Streaming
Server-sent events with usage reporting, so streaming UIs keep rendering without a change.
Tools
Tool definitions, tool choice and parallel calls, exercised end to end by real agentic clients.
Structure
Structured output is grammar-constrained at decode time, so the completion parses every time instead of usually.
An API key swap buys privacy. The application services around the endpoint are what the migration is actually for.
Private
Loopback by default, tokens hashed at rest, governed egress, and air-gap operation once models are present.
Documents
Upload documents, build searchable collections, and get answers that cite the document, page and passage.
Agents
A server-side agent bundles prompt, skill, tools and memory; a request adopts it with one extra field on the same chat API.
Scale
Start on one machine and scale horizontally as applications, users and document volume grow, without changing the client.
Three differences worth planning for, before anyone discovers them in production.
Models
You choose from a curated catalog of open-weight models, or import your own. Quality per task depends on the model and the hardware you give it, so evaluate on your real workload rather than assuming parity with a hosted frontier model.
Coverage
The dialect covers chat, completions, embeddings, models, files, vector stores and the Responses API, with stated gaps in the matrix.
Capacity
Concurrency comes from your hardware and the server's slot configuration, not from a metered quota. The console shows the fit before you commit.
LM-Kit One