mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-09 04:06:42 +00:00
The router ranked surviving routes lexicographically: local, then price, then speed, then alias. How much a factor counted was its position in that tuple, so a deployment could not say that it cares about price more than about speed. Each factor now carries a 0..1 weight in services.litellm.router_weights. A factor is scaled to 0..1 inside the candidate set before its weight applies, because the raw units do not compare: a per-token price is a millionth of a cent and a rate is tens of tokens per second. A factor whose value is identical across the set scores every route 1 and drops out, rather than deciding on a rounding artefact. Confidentiality stays out of the score. local_reason removes every remote candidate before decide() runs, so no weighting can send a request that must stay local to a third party; a weight is a preference, and a credential leaving the cluster is not something a preference should be able to buy. The shipped weights additionally keep locality worth at least cost and speed combined, and a test reads them out of meta/services.yml rather than repeating them. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>