Kaip veikia LLM šliuzas? Praktinis vadovas inžinierių komandoms

LLM šliuzas – tai atvirkštinis tarpinis serveris, kuris nukreipia, autentifikuoja, talpina į podėlį ir registruoja jūsų modelių iškvietas; šiame vadove sekama, kaip užklausa keliauja per šliuzą, aptariamos saugumo ir patikimumo rizikos, kurias reikia numatyti, ir palyginamos galimybės: kurti savo sprendimą, talpinti jį savo infrastruktūroje, rinktis valdomą paslaugą ar API šliuzą.

Diagram of how a request moves through an LLM gateway: apps send requests to the gateway, which runs six steps (key and policy check, cache, route, translate and send, normalize and stream back, log and attribute cost) before reaching Provider A, Provider B, or a self-hosted model, with responses returning to the apps.

LLM šliuzas veikia tarp jūsų programų ir modelių teikėjų, prie kurių jungiatės per jį, todėl prisijungimo duomenis valdyti ir naudojimą stebėti galite vienoje vietoje.

„Šiuo metu tai tikras š**ų cirkas“, – 2026 m. rugsėjį Reddit bendruomenėje r/LLMDevs rašė vienas inžinierius.

„Kiekvienas turi savo raktų rinkinį Claude, OpenAI, AWS Bedrock ir visiems kitiems mūsų naudojamiems inferencijos paslaugų teikėjams.“

BigGo straipsnyje apie llm-proxy-tk – lengvą FastAPI šliuzą – tokia sąranka lyginama su LLM pavertimu „įmonės vandentiekio vandeniu“, o šliuzas – su pagrindine pastato sklende.

Tačiau prieš taip pasikliaujant šiuo vandentiekiu, pažiūrėkime, ką iš tikrųjų montuojate.

Kas yra LLM šliuzas?

LLM šliuzas – tai atvirkštinis tarpinis serveris modelių iškvietimams. Jūsų programos siunčia užklausas jam, o ne tiesiogiai OpenAI, Anthropic, Google ar kitiems jūsų naudojamiems LLM teikėjams. Šliuzas persiunčia šias užklausas ir pakeliui pritaiko jūsų taisykles.

Kiekvienas LLM teikėjas turi savo API: savitą užklausų struktūrą, savitą autentifikavimą ir savitą klaidų grąžinimo būdą. Be to, kiekvienas turi atskiras užklausų dažnio ribas ir gedimų režimus. Jei prieš juos nėra bendro sluoksnio, kiekviena teikėją iškviečianti programa viską daro pati – ir kiekviena šiek tiek kitaip.

Vandentiekio analogija toli nenuveda, bet iki čia – tikrai: teikėjai prijungiami vieną kartą, šliuze. Nuo tada kiekviena programa gauna atskirą prijungimą su skaitikliu, todėl matote, kas ką naudoja, ir galite atjungti bet kurią atskirą liniją neliesdami kitų.

LLM, DI, MCP ir API šliuzai: kuo jie skiriasi?

Šliuzas

Kokių sistemų priekyje jis veikia?

Ką jis sprendžia?

Jo matymo lauko ribos

API šliuzas

Jūsų paslaugos ir kitos serverinės API

Ar šis klientas autentifikuotas ir ar jis neviršija užklausų dažnio ribos?

Gali tikrinti užklausų turinį, tačiau žetonų apskaitai ir kitoms modeliams būdingoms kontrolės priemonėms reikia papildomo palaikymo.

LLM šliuzas

Modelių teikėjai

Kuris modelis gauna šią užklausą, kas už ją moka ir ar atsakymas grįžo?

Mato modelio atsakymuose siūlomus įrankių iškvietimus, bet ne jų vykdymą, nebent tas srautas taip pat eina per jį.

MCP šliuzas

Įrankiai ir duomenų šaltiniai, prie kurių agentas jungiasi per MCP

Ar šis agentas gali iškviesti šį įrankį su šiais argumentais?

Automatiškai nemato modelio iškvietimo, kuris sugeneravo įrankio užklausą.

DI šliuzas

Viskas, ką tiekėjas įtraukė į paketą: modeliai, galbūt įrankiai ir agentų tarpusavio srautas

Pirmiau išvardytų derinys, priklausomai nuo produkto

Priklauso nuo to, kokius ryšius jis apdoroja.

Kaip veikia LLM šliuzas?

Panagrinėkime vienos užklausos kelią nuo jūsų programos iki modelio ir atgal.

  1. Užklausa pasiekia šliuzą: jūsų programa siunčia įprastai atrodančią pokalbio užklausą, dažnai su OpenAI suderinamu formatu, į šliuzo galinį tašką. Programos požiūriu tai adresas, kuriuo ji kreipiasi į modelį.
  2. Šliuzas patikrina, kas siunčia užklausą ir ką jam leidžiama daryti: prieš persiųsdamas užklausą, jis patikrina prisijungimo duomenis. Dažnai tai būna virtualusis raktas, išduotas komandai ar produktui. Jei esate įdiegę įvesties apsaugos priemones, raginimai taip pat gali būti tikrinami, ar juose nėra jautrių duomenų ar bandymų apeiti modelio instrukcijas.
  3. Šliuzas patikrina, ar jau turi atsakymą: jei įjungtas podėliavimas, į tinkamą sutampančią užklausą galima atsakyti išsaugotu atsakymu, dar kartą nesikreipiant į teikėją. Kai kurie šliuzai taip pat siūlo semantinį podėliavimą, kai ieškoma ne identiškų, o pakankamai panašiomis laikomų užklausų. Tai gali tikti DUK pobūdžio srautui.
  4. Šliuzas pasirenka, kur siųsti užklausą: užklausoje gali būti nurodytas konkretus modelis arba jo pseudonimas. Šliuzas jūsų konfigūracijoje suranda atitinkamą maršrutą. Taip pat galite sukonfigūruoti atsarginį maršrutą. Jei teikėjas A neatsako laiku, šliuzas gali bandyti teikėją B.
  5. Šliuzas parengia iškvietimą ir grąžina atsakymą: šliuzas konvertuoja jūsų užklausą į pasirinkto teikėjo formatą ir autentifikuoja siunčiamą iškvietimą. Gavus atsakymą, jis konvertuojamas į jūsų programai reikalingą formatą.
  6. Šliuzas užfiksuoja, kas įvyko: kai įjungtas registravimas, šliuzas fiksuoja informaciją, įskaitant tai, kas atliko iškvietimą, kuris modelis jį aptarnavo, žetonų skaičių, delsą ir kainą. Būtent tokio žurnalo neturėjo įžangoje minėtas inžinierius iš Reddit.

4 dalykai, kuriuos turite žinoti prieš paleisdami šliuzą gamybinėje aplinkoje

Viskas, kas aprašyta pirmiau, įmanoma todėl, kad šliuzas mato kiekvieną per jį nukreiptą užklausą. Tai ir yra pagrindinis pardavimo argumentas. Tačiau kartu tai apibūdina ir atakos paviršių bei priklausomybę nuo tiekėjo, į kuriuos turite atsižvelgti planuodami.

Dabar šliuzas – vertingiausias jūsų DI infrastruktūros mazgas

Šliuzas centralizuoja prieigą, todėl vienai paslaugai tampa pasiekiama daugybė prisijungimo duomenų. Microsoft saugumo komanda išvardija, ką LiteLLM diegimas gali saugoti arba gauti: teikėjų API raktus, savo pagrindinį raktą, virtualiųjų raktų įrašus, duomenų bazės prisijungimo eilutes, maršruto parinkimo nustatymus ir nuomininkų politikas.

2026 m. spalį Check Point Research atskleidė du didelės rizikos pažeidžiamumus sistemoje LiteLLM:

  • CVE-2026-35029 leido autentifikuotiems naudotojams, įskaitant turinčius tik skaitymo teises, pasiekti administravimo funkcijas ir perimti egzemplioriaus valdymą.
  • CVE-2026-59823 leido naudotojams nukreipti užklausas į jų pačių valdomą serverį ir perimti teikėjų raktus.

Abu pažeidžiamumai ištaisyti 1.83.9 versijoje. Šliuzą naudojanti programa neturėtų galėti keisti jo nustatymų.

Jūsų apsaugos priemonėms reikia politikos gedimo atvejams

Pillar Security 2026 m. spalio 4 d. apžvalgoje dokumentuojamos trečiųjų šalių apsaugos priemonių integracijos pagrindiniuose šliuzuose, įskaitant LiteLLM, Kong, TrueFoundry, Portkey, Azure API Management ir Apigee. (Pati Pillar parduoda apsaugos priemones, tad skaitydami jos rekomendacijas tai turėkite omenyje.)

Kablys (angl. hook) – tai užklausos kelio taškas, paprastai prieš raginimui pasiekiant modelį arba atsakymui grįžus, kuriame šliuzas gali perduoti turinį išoriniam skeneriui, kad šis pateiktų verdiktą. Blokuojantis patikrinimas laukia verdikto ir tik tada leidžia srautui tęstis. Portkey dokumentacijoje jie vadinami before_request_hooks ir after_request_hooks; TrueFoundry jų turi keturis: papildomai tikrinama prieš MCP įrankių iškvietimus ir po jų.

Taigi reikia patikrinti du dalykus:

  • Kas nutinka, jei sugenda pats skeneris? Užblokavę užklausą, sustabdote nepatikrintą srautą, bet galite sutrikdyti programos veikimą. Praleidę ją, leidžiate programai veikti toliau be to patikrinimo. Gedimų žurnalas vėliau parodo, kad patikrinimo trūko – tai naudinga, bet ne tas pats, kas jį atlikti.
  • Ar galite pakeisti skenerį? Jei kitas teikėjas nepalaikomas, gali tekti atnaujinti programą arba jungtis per kitą tarpinį serverį.

TrueFoundry MCP kabliai išplečia šliuzo aprėptį nuo modelių užklausų iki įrankių iškvietimų. Tačiau šliuzas gali tikrinti tik per jį einantį srautą. Kūrėjo kompiuteryje komandą vykdantis programavimo agentas gali likti už jo matymo lauko ribų.

Perplexity atvirojo kodo įrankis Numbat veikia būtent toje pusėje. Numbat jungiasi prie palaikomų agentų per vietinius kablius ir gali patikrinti suplanuotus veiksmus, pvz., apvalkalo komandas ar rašymą į failus, prieš juos įvykdant. Blokavimo funkcija neprivaloma ir pagal numatytuosius nustatymus išjungta. Šliuzas mato modelio srautą, nukreiptą per jį. Numbat leidžia matyti, ką agentas daro su atsakymu.

Turite žinoti, kur baigiasi šliuzo kontrolė

Forkast News išskiria tris sprendimų kryptis, iš skirtingų pusių artėjančias prie šliuzo:

  • Į LLM orientuoti šliuzai: LiteLLM ir Portkey pradėjo nuo modelių iškvietimų – formatų konvertavimo tarp teikėjų, užklausų maršrutizavimo ir žetonų stebėjimo. Dabar jie prideda įrankių iškvietimų kontrolės priemones.
  • API valdymo platformos: Kong, Google Apigee ir Azure API Management pradėjo nuo autentifikavimo, leidimų ir srauto valdymo, o vėliau pridėjo modelių palaikymą ir DI skirtas taisykles.
  • Agentams skirta infrastruktūra: pavyzdžiui, agentgateway buvo kuriamas atsižvelgiant į tai, kaip agentai bendrauja su modeliais, įrankiais ir kitais agentais, be kita ko, per MCP ir A2A.

Lemiamas klausimas – ką maršrutizuojate:

  • Tik modelių iškvietimus? Į LLM orientuotas šliuzas – geras atspirties taškas.
  • Modelių iškvietimus įmonėje, kurioje jau gausu API taisyklių? Pradėkite nuo jau turimos platformos.
  • Agentus, kurie kviečia įrankius, o šie – modelius? Patikrinkite, ar ir šie ryšiai aprėpti.

Sukuriate bendrą gedimo tašką

