mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-25 08:32:11 +03:00
Retargetado para release/v3.8.51 (release/v3.8.50 está congelada — freeze issue #11439). Validado em lote combinado (batch-0824h2, junto de #11435/#11436/#11437) contra o tip de release/v3.8.51: typecheck:core limpo, gates estáticos OK, 127/127 testes focados passando. Investigação sólida com repro real via container isolado, três causas independentes identificadas e corrigidas com testes de regressão dedicados para cada uma. Obrigado pela contribuição!
32 lines
1.2 KiB
Plaintext
32 lines
1.2 KiB
Plaintext
%% Auto-Combo 15-factor scoring
|
||
%% Reflects: open-sse/services/autoCombo/scoring.ts (DEFAULT_WEIGHTS, sum = 1.0)
|
||
%% v3.8.50
|
||
%% svg-title: OmniRoute Auto-Combo 15-factor scoring
|
||
%% svg-description: Flow from an incoming request through eligible candidates, the 15 weighted scoring factors, descending score sort, top-N selection, and sequential dispatch.
|
||
flowchart TB
|
||
Request["Incoming request"] --> Candidates["Eligible candidates<br/>(provider × model × account)"]
|
||
Candidates --> Score["Compute composite score<br/>per candidate"]
|
||
|
||
subgraph Factors["15-factor scoring weights (sum = 1.0)"]
|
||
f1["quota (0.1429)"]
|
||
f2["health (0.1605)"]
|
||
f3["costInv (0.1429)"]
|
||
f4["latencyInv (0.1143)"]
|
||
f5["taskFit (0.0762)"]
|
||
f6["stability (0.0476)"]
|
||
f7["tierPriority (0.0476)"]
|
||
f8["tierAffinity (0.0476)"]
|
||
f9["specificityMatch (0.0476)"]
|
||
f10["contextAffinity (0.0476)"]
|
||
f11["cacheAffinity (0.0000)"]
|
||
f12["sessionAvailability (0.0476)"]
|
||
f13["resetWindowAffinity (0.0000)"]
|
||
f14["connectionDensity (0.0476)"]
|
||
f15["quality (0.0300)"]
|
||
end
|
||
|
||
Score --> Factors
|
||
Factors --> Final["Sort by score<br/>(desc)"]
|
||
Final --> Top["Pick top-N targets"]
|
||
Top --> Dispatch["Dispatch sequentially<br/>(short-circuit on success)"]
|