- Request received → first determine the API protocol you are using (Chat Completions / Responses / Messages / Gemini Content)
- Read the model in the request → parse out routing information (whether a provider is specified, whether it is a free model, and so on)
- Based on the parsed result, select an available upstream and complete the call using the corresponding protocol
Model name structure
A model name consists of three parts:- Prefix (optional): determines the routing method (default routing or a specified provider)
- Base Model (required): the model’s own name (for example,
gpt-4o) - Suffix (optional): currently only
:freeis supported
1. Prefix: determines routing (default / specified provider)
Default routing (recommended)
Omitting the prefix, or usingdefault/, both mean default routing (the system automatically selects an available upstream).
Provider-specific routing
You can also explicitly specify a provider using theprovider/base_model form:
Note: specifying a provider means you want the request to always use that provider’s upstream capacity. If that provider is currently unavailable, or the model does not support the corresponding protocol, the request will fail.
2. Base Model: the model’s own name
base_model is the name of the model you actually want to call, for example:
base_model values supported by each protocol depends on the capabilities of the corresponding provider and model family.
3. Suffix: free models :free
Use the fixed suffix :free to mark a “free model” request:
:freeonly means using the free models provided by the platform; not every model supports free calls:freecan only use default routing (specifying a provider is not allowed):freecan only use the OpenAI Chat Completions endpoint (other protocols are not yet supported)
Supported parameter sets (reference)
These are the “parameter sets” the system uses internally for routing and compatibility. This does not mean any combination will work; actual availability still depends on protocol capabilities, provider support, and whether the specific model is live.API protocol (Protocol)
Model family (Family)
Model provider (Provider)
Provider Model Mapping
By default, the system uses the official model name as thebase_model.
However, on some third-party upstreams (such as SiliconFlow / Chutes / Fireworks), the same model is often written as an ID with a namespace, prefix, or different format (for example, deepseek-ai/DeepSeek-R1).
To keep the model field concise, stable, and minimally invasive when integrating, the system maintains a “model name → real upstream model ID” mapping table:
- In your requests you always use the standard
base_model(for example,deepseek-r1) - When you specify an upstream provider (for example,
chutes/), Poixe automatically maps thebase_modelto that provider’s real model ID (for example,deepseek-ai/DeepSeek-R1) and then forwards the call
Model mapping configuration
Example: DeepSeek-R1 on Chutes
Mapping table (configuration):model field only accepts the provider/<base_model> structure. The base_model must be Poixe’s standard model name (the key on the left side of the mapping table); otherwise the mapping cannot be matched and the request will be treated as unsupported.
Common usage examples
Default routing (most common)
Specifying a provider
Free model
Recommendations
- When you are unsure which provider to use, prefer default routing (less hassle)
- Use a provider prefix only when you need a fixed upstream or have requirements for stability and consistent behavior
- Free models are only for promotional models that support
:free, and can only use default routing