zisky:
- Vysvetlite logiku zhody prefixov pri ukladaní výziev do vyrovnávacej pamäte
- Zvyšuje počet zásahov do vyrovnávacej pamäte umiestnením pevného kontextu na prvé miesto a premenlivého kontextu za ním
- Dokáže vypočítať ekonomiku zápisu/čítania z vyrovnávacej pamäte a bod zlomu
Produkt LLM vyzerá v prototype lacno; Keď vystúpite na váhu, účet prekvapí. Vo väčšine pracovných zaťažení väčšina faktúr pochádza z rovnakého pevného kontextu, ktorý sa posiela znova a znova s každou požiadavkou: dlhá systémová výzva, kniha pravidiel, referenčná dokumentácia. Rýchle ukladanie do vyrovnávacej pamäte eliminuje presne tento odpad. V tejto lekcii sa naučíte, ako funguje vyrovnávacia pamäť, ako usporiadať výzvu na zásah a ako vypočítať bod zvratu ekonomiky vyrovnávacej pamäte. Pri správnej inštalácii dokáže znížiť váš účet na polovicu alebo ešte nižšie.
Ako funguje vyrovnávacia pamäť? Jediné nemenné pravidlo
Ukladanie výzvy do vyrovnávacej pamäte je zhoda s predponou. Poskytovateľ dočasne ukladá tokeny, ktoré spracoval od začiatku vašej výzvy. Ak výzva pri ďalšej požiadavke začína rovnakou predponou, táto spoločná časť sa neprepočítava; Čítanie je oveľa lacnejšie ako vyrovnávacia pamäť.
Z toho vyplýva jedno nemenné pravidlo: Ak sa kdekoľvek v prefixe zmení jeden bajt, od tohto bodu sa celá vyrovnávacia pamäť stáva neplatnou. To znamená, že pevný obsah by mal byť na začiatku a variabilný obsah by mal byť na konci. Ak na začiatok systémovej výzvy vložíte riadok, ktorý sa mení s každou požiadavkou, ako napríklad „Dnešný dátum: 18.07.2026“, všetko za ním nebude môcť vstúpiť do vyrovnávacej pamäte.
Poradie spracovania je zvyčajne: nástroje → systémová výzva → správy. Bod vyrovnávacej pamäte (bod prerušenia) umiestnite na koniec pevnej časti.
Ekonomika vyrovnávacej pamäte
Cache má tri cenové úrovne:
- Zápis do vyrovnávacej pamäte: Prvýkrát sa ukladá. ~1,25x bežná vstupná cena (za 5 minút skladovania).
- Čítanie z vyrovnávacej pamäte: Čítanie pri nasledujúcich požiadavkách. ~0,1-násobok bežnej vstupnej ceny — teda jedna desatina.
- Normálny vstup: Časť, ktorá nevstupuje do vyrovnávacej pamäte a je zakaždým spracovaná za plnú cenu.
Bod zvratu: Prvá žiadosť zaplatí prirážku (1,25×). Od druhej požiadavky prichádza na rad čítanie (0,1×). Zhruba budete mať krk a krk na dve žiadosti; Potom sú to čisté úspory. Čím väčší je pevný kontext a čím viac požiadaviek sa opätovne použije, tým väčší bude zisk.
Scenár
Funguje vyrovnávacia pamäť?
Veľký pevný systém prompt, tisíce požiadaviek
Áno – najvyššie zárobky
Veľa otázok o rovnakých referenčných dokumentoch
áno
Pre každú požiadavku úplne iný krátky text
Nie – bonus za zápis je premrhaný
Jednorazová žiadosť
Nie – vôbec žiadne čítanie
Zmena dátumu/ID pri každej požiadavke na výzvu systému
Nie – predpona je nefunkčná, zásah je nula
Krok za krokom: Ako nastaviť výzvu na nájdenie?
- Samostatná konštanta a premenná. Aký obsah sa nikdy nemení (systémová výzva, kniha pravidiel, dokumentácia)? Čo sa mení s každou požiadavkou (otázka používateľa, dátum, ID)?
- Konštantu dajte na začiatok. Pri spracovaní musí byť časť, ktorá je na prvom mieste (nástroje, systém), stabilná.
- Umiestnite premennú na koniec. Aktuálna otázka používateľa, posledná.
- Umiestnite značku na koniec hranice. Umiestnite cache bod do posledného bloku pevnej časti.
- Overte zásah. Skontrolujte, či je cache_read_input_tokens v poli použitia v odpovedi väčšia ako nula. Ak je nula, v predpone je skrytý disruptor.
{ "system": [ { "type": "text", "text": "{{large_constant_system_promptu_and_rules}}", "cache_control": { "type": "efemérny" } } ], "messages": [ { "role": "user", "content": "{{user_current_question"
Tip: Nehádajte zásahy do vyrovnávacej pamäte, merajte ich. Ak je use.cache_read_input_tokens pri po sebe nasledujúcich požiadavkách stále nula, beží tichý prerušovač (datetime.now() v systémovej výzve, neusporiadaný JSON, zoznam nástrojov sa mení s každou požiadavkou). Porovnajte surovú výzvu dvoch požiadaviek bajt po bajte a nájdite rozdiel.
Tiché disruptory
Typické vzory, ktoré nevedomky poškodzujú vyrovnávaciu pamäť:
# BREAKER: vkladanie informácií do systémovej výzvy, ktorá sa mení s každou požiadavkou "Dnešný dátum: {{teraz}}. Ste asistent..." ← predpona sa mení s každou požiadavkou, zásah je nula# TRUE: presuňte premennú do systému správ: "Ste asistent..." ← konštanta vstupuje do vyrovnávacej pamäte: [{rola: user, content: ← premenná dnes na konci.]:}}
Iné prerušovače: JSON triedené odlišne pri každej požiadavke (kľúče udržiavajte v pevnom poradí), zoznam nástrojov sa líši podľa používateľa (nástroje sa spracujú ako prvé; do vyrovnávacej pamäte sa nič nevloží, ak sa zmenia), zmena modelu uprostred konverzácie (vyrovnávacie pamäte sú špecifické pre daný model).
Slabá výzva / silná výzva (štruktúra priateľská k vyrovnávacej pamäti)
# SLABÝ (vybudovanie vyrovnávacej pamäte) systém: "Dátum: 18.07.2026 14:32. Používateľ: Ahmet (id 8842). Ste podporný robot. Pravidlá: ...(2000 tokenov)..."
# SILNÝ (štruktúra vhodná pre vyrovnávaciu pamäť) systém: "Ste podporný robot. Pravidlá: ...(2000 tokenov, nikdy sa nezmení)..." [znak vyrovnávacej pamäte]správy: [ { rola: používateľ, obsah: "Dátum: 18.07.2026 14:32. ID používateľa: 8842. Otázka: ako spustím vrátenie peňazí?" }]
V slabej verzii sa pri každej požiadavke spracuje blok pravidiel 2000 tokenov s plnou cenou. V silnej verzii sa rovnaký blok raz zapíše a prečíta pri všetkých nasledujúcich požiadavkách na desatinu ceny.
Tri mini puzdrá
Prípad 1 – Uloženie knihy pravidiel do vyrovnávacej pamäte. Účtovná automatizácia pridávala ku každej faktúre 12 000 tokenových pravidiel; 5 000 žiadostí za deň. Vstup bez vyrovnávacej pamäte stojí ~ 180 USD za deň. Udržiavali knihu pravidiel konštantnú a ukladali ju do vyrovnávacej pamäte: prvé požiadavky zaplatili prémiu za zápis, ďalšie čítania 0,1×. Vstupné náklady klesli o ~90 % na ~18 USD za deň.
Prípad 2 – Náklady na skrytý dátumový riadok. Jeden tím vytvoril vyrovnávaciu pamäť, ale nezískal žiadne zásahy; cache_read_input_tokens bola vždy nula. Dôvod: V prvom riadku systémovej výzvy bol datetime.now(), predpona sa menila s každou požiadavkou. Keď sme presunuli dátum do správy používateľa, miera návštev sa náhle zvýšila z 0 % na 94 %.
Prípad 3 – Zle umiestnená vyrovnávacia pamäť. Vyhľadávacia aplikácia posielala s každou požiadavkou úplne iné krátke dopyty; Dychtivo pridali znak kešky. Bez spoločnej predpony každá požiadavka zaplatila iba prémiu za zápis, žiadne čítanie, čo zvyšuje náklady. Značku odstránili. Ponaučenie: vyrovnávacia pamäť sa vypláca iba vtedy, ak existuje veľká a konštantná predpona, ktorá sa opakovane používa.
Časté chyby
- Miešacia konštanta a premenná: Keď je obsah premennej v predpone, prístup sa resetuje.
- Dátum/ID vloženia do systémovej výzvy: Najbežnejší tichý disruptor.
- Nemeria sa prístup: Ak nie je začiarknuté políčko cache_read_input_tokens, odpad sa nezaznamená.
- Pridanie vyrovnávacej pamäte, keď neexistuje verejná predpona: Platíte iba prémiu za zápis, náklady sa zvyšujú.
- Zmena zoznamu vozidiel alebo modelu: Predpona je od začiatku prerušená; všetko je prepísané.
- Zabudnutie minimálnej veľkosti vyrovnávacej pamäte: Veľmi krátke vyrovnávacie pamäte (menej ako 1–4 000 tokenov v závislosti od modelu) nevstúpia do vyrovnávacej pamäte ticho.
Deeper: Navrhovanie vyrovnávacej pamäte podľa typu pracovného zaťaženia
Skutočný prínos ukladania do vyrovnávacej pamäte sa líši v závislosti od povahy vašej pracovnej záťaže; takže najprv spoznajte svoju premávku. Tri typické vzory a správna inštalácia:
Bežná systémová výzva, rôzne otázky. Najbežnejší podnikový vzor: veľká systémová výzva (rola, pravidlá, možno referenčný dokument) so stovkami rôznych používateľských otázok. Tu je pevná časť (systém) pôvodne uložená do vyrovnávacej pamäte; každá nová otázka platí plnú cenu len za svoju malú časť. Zisk je veľmi vysoký, pretože veľká časť sa opakovane recituje za desatinu ceny.
Viackolový monológ. Ako sa konverzácia vlečie, každé nové kolo nadväzuje na všetky predchádzajúce dejiny. Ak vložíte príznak vyrovnávacej pamäte na koniec posledného kola, každá požiadavka opätovne použije predponu predchádzajúcej konverzácie; hity sa hromadia s rastúcou konverzáciou. To výrazne znižuje náklady na dlhé sedenia asistenta.
Zdieľaná predpona je posledný bit, ktorý sa má zmeniť. Viaceré požiadavky zdieľajú veľkú sadu pevných priorít (vzorová sada, inštrukcie), ale sú oddelené jednou otázkou na konci. Ukazovateľ vyrovnávacej pamäte umiestnite na koniec zdieľanej časti; V opačnom prípade by každá požiadavka zapísala svoju vlastnú samostatnú vyrovnávaciu pamäť a nič z nej by nebolo prečítané.
Jedno upozornenie: vyrovnávacia pamäť závisí od modelu a určitej minimálnej veľkosti. Veľmi malé predpony (pod niekoľko tisíc tokenov, v závislosti od modelu) nevstúpia do vyrovnávacej pamäte ticho, aj keď ich označíte – cache_creation_input_tokens zostáva nula. Zmena modelu uprostred konverzácie tiež zruší platnosť celej vyrovnávacej pamäte; Ak si iná úloha vyžaduje lacný model, ponechajte hlavný tok v jednom modeli a vedľajšiu úlohu vložte do samostatného hovoru.
V súhrne
Ukladanie výzvy do vyrovnávacej pamäte je zhoda prefixu: pevný obsah by mal byť na začiatku, premenlivý obsah by mal byť na konci. V prípade veľkého, opakovane použitého kontextu sú náklady na čítanie desatinou plnej ceny, čo je približne rovnaké ako pri dvoch požiadavkách. Najčastejšou chybou je poškodenie predpony vložením premenných údajov do systémovej výzvy; Prístup overíte meraním v poli použitia.
Aplikačná úloha
Vyberte si pracovné zaťaženie. (1) Rozdeľte obsah do dvoch stĺpcov: „nikdy sa nemení“ a „mení sa pri každej požiadavke“. (2) Prekreslite štruktúru výzvy tak, že konštantnú časť umiestnite na začiatok a premennú časť na koniec. (3) Odhadnite veľkosť tokenu pevnej časti a porovnajte mesačné náklady s/bez vyrovnávacej pamäte. (4) Všimnite si, z ktorého poľa (cache_read_input_tokens) overíte prístup.
kontrolný zoznam
- [ ] Môžem vysvetliť, že vyrovnávacia pamäť je zhoda prefixov a jediné nemenné pravidlo.
- [ ] Môžem zvýšiť presnosť umiestnením pevného obsahu na začiatok a premennej na koniec.
- [ ] Viem písať/čítať ekonómiu a bod zlomu dvoch žiadostí.
- [ ] Dokážem rozpoznať tiché disruptory (dátum, neusporiadaný JSON, meniaci sa zoznam vozidiel).
- [ ] Môžem overiť prístup pomocou use.cache_read_input_tokens.