Title: Cum func%C8%9Bioneaz%C4%83 un ruter LLM? Canonical: https://llmeu.com/ro/learn/llm-routing-explained/ Markdown mirror: https://llmeu.com/ro/learn/llm-routing-explained.md Machine-readable: https://llmeu.com/llms.txt (index) - https://llmeu.com/llms-full.txt (full catalogue) - https://llmeu.com/llms-catalogue.json # Cum func%C8%9Bioneaz%C4%83 un ruter LLM? Un ruter transform%C4%83 o cerere care nu nume%C8%99te nicio ma%C8%99in%C4%83 %C3%AEntr-un r%C4%83spuns de la un singur endpoint. O func%C8%9Bie pur%C4%83 filtreaz%C4%83 candida%C8%9Bii dup%C4%83 politic%C4%83 %C8%99i reziden%C8%9B%C4%83, evalueaz%C4%83 ce supravie%C8%9Buie%C8%99te %C8%99i alege cel mai mare scor. ## Un endpoint intr%C4%83, un endpoint este ales Un ruter de model preia o cerere care nu nume%C8%99te nicio ma%C8%99in%C4%83 %C8%99i returneaz%C4%83 r%C4%83spunsul uneia pe care o regul%C4%83 a selectat-o. Aici este deliberat mic: o cerere compatibil%C4%83 OpenAI ajunge la o singur%C4%83 URL de baz%C4%83, iar o func%C8%9Bie pur%C4%83 %E2%80%94 f%C4%83r%C4%83 baz%C4%83 de date, f%C4%83r%C4%83 ceas, f%C4%83r%C4%83 re%C8%9Bea %E2%80%94 decide ce endpoint %C3%AEi r%C4%83spunde. Intr%C4%83rile func%C8%9Biei sunt endpoint-urile candidate %C3%AEnc%C4%83rcate de apelant %C8%99i timpul curent, ceea ce face ca fiecare regul%C4%83 s%C4%83 fie testabil%C4%83 f%C4%83r%C4%83 un stack %C3%AEn func%C8%9Biune. C%C3%A2mpul model decide c%C3%A2t%C4%83 alegere are ruterul. Trimiterea llmeu-auto (sau llmeu/auto, auto, llmeu:auto) %C3%AEi ofer%C4%83 pool-ul. Numirea unui model fixeaz%C4%83 acel model: ruterul alege apoi dintre endpoint-urile acelui model %C8%99i nu substituie niciodat%C4%83 altul, deoarece o substitu%C8%9Bie silen%C8%9Bioas%C4%83 ar face ca c%C3%A2mpul model din r%C4%83spuns s%C4%83 fie o ghicitoare. ID-urile modelului sunt normalizate mai %C3%AEnt%C3%A2i, astfel %C3%AEnc%C3%A2t un ID prefixat de furnizor sau sufixat cu dat%C4%83 se rezolv%C4%83 la slug-ul pe care %C3%AEl cunoa%C8%99te catalogul. ## Filtrul ruleaz%C4%83 %C3%AEnainte de scor, %C3%AEntr-o ordine fix%C4%83 Fiecare endpoint candidat este testat %C3%AEn raport cu politica %C8%99i cererea, iar fiecare respingere este %C3%AEnregistrat%C4%83 cu un %C8%99ir de motive literal. Ordinea face parte din contract, deoarece primul motiv pentru care un endpoint este respins este cel care explic%C4%83 ruta. Un endpoint al c%C4%83rui tip este doar catalog merge primul: nimic din implementare nu r%C4%83spunde cu el, deci este eliminat %C3%AEnainte de a fi luat%C4%83 %C3%AEn considerare orice alt%C4%83 regul%C4%83. Apoi cele al c%C4%83ror status nu este nici "up", nici "degraded". Apoi clasa de suveranitate, verificat%C4%83 at%C3%A2t %C3%AEn raport cu politica organiza%C8%9Biei, c%C3%A2t %C8%99i cu reziden%C8%9Ba numit%C4%83 %C3%AEn cerere. Apoi regiunea, c%C3%A2nd reziden%C8%9Ba sau politica fixeaz%C4%83 una. Apoi un model care nu poate genera text %E2%80%94 un model de recunoa%C8%99tere vocal%C4%83, de %C3%AEncorporare sau de reranker este refuzat aici, mai degrab%C4%83 dec%C3%A2t s%C4%83 i se cear%C4%83 o completare pe care nu o poate produce. Apoi lista de interdic%C8%9Bii a furnizorului, lista de permisiuni a furnizorului, lista de interdic%C8%9Bii a modelului %C8%99i lista de permisiuni a modelului, %C3%AEn aceast%C4%83 ordine. Apoi endpoint-urile partenerilor %C3%AEn timp ce flag-ul partenerului este oprit. Apoi un model f%C4%83r%C4%83 modalitatea de viziune dac%C4%83 cererea con%C8%9Bine o imagine. Apoi fereastra de context, dac%C4%83 fereastra documentat%C4%83 este mai mic%C4%83 dec%C3%A2t intrarea plus ie%C8%99irea solicitat%C4%83. %C8%98i %C3%AEn cele din urm%C4%83, pre%C8%9Bul, %C3%AEn raport cu plafonul din politic%C4%83 sau din cerere. Nimic nu supravie%C8%9Buie%C8%99te acelui filtru atunci c%C3%A2nd regula este cu adev%C4%83rat imposibil de satisf%C4%83cut, iar apoi r%C4%83spunsul este 409 no_endpoint_for_policy. Mesajul este propria propozi%C8%9Bie a motorului despre reziden%C8%9Ba solicitat%C4%83, urmat%C4%83 de %E2%80%9EReziden%C8%9Ba nu este niciodat%C4%83 relaxat%C4%83 %C3%AEn t%C4%83cere.%E2%80%9D Nu este o eroare tranzitorie: aceea%C8%99i cerere e%C8%99ueaz%C4%83 din nou %C3%AEn acela%C8%99i mod, iar solu%C8%9Bia este s%C4%83 numi%C8%9Bi o reziden%C8%9B%C4%83 pe care politica o permite sau s%C4%83 extinde%C8%9Bi politica %C3%AEn mod deliberat %C3%AEn consol%C4%83. ## Scorul %C8%99i de ce nu este un concurs de popularitate Ceea ce supravie%C8%9Buie%C8%99te este evaluat, nu clasat dup%C4%83 dimensiune sau dup%C4%83 tabelul de benchmark. Adecvarea sarcinii are o pondere de cinci, adecvarea limbii de trei, completitudinea documenta%C8%9Biei de unu, iar o clas%C4%83 de suveranitate documentat%C4%83 de p%C3%A2n%C4%83 la doi. Pre%C8%9Bul, laten%C8%9Ba %C3%AEnregistrat%C4%83 %C8%99i rata de eroare %C3%AEnregistrat%C4%83 se scad: doi, doi %C8%99i respectiv trei. Pre%C8%9Bul %C8%99i laten%C8%9Ba sunt normalizate %C3%AEn setul supravie%C8%9Buitor, astfel %C3%AEnc%C3%A2t candida%C8%9Bii sunt compara%C8%9Bi %C3%AEntre ei, mai degrab%C4%83 dec%C3%A2t cu o scar%C4%83 fix%C4%83, iar un candidat f%C4%83r%C4%83 laten%C8%9B%C4%83 %C3%AEnregistrat%C4%83 este evaluat la 500 de milisecunde. Deoarece adecvarea sarcinii domin%C4%83, acela%C8%99i pool de cereri se ruteaz%C4%83 diferit per sarcin%C4%83. Sarcina ieftin%C4%83 prefer%C4%83 modelele cu 9B parametri sau mai pu%C8%9Bin %C8%99i scade un model de 753B la 0,15. Recuperarea este decis%C4%83 de fereastra de context %C3%AEnregistrat%C4%83, astfel %C3%AEnc%C3%A2t un model care poart%C4%83 tag-ul rag, dar nu poate re%C8%9Bine fragmentele, nu c%C3%A2%C8%99tig%C4%83. O cerere de codare prefer%C4%83 un slug specializat %C3%AEn cod, o cerere %C3%AEn german%C4%83 c%C3%A2%C8%99tig%C4%83 puncte pentru un model a c%C4%83rui list%C4%83 de limbi puternice con%C8%9Bine germana, iar o cerere multilingv%C4%83 c%C3%A2%C8%99tig%C4%83 puncte odat%C4%83 ce un model declar%C4%83 %C8%99ase sau mai multe limbi puternice. Egalit%C4%83%C8%9Bile se rup la pre%C8%9Bul mai mic, apoi la laten%C8%9Ba %C3%AEnregistrat%C4%83 mai mic%C4%83, apoi la un identificator stabil %E2%80%94 astfel %C3%AEnc%C3%A2t aceea%C8%99i cerere se ruteaz%C4%83 %C3%AEn acela%C8%99i mod de dou%C4%83 ori. ## C%C3%A2mpurile de politic%C4%83 care decid %C8%98ase c%C3%A2mpuri de politic%C4%83 ajung la filtru: ce clase de reziden%C8%9B%C4%83 %C8%99i regiuni sunt permise, listele de permisiuni %C8%99i interdic%C8%9Bii ale furnizorului, listele de permisiuni %C8%99i interdic%C8%9Bii ale modelului, dac%C4%83 endpoint-urile partenerilor sunt eligibile deloc %C8%99i un plafon de pre%C8%9B per milion de token-uri. Cererea le poate doar restr%C3%A2nge. Solicitarea eu-owned %C3%AEntr-o politic%C4%83 care permite eu-hosted restr%C3%A2nge setul; nu %C3%AEl poate l%C4%83rgi niciodat%C4%83. Plafonul de pre%C8%9B al cererii poate doar reduce pe cel al politicii. Alte trei coloane de politic%C4%83 sunt aplicate cu un strat deasupra motorului, %C3%AEn jurul aceleia%C8%99i decizii: reten%C8%9Bia, clasele de date permise %C8%99i un buget zilnic. Un buget deja epuizat e%C8%99ueaz%C4%83 cererea %C3%AEnainte ca orice endpoint s%C4%83 fie evaluat, cu budget_exceeded. O cerere care nu nume%C8%99te nicio reziden%C8%9B%C4%83 prime%C8%99te propriul set al politicii: eu-hosted %C3%AEn timp ce fiecare clas%C4%83 pe care politica o admite este EU-hosted, %C8%99i orice odat%C4%83 ce admite altceva. ## Failover-ul r%C4%83m%C3%A2ne %C3%AEn cadrul deciziei La un 5xx sau un backend inaccesibil, este %C3%AEncercat urm%C4%83torul candidat cel mai bun, p%C3%A2n%C4%83 la trei %C3%AEncerc%C4%83ri, %C8%99i fiecare %C3%AEncercare este %C3%AEnregistrat%C4%83. O eroare pe care backend-ul o marcheaz%C4%83 ca final%C4%83 nu este re%C3%AEncercat%C4%83 deloc. Lista de re%C3%AEncerc%C4%83ri este construit%C4%83 din decizia care a fost deja filtrat%C4%83, astfel %C3%AEnc%C3%A2t o re%C3%AEncercare se poate muta la un endpoint diferit %C3%AEn cadrul politicii dvs. %C8%99i niciodat%C4%83 %C3%AEn afara acesteia %E2%80%94 un failover care a sc%C4%83pat de filtrul de reziden%C8%9B%C4%83 ar fi o eroare de reziden%C8%9B%C4%83, care este clasa de defecte pe care acest design exist%C4%83 pentru a o preveni. ## Ce v%C4%83 spune r%C4%83spunsul R%C4%83spunsul adaug%C4%83 un bloc l%C3%A2ng%C4%83 c%C3%A2mpurile standard OpenAI: ID-ul de urm%C4%83rire, modelul utilizat, versiunea sa, furnizorul, ID-ul endpoint-ului, regiunea de inferen%C8%9B%C4%83, clasa de suveranitate, ID-ul politicii, reten%C8%9Bia aplicat%C4%83, o estimare a costului %C8%99i un motiv de rutare. Acest motiv este o propozi%C8%9Bie mai degrab%C4%83 dec%C3%A2t un cod %C8%99i nume%C8%99te regiunea %C8%99i clasa: rutare automat%C4%83 pentru o sarcin%C4%83 de codare cu reziden%C8%9B%C4%83 eu-hosted, slug-ul %C8%99i regiunea alese, clasa %C3%AEn cuvinte, c%C3%A2te endpoint-uri au fost excluse %C8%99i dac%C4%83 endpoint-urile partenerilor au fost permise. Aceea%C8%99i propozi%C8%9Bie este afi%C8%99at%C4%83 verbatim %C3%AEn consol%C4%83, iar urma stocat%C4%83 este recuperabil%C4%83 prin ID-ul s%C4%83u. O not%C4%83 de denumire, deoarece cuvintele se suprapun %C3%AEn rezultatele c%C4%83ut%C4%83rii: rutarea este utilizat%C4%83 pentru mai multe lucruri diferite %C3%AEn acest domeniu. Ceea ce este descris aici este ruterul din acest depozit, %C8%99i fiecare regul%C4%83 de mai sus este citit%C4%83 din codul care o aplic%C4%83 %E2%80%94 motivele de respingere sunt %C8%99irurile sale literale, ponderile sunt func%C8%9Bia sa de scor, iar valorile implicite sunt valorile implicite ale coloanelor schemei bazei de date. ## %C3%8Entreb%C4%83ri frecvente ### Ce se %C3%AEnt%C3%A2mpl%C4%83 c%C3%A2nd trimit llmeu-auto ca model? Routerul p%C4%83streaz%C4%83 toate endpoint-urile care trec de filtru %C8%99i le puncteaz%C4%83. R%C4%83spunsul raporteaz%C4%83 care a c%C3%A2%C8%99tigat: modelul utilizat, regiunea de inferen%C8%9B%C4%83, clasa de suveranitate, ID-ul politicii %C8%99i propozi%C8%9Bia de rutare. O egalitate este decis%C4%83 de cel mai ieftin, apoi cel mai rapid, apoi un ID stabil. ### Poate routerul s%C4%83 trimit%C4%83 cererea mea %C3%AEn afara regiunii pe care am solicitat-o? Nu. Reziden%C8%9Ba este aplicat%C4%83 ca filtru %C3%AEnainte de punctare, iar lista de re%C3%AEncercare pentru un backend e%C8%99uat este construit%C4%83 din decizia deja filtrat%C4%83, p%C3%A2n%C4%83 la trei %C3%AEncerc%C4%83ri. Un endpoint %C3%AEn afara setului permis nu este niciodat%C4%83 %C3%AEn compara%C8%9Bie. ### De ce a e%C8%99uat numirea unui model specific %C3%AEn loc s%C4%83 ruteze %C3%AEn alt%C4%83 parte? Un model numit este fixat. Dac%C4%83 niciunul dintre endpoint-urile sale nu supravie%C8%9Buie%C8%99te, routerul nume%C8%99te motivul: model_not_found, hosted_unavailable pentru un model doar din catalog, model_denied pentru o list%C4%83 de politici, not_a_text_model pentru un model de vorbire sau de %C3%AEncorporare. ## Vezi %C8%99i: