Juhendid

Mis on päringute piiramine? Lihtne juhend rakenduste ehitajatele

Päringute piiramine on reegel, mis piirab, mitu päringut keegi võib süsteemile teatud aja jooksul teha – näiteks 5 sisselogimiskatset minutis või 100 API-kutset tunnis. Kui piir on täis, lükatakse edasised päringud tagasi (tavaliselt veakoodiga 429 Too Many Requests), kuni ajaaken lähtestub. See kaitseb rakendusi väärkasutuse eest, hoiab ära, et üks koormav kasutaja aeglustab kõigi teenust, ning takistab kontrollimatuid kulusid.

Päringute piiramisega puutud kokku kahest küljest: teenused, mida sa kutsud, piiravad sind, ja sinu enda rakendus peaks piirama oma kasutajaid.

Miks päringute piiramine on oluline, kui ehitad AI-ga

AI-ga ehitatud rakendused ühendavad sageli tasulisi teenuseid – AI-mudeleid, e-posti, SMS-e, kaarte – ja iga kutse maksab raha. See muudab päringute piiramise nii turvafunktsiooniks kui ka eelarvefunktsiooniks.

  • Kulude kontroll. Kui su rakendusel on „küsi AI-lt” kast ja piirangut ei ole, võib robot saata sinna öö jooksul tuhandeid päringuid. Maksad iga eest.
  • Turvalisus. Ilma piiranguta sisselogimisvormil võib ründaja proovida tuhandeid salasõnu ühe konto vastu. Paar katset minutis muudab selle ebapraktiliseks.
  • Võrgus püsimine. Üks valesti käituv skript – mõnikord sinu enda kood, mis jookseb tsüklisse – võib üle koormata andmebaasi ja rakenduse maha võtta.
  • Teiste teenuste piirangute austamine. Kui su rakendus kutsub väljapoolset API-d liiga sageli, saad sina 429 vead ja su kasutajate funktsioonid lähevad katki.

AI-ehitajad ehitavad seda, mida palud. Kui sa piiranguid ei maini, jäetakse need sageli välja.

Igapäevane analoogia

Mõtle kohvikus olevale tasuta kohvi täiendamise reeglile: „Üks tasuta täiendus kliendi kohta visiidi kohta.”

  • See ei takista kedagi kohvi nautimast.
  • See takistab ühte inimest seisma kogu päeva letis ja täitma termost kogu kontori jaoks.
  • Kui keegi küsib neljandat täiendust, ütleb barista viisakalt „mitte praegu” – see on 429.

Hea päringupiirang on tavalistele klientidele nähtamatu ja märgatav ainult siis, kui keegi teeb midagi ebatavalist.

Kuidas päringute piiramine töötab

Päringupiirang vajab kolme asja:

OsaMillele see vastabNäited
KesKelle päringuid loetakse?Kasutajakonto, IP-aadress, API-võti
Kui paljuMis on piir?5, 60, 1000 päringut
Mis ajagaMis ajaaknas?Sekund, minut, tund, päev

Kui päring saabub, kontrollib rakendus selle „kes” loendurit. Piiri all: päring läheb läbi ja loendur tõuseb. Piiri peal: päring lükatakse tagasi.

Loendamiseks on mõned levinud viisid:

MeetodKuidas töötabKompromiss
Fikseeritud akenLoendur lähtestub kella järgi – nt iga minut täpseltLihtne, aga lubab lühikest tippu kahe akna piiril
Libisev akenVaatab viimast 60 sekundit praegusest hetkestÜhtlasem, veidi rohkem arvutust
Žetoonikorv (token bucket)Igal kasutajal on korv, mis täitub kindla kiirusega; iga päring võtab žetooniLubab lühikesi tippe, hoides keskmise stabiilsena

Loendurid peavad olema salvestatud kiiresti ja ühiselt kasutatavasse kohta. Ühel väikesel serveril sobib mälu. Kui rakendus töötab mitmel masinal, elab loendur tavaliselt jagatud salvestuses nagu Redis või andmebaas – muidu loeb iga masin eraldi ja tegelik piir muutub mitu korda suuremaks.

