OpenAI-Project header selects the project. The model field then chooses between the project’s weighted routing and a model override, and metadata["forge.project_version"] chooses the project version.
Project selection
The value has the form[ENTITY]/[PROJECT]. [PROJECT] is the project’s Weights & Biases project name (its project field), not its project alias. The two are the same unless the project was created with a different project name. Studio shows the value, ready to copy, in the project header and on the project’s settings page.
project option, such as OpenAI(project=...) in Python or new OpenAI({ project }) in JavaScript, or from the OPENAI_PROJECT_ID environment variable.
Weighted routing
Amodel of router, a blank model, or an omitted model uses the weighted routing of the selected version. The proxy chooses among targets with positive weights, replaces model, applies the target’s parameters, and calls the target’s provider.
OpenAI-Project header, a project alias or alias@vN in model returns 400. Select the version with forge.project_version instead.
Version pins
"3". The proxy also accepts an integer. Omitting forge.project_version selects version 1, a fixed default that never changes to the latest version. Publishing a new version never changes version 1, which makes a new version safe to test before application rollout.
An unknown version returns 404 with Project 'your-team/ticket-classifier' has no version 3. forge.project_version requires the OpenAI-Project header. Without it, the request returns 400.
Model overrides
With theOpenAI-Project header, a provider/model-id value overrides the model for one request. The prefix before the first slash selects a provider registered in the project’s entity, including built-in providers such as wandb-inference. The remainder is the configured provider model ID. Additional slashes are allowed.
params_override values. Overrides are useful for ad hoc tests, calling a trained model before it’s a routing target, and validating a newly registered provider before routing traffic to it.
Traces record the routing mode in routing_mode: override for model overrides and weighted for routed traffic. Because overrides are project traffic, they’re eligible for datasets, including the teacher datasets that Automation builds in Studio when the override uses the teacher’s model. To exclude overrides from a dataset, filter on metadata: {"routing_mode": "weighted"}. This filter also excludes traces written before routing_mode existed. See Metadata and traces.
Entity resolution
The entity inOpenAI-Project must be the caller’s personal entity or one of their Weights & Biases teams. The proxy checks access before any project lookup, so a key that can’t access the entity receives 403 whether or not the project exists.
Because the header names the entity, the proxy looks up a team project in the team even when you use a personal key.
Sticky weighted selection
Provide a conversation ID to keep all calls in one conversation on the same target for a routing revision:API: Call a pinned project version (POST /chat/completions)
API: Call a pinned project version (POST /chat/completions)
Send See Create a routed chat completion for the complete schema.
OpenAI-Project, use router in model, and set forge.project_version. A model override uses provider/model-id in model instead.