Ugrás a tartalomra
  1. Találmányok/

TokenLimiter

2025.1 2025. február 14.

Ez a könyvtár lehetővé teszi a tokenek percenkénti használatának korlátozását több goroutine-on keresztül, opcionális késleltetés támogatásával, amíg a használat a megengedett határértéken belül nem lesz.

Megoldandó probléma

Olyan alkalmazásokban, amelyek intenzíven használnak tokeneket, például API kulcsokat rátakorlátokkal, elengedhetetlen a tokenek használatának korlátozása, hogy ne lépjük túl ezeket a határértékeket. Ez a probléma még összetettebbé válik, ha több goroutine is érintett, melyek mindegyike potenciálisan független módon fogyaszt tokeneket.

Megoldás

Egy olyan megoldást hoztam létre, amely több goroutine-on keresztül működik, és lehetőséget biztosít arra, hogy vagy hibaüzenetet adjon vissza, vagy késleltessen, amíg a használat a határértéken belülre nem kerül, amikor a limit túllépésre kerül.

Tipikus felhasználási területek

  • API hívások rátakorlátozása konkurens folyamatokon keresztül
  • Erőforrás-felhasználás szabályozása elosztott rendszerekben
  • Token használat kezelése harmadik féltől származó API integrációkhoz
  • API rátakorlátoknak való megfelelés biztosítása nagy áteresztőképességű alkalmazásokban

Felhasználók

  • LinkResearchTools
  • Egy nagy AI márka

Verzió történet

2025.1
2025. február 14.
Áttekintés és frissítés a legújabb könyvtárakra
Changes:
  • Áttekintés és frissítés a legújabb könyvtárakra
  • Régebbi rendszerekkel való kompatibilitási problémák javítása
2024.1
2024. január 10.
Áttekintés és frissítés a legújabb könyvtárakra
Changes:
  • Áttekintés és frissítés a legújabb könyvtárakra
2023.1
2023. május 5.
Kezdeti megoldás biztosítása

Licenc feltételek

Egyedi használati licencek megállapodás szerint
Funkciók>

Funkciók #

  • Szálbiztos token korlátozás több goroutine-on keresztül
  • Opció a késleltetésre, amíg nem illeszkedik: ha engedélyezve van, és a token használati limit túllépésre kerül, a hívás vár, amíg elegendő token nem lett feldolgozva ahhoz, hogy a használat a határértéken belülre kerüljön
  • Hiba a limit túllépésekor: ha nincs engedélyezve a késleltetés, a hívás hibaüzenetet ad vissza, ha a token használati limit túllépésre kerül
  • Átlagos használat nyomon követése: az átlagos token használat nyomon követése egy sor ponton keresztül (pl. utolsó 100 használat)
  • Utolsó perc lekérése: metódus az utolsó perc lekérésére, amelyet tokenek hozzáadására használtak
Korlátozások>

Korlátozások #

Ez a TokenLimiter csak egyetlen gépen működik. Ha egy klaszter több csomópontján futtatják, a token limit túlléphető. Ennek egy lehetséges megoldása, ha minden csomópontnak a Token Per Minute (TPM) kvóta egy részét adjuk. Ez akkor működne, ha tudom, hogy minden csomópont hasonló kihasználtsággal fog rendelkezni. Azonban, ha egy gép kevesebb kérést kezel, és nem üzemel, annak kvótája kihasználatlan marad, rontva a klaszter teljesítményét. A megfelelő megoldás egy TokenLimiter klaszter implementálása lenne, amely dinamikusan kezeli a token limitek elosztását gépenként.

Miben különbözik a Rate Limitertől>

Miben különbözik a Rate Limitertől #

Bár a rate limiterek és a TokenLimiter egyaránt korlátozzák az erőforrások használatát valamilyen módon, vannak kulcsfontosságú különbségek. A rate limiterek jellemzően a kérések számát korlátozzák egy adott időtartamban, és gyakran elszigetelten kezelik a párhuzamosságot. Az általam készített TokenLimiter kifejezetten token-alapú rendszerekre (pl. API tokenek) lett tervezve, ahol minden művelet különböző mennyiségű tokent fogyaszthat, és szálbiztos kezelést biztosít a párhuzamos műveletek között.



Christoph C. Cemper
Szerző
Christoph C. Cemper
Minden reggel a linkekről, SEO-ról és AI-ról gondolkozva ébredek.