First of all, thank you for building FreeLLMAPI.
While reading responses.ts, I noticed what might be an unintended behavior.
Around lines 387, the router gets the sticky model and passes it into routeRequest:
const preferredModel = getStickyModel(messages, sessionIdHeader);
const requestedModelLabel = reqData.model ?? 'auto';
routeRequest(..., preferredModel, ...);
traceRouteEvent('Responses', {
...
requestedModel: attempt === 0 ? requestedModelLabel : undefined,
...
});
However, the request's explicit model (reqData.model) doesn't appear to participate in routing—it seems to be used only for logging (requestedModelLabel).
This appears to have two side effects:
- Specifying
"model": "xxx" in a Responses request has no effect on routing.
- If a sticky model already exists, it appears to take precedence over an explicitly requested model.
I may have missed something elsewhere in the routing logic. Maybe, perhaps the priority could be:
explicit model > sticky model > automatic routing
Thanks again
First of all, thank you for building FreeLLMAPI.
While reading
responses.ts, I noticed what might be an unintended behavior.Around lines 387, the router gets the sticky model and passes it into
routeRequest:However, the request's explicit
model(reqData.model) doesn't appear to participate in routing—it seems to be used only for logging (requestedModelLabel).This appears to have two side effects:
"model": "xxx"in a Responses request has no effect on routing.I may have missed something elsewhere in the routing logic. Maybe, perhaps the priority could be:
Thanks again