Tarkime, jūsų pagalbos pokalbių robotas naudoja OpenAI, o tyrimų įrankis – Anthropic, ir abu jungiasi per tą patį šliuzą. Jei tas šliuzas nustoja veikti, abu įrankiai praranda prieigą prie savo modelių, net jei OpenAI ir Anthropic veikia įprastai.

Taip jau yra nutikę. Per 2025 m. birželio 12 d. sutrikimą Cloudflare AI Gateway klaidų dažnis išaugo iki 97 %. Šliuzas nustatymams saugoti naudojo Cloudflare Workers KV saugyklos paslaugą, o ši sutriko.

Jei šliuzą valdote patys, laikykite paleistą dar vieną kopiją, kuri galėtų perimti darbą, jei viena sugestų. Jei šliuzą jums talpina kas nors kitas, paklauskite, kaip jie užtikrina jo veikimą gedimų metu ir kas nutinka jūsų užklausoms atkūrimo metu.

Pagrindinės funkcijos, kurių verta ieškoti LLM šliuzuose

Šliuzui suteiksite prieigą prie visų prisijungimo duomenų, todėl turėtumėte būti reiklūs tam, ką jis duoda mainais.

  • Viena API keliems teikėjams: jūsų kodas naudoja vieną formatą, dažnai suderinamą su OpenAI, o šliuzas jį verčia. LLM teikėjai taip pat prisitaiko. Pavyzdžiui, Perplexity Agent API palaiko OpenAI Responses API sąsają, todėl komandos gali pakartotinai naudoti esamas OpenAI klientų bibliotekas.
  • Virtualieji raktai su priskirtomis taisyklėmis: kiekviena komanda ar produktas gauna savo raktą su taisyklėmis, nustatančiomis leidžiamus modelius, užklausų ribas ir išlaidas.
  • Maršrutizavimas ir atsarginiai variantai: šliuzas siunčia užklausas modeliams pagal jūsų nustatymus, kuriuose pirmenybė gali būti teikiama kainai, greičiui ar konkrečiam teikėjui. Jei iškvietimas nepavyksta, jis gali bandyti kitą modelį. Perplexity Agent API leidžia pageidaujama tvarka nurodyti iki penkių modelių, įskaitant skirtingų teikėjų modelius.
  • Podėliavimas: išsaugotas atsakymas leidžia išvengti dar vieno kreipimosi į teikėją. Kai kurie šliuzai sutapdina identiškas užklausas, kiti gali sutapdinti ir panašios prasmės užklausas. Patikrinkite, ar podėlyje saugomus atsakymus galima atskirti pagal naudotoją ar komandą ir ar galima išjungti podėliavimą suasmenintiems ar nuo laiko priklausantiems atsakymams.
  • Srautinis perdavimas ir nuoseklios klaidos: atsakymai pateikiami jų generavimo metu, o teikėjų klaidos verčiamos į formatą, kurį jūsų programa gali apdoroti. Patikrinkite, kas nutinka, kai pridedate DI apsaugos priemones.
  • Registravimas ir išlaidų priskyrimas: šliuzas fiksuoja, kas atliko iškvietimą, kuris modelis jį aptarnavo, kiek žetonų sunaudota, kiek laiko užtruko ir kokia apytikslė kaina. Patikrinkite, ar žurnaluose įrašomi raginimai ir atsakymai bei kiek laiko jie saugomi.
  • Apsaugos priemonių kabliai: tai užklausos kelio taškai, kuriuose šliuzas gali siųsti turinį išoriniam skeneriui, kad šis pateiktų verdiktą. Paprastai jie būna prieš modelio užklausą arba po modelio atsakymo. Patikrinkite, ar užklausos sustabdomos, ar tęsiamos, kai skeneris sugenda, ir ar galite prijungti kitą skenerį.
  • Administravimo sąsaja, kurią galite užrakinti: šliuzas valdo prieigą prie teikėjų prisijungimo duomenų ir visų naudojamų taisyklių. Patikrinkite, ar galite apriboti administratoriaus prieigą atskirai nuo programų srauto ir ar tik skaitymo teises turintys naudotojai negali keisti nustatymų. Pagrindinei sklendei reikia spynos.

Kokiais įrankiais galite sukurti savo LLM šliuzą?