Kuidas näeb piiratud vastus välja

Kui päring ületab piiri, vastab korrektne API:

  • Staatusekood 429 Too Many Requests.
  • Sageli päis Retry-After, mis ütleb, mitu sekundit oodata.
  • Mõnikord päised, mis näitavad sinu piiri ja seda, mitu päringut sul selles aknas veel alles on (nimed sõltuvad pakkujast).

Su rakendus peaks 429 vastusele reageerima ootamisega ja hiljem uuesti proovimisega – ideaalis eksponentsiaalse tagasilanguse (exponential backoff) abil, mis tähendab, et iga ebaõnnestunud katse järel oodatakse veidi kauem (1 sekund, siis 2, siis 4), selle asemel et teenust pidevalt pommitada.

Näide: AI kirjutamisassistent

Oletame, et oled ehitanud rakenduse, kus kasutajad kleebivad teksti ja saavad AI ümberkirjutuse.

Ilma piiranguteta: keegi kirjutab skripti, mis saadab öö jooksul 20 000 päringut. Su AI-pakkuja arve kasvab ning su konto jõuab pakkuja enda päringupiirani, nii et päris kasutajad näevad hommikul vigu.

Mõistlike piirangutega:

  1. Iga sisselogitud kasutaja kohta: 30 ümberkirjutust tunnis tasuta plaanil, 300 tasulisel. Piiri ületamisel näeb kasutaja: „Oled selle tunni limiidi saavutanud. Proovi uuesti 12 minuti pärast või uuenda plaani.”
  2. IP-aadressi kohta registreerimisvormil: 5 registreerimist tunnis, et takistada robotite loomist tuhandeid tasuta kontosid, et ümber kasutajapõhise piiri minna.
  3. Kulupiirang AI-pakkuja kontrollpaneelil viimase kaitseliinina, kui kõik muu ebaõnnestub.
  4. Pakkuja piirangute käsitlemine: kui AI-pakkuja tagastab 429, ootab sinu server ja proovib ühe või kaks korda uuesti, seejärel näitab sõbralikku teadet „hõivatud, proovi uuesti”.

Piiranguid kontrollitakse serveris. Piirang, mis eksisteerib ainult brauseris – näiteks nupu keelamine pärast 30 klõpsu –, saab mööda minna igaüks, kes kutsub su API-d otse.

Põhimõisted

MõisteTähendus
Päringupiirang (rate limit)Maksimaalne päringute arv ajaaknas.
KvootSuurem lubatud maht, sageli päeva- või kuupõhine, mõnikord seotud tasulise plaaniga.
429HTTP-staatusekood tähenduses „liiga palju päringuid”.
Retry-AfterVastuse päis, mis ütleb, kui kaua oodata enne uut katset.
ThrottlingPiiri ületavate päringute aeglustamine või tagasilükkamine. Sageli sünonüüm.
Eksponentsiaalne tagasilangusJärjest pikemate ootamisaegade ootamine kordusproovide vahel.
Tipp (burst)Lühike hulga päringute korraga lööv tipp.
Jõuga murdmine (brute-force)Tohutute salasõnade või koodide proovimine, kuni üks töötab.

Levinud arusaamatused

  • „Päringute piiramine on ainult suurtele rakendustele.” Väikesed rakendused on samuti sihtmärgid, sest robotid skännivad kogu interneti avatud vorme ja AI-lõpp-punkte. Väärkasutuse hind ei sõltu sinu suurusest.
  • „Nupu peitmine on piisav.” Brauseripoolsed piirangud on viisakus, mitte kaitse. Päris piirangud peavad olema jõustatud serveris.
  • „IP-põhised piirangud on alati õiglased.” Paljud inimesed võivad jagada ühte IP-aadressi – kontor, kool, mobiilivõrk. Sisselogitud kasutajatele on kasutajapõhised piirangud õiglasemad.
  • „429 tähendab, et teenus on katki.” See tähendab, et kutsud teenust liiga sageli. Kontrolli oma koodi tsüklite suhtes ja vahesta tulemusi, mis ei muutu tihti – vt mis on vahemällu salvestamine.
  • „Päringupiirang asendab kulupiirangu.” Kasuta mõlemat. Rakenduse piirangutes võib olla vigu; pakkuja kulupiirang on su tagavara.

Mida küsida oma AI ehitajalt

  • „Lisa serveripoolne päringupiirang sisselogimisele, registreerimisele, parooli lähtestamisele ja AI-lõpp-punktile. Soovita mõistlikke piire.”
  • „Piira iga sisselogitud kasutaja AI-päringuid [N]-ni tunnis ja näita piiri ületamisel selget teadet koos ooteajaga.”
  • „Kui väline API tagastab 429, proovi eksponentsiaalse tagasilanguse abil kuni 3 korda uuesti ja seejärel näita sõbralikku veateadet.”
  • „Kus päringuloendureid hoitakse? Kas need töötavad ka siis, kui rakendus jookseb mitmel masinal?”
  • „Logi, millal kasutaja või IP piirini jõuab, et saaksin väärkasutust märgata.”
  • „Millised väljapoolsed teenused see rakendus kutsub ja mis on nende päringupiirangud?”

Päringute piiramine Mythexis

Mythexi dokumentatsioon on AI-funktsioonide osas selge: sinu ehitatud rakenduste päringupiirangud, turvalisus ja kulukontrollid on sinu kujundada – vaata AI-rakenduse ehitamine. Palu agentil piirangud lisada samas sõnumis, kus palud funktsiooni. Pro-plaanil võib avaldatud teenus töötada koormuse korral kuni kolmel masinal (vt hostingu piirangud), seega palu loendurid, mis elavad andmebaasis, mitte ühe serveri mälus.

Seotud lugemist: mis on API, kuidas kasutada LLM API-sid ja turvakontrollnimekiri AI-ga ehitatud rakendustele.

Küsimused

Mis on päringute piiramine lihtsas keeles?

Päringute piiramine on reegel, mis seab piirangu, mitu päringut kasutaja, seade või rakendus võib teatud aja jooksul teha – näiteks 5 sisselogimiskatset minutis või 100 API-kutset tunnis. Piirangu ületavad päringud lükatakse tagasi, kuni ajaaken lähtestub.

Mida tähendab 429 Too Many Requests viga?

HTTP-staatus 429 tähendab, et saatsid liiga palju päringuid liiga lühikese ajaga ja jõudsid päringupiirangusse. Vastuses on sageli päis Retry-After, mis ütleb, kui kaua oodata. Lahendus on aeglustada, proovida mõne aja pärast uuesti või vähendada, kui sageli su rakendus teenust kutsub.

Miks mu AI-d kasutav rakendus vajab päringute piiramist?

Iga AI-päring maksab sulle tokenite eest raha. Ilma piirita võib üks kasutaja või robot saata tuhandeid päringuid, tekitada suure arve või ammendada pakkuja kvoodi ja jätta funktsiooni kõigilt kasutajatelt kasutamata. Kasutajapõhised piirangud hoiavad kulud ettenähtavad.

Kas päringute piiramine on sama mis throttling?

Need on tihedalt seotud ja neid kasutatakse sageli samas tähenduses. Päringute piiramine tähendab tavaliselt piiri ületavate päringute tagasilükkamist, samas kui throttling võib tähendada ka nende aeglustamist või järjekorda panemist, mitte otsest keeldumist.

Kas päringute piiramine peatab DDoS-rünnakud?

See aitab väikeste üleujutuste ja üksikute kasutajate või IP-aadresside väärkasutuse vastu, aga suur hajutatud rünnak tuleb paljudelt aadressidelt korraga. Selle vastu kaitstakse tavaliselt võrgu- või CDN-tasandil, enne kui liiklus jõuab sinu rakenduseni.

Mythex · Pricing · Ehita kõike AI-ga · Veebilehtede ja rakenduste mallid · Mythex võrdluses · Tehisintellektiga rakenduste ehitamise sõnastik · Tasuta tööriistad tehisintellektiga rakenduste ehitamiseks · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)