Rinkoje esančių sprendimų funkcijų sąrašai persidengia. Vienoje Reddit gijoje apie vidinę prieigą prie modelių autorius klausė: kuriam šliuzui nereikės atskiro inžinieriaus?

Mūsų nuomone, tai teisingas klausimas, ir į jį yra keturi atsakymai – priklausomai nuo to, kiek darbo esate pasirengę prisiimti.

Parašykite patys

Minimalus šliuzas atlieka trumpą darbų sąrašą: priima užklausas, patikrina kviečiančiojo raktą, prideda teikėjo prisijungimo duomenis, persiunčia iškvietimą ir užregistruoja rezultatą. Tačiau skirtingų teikėjų formatų palaikymas prideda darbo. Kaip ir rūpinimasis, kad visa tai nuolat veiktų.

Jei jau naudojate Envoy, jo išorinio apdorojimo filtras leidžia prijungti paslaugą, kuri tikrina ir keičia užklausas bei atsakymus. Tačiau tą paslaugą vis tiek turite sukurti ir prižiūrėti patys.

r/LLMDevs gijoje apie tai, ar šliuzas sumažina išlaidas, u/QuanTradin teigė, kad kiekvieno iškvietimo žetonų ir podėlio pataikymo žymės registravimas padėjo rasti dvi užduotis, kurios už identiškus raginimus mokėjo visą kainą.

„...tai ištaisyti buvo naudingiau, nei būtų buvęs bet koks maršrutizavimo sluoksnis.“

Tai tik vieno naudotojo patirtis, tačiau nuo jos verta pradėti. Prieš kurdami sudėtingus maršrutizavimo būdus, išsiaiškinkite, už ką mokate.

Talpinkite atvirojo kodo šliuzą patys

LiteLLM čia – dažnas pasirinkimas: suderinamas su OpenAI, palaiko daugybę teikėjų ir turi didelę bendruomenę. Bifrost – alternatyva, sukurta siekiant mažų papildomų kiekvienos užklausos sąnaudų. Helicone verta apsvarstyti, jei jūsų funkcijų sąraše stebimumas yra pirmoje vietoje.

LiteLLM, kaip ir bet kuris produktas, kai kurioms komandoms turi ribų. r/aiagents gijoje apie alternatyvas savo šliuzo kūrimui u/Own_Bar_920 teigė, kad LiteLLM puikiai susidorojo su maršrutizavimu, bet jiems nepakako raginimų versijų valdymo tarp komandų ir nuolatinių vertinimų keičiant modelius, todėl jie perėjo prie atskiro įrankio.

Tai jau daugiau nei bazinis šliuzo maršrutizavimas, ir būtent tai yra esmė: jei pagrindinis poreikis – maršrutizavimas, LiteLLM jiems pasiteisino.

Gaunate paruoštą funkcijų rinkinį (kai kurios funkcijos priklauso nuo leidimo) ir šliuzą laikote savo tinkle. Be to, atsakote už pataisų diegimą – tai konkrečiai parodė anksčiau minėti Check Point atskleisti pažeidžiamumai – ir už šliuzo pasiekiamumą, kurį iliustravo skyrius apie vienintelį gedimo tašką.

Tačiau numatykite biudžetą žmogui, kuris už tai atsakys. Vienas iš nuogąstavimų r/LLMDevs gijoje apie šliuzus vidinei prieigai buvo priežiūra. u/Informal-Writer9685 norėjo sprendimo, kurio „nereikia prižiūrėti atskiram inžinieriui“, ir klausė, ar pranešamas LiteLLM nestabilumas atnaujinant yra reali problema jų mastu, ar aktualu tik gamybinėje aplinkoje.

Naudokite valdomą šliuzą

Cloudflare AI Gateway, Vercel AI Gateway, OpenRouter ir Portkey talpinamas šliuzas paslaugą valdo už jus. Jei programa suderinama, pirmai užklausai praleisti gali prireikti vos URL pakeitimo ir API rakto.

Kompromisas tas, kad kiekvienas raginimas, prieš pasiekdamas teikėją, dabar keliauja per trečiąją šalį. Tai dar vienas duomenų tvarkytojas jūsų atitikties dokumentuose, o paties šliuzo sutrikimas yra tiekėjo incidentas – ne jūs jį taisysite.

Pavyzdžiui, 2026 m. vasario 17 ir 19 d., sugedus podėliavimo priklausomybei, OpenRouter patyrė atitinkamai 38 ir 35 minučių trukmės sutrikimus. Kai kurie klientai gavo klaidas „User not found“ ir gaišo laiką derindami visiškai galiojančius API raktus. Gedimas buvo šliuzo infrastruktūroje.

Tačiau reikia pripažinti, kad OpenRouter paskelbė išsamią incidento analizę ir įdiegė apsaugas, kad podėlio gedimas nebeperkrautų platformos duomenų bazės. Valdomas šliuzas, toks kaip OpenRouter, gali supaprastinti prieigą, tačiau, kaip r/LLMDevs bendruomenėje pažymi u/QuanTradin, sąskaitų sujungimas savaime nesumažina išlaidų.

Išplėskite jau turimą API šliuzą

Jei jūsų paslaugos jau veikia už Kong, Apigee ar Azure API Management, kiekviena iš šių platformų turi DI skirtų galimybių: Kong AI Gateway, Apigee DI šliuzo politikos ir Azure API Management DI šliuzas. Galite remtis jau turimu autentifikavimu, tinklo taisyklėmis ir veiklos procedūromis, o modelių kontrolę pridėti per papildinius ar politikas.

Didelėje įmonėje tai gali būti mažiausio organizacinio pasipriešinimo kelias. Tačiau šių platformų DI funkcijos naujesnės nei atskirų šliuzų. Būtinai išbandykite žetonais pagrįstą užklausų dažnio ribojimą ir srautinį perdavimą su visu papildinių ar politikų rinkiniu, kurį planuojate naudoti.

Tad būtinai įrenkite pagrindinį vožtuvą – visagalį šliuzą. Vis dėlto įžangoje minėtas inžinierius kai kuo teisus. Įmonės prieiga prie modelių neturėtų priklausyti nuo to, kas atsitiktinai stalčiuje laiko tinkamą raktą.

Šliuzas šią problemą išsprendžia perduodamas tuos raktus centralizuotai valdyti, tačiau dėl to palikti stalčių atvirą tampa dar rizikingiau. Turite žinoti, kieno tai stalčius.

DUK apie LLM šliuzus

Ar LLM šliuzas nemokamas?

Jei turite omenyje pačią kategoriją, kai kurie LLM šliuzai turi nemokamas versijas.

LLM šliuzų kainos svyruoja nuo nemokamos atvirojo kodo programinės įrangos iki mokamų planų, kurių kaina prasideda maždaug nuo 50 USD per mėnesį, o įmonių diegimams taikoma individuali kainodara. Kai kurie vietoj to ima procentinį mokestį: pavyzdžiui, OpenRouter plane „Standard“ prie kreditų pirkimo sumos pridedama 5,5 %.

Kuris LLM šliuzas yra geriausias?

Kokį darbą esate pasirengę prisiimti patys?

  • Jei norite šliuzą talpinti savo infrastruktūroje ir patys valdyti konfigūraciją, atkreipkite dėmesį į Bifrost arba Helicone.
  • Valdomas sprendimas, pavyzdžiui, OpenRouter arba Vercel AI Gateway, tinka komandoms, kurios nori, kad paslaugą prižiūrėtų kas nors kitas.
  • Jei jau naudojate Kong arba Azure API Management, pirmiausia patikrinkite jų DI galimybes.

Atrinktus variantus išbandykite su savo užklausomis ir patikrinkite, kas nutinka, kai teikėjo paslauga sutrinka.

Ar AWS turi LLM šliuzą?

Taip. Amazon Bedrock AgentCore Gateway palaiko modelių iškvietas per tai, ką AWS vadina „išvedimo tikslais“ (angl. inference targets). Jie leidžia programoms per vieną galinį tašką pasiekti teikėjus, tarp jų Amazon Bedrock, OpenAI ir Anthropic, o šliuzas tvarko teikėjų prisijungimo duomenis ir maršrutizavimą.