Pelnas:
- Paaiškinkite priešdėlių atitikimo logiką, kai reikia greitai kaupti talpykloje
- Padidina talpyklos aptikimą, pirmiausia iškeldama fiksuotą kontekstą, o po jo – kintamąjį
- Gali apskaičiuoti talpyklos rašymo / skaitymo ekonomiką ir lūžio tašką
LLM produktas atrodo pigiai prototipas; Kai pakili į skalę, sąskaita nustebina. Daugumoje darbo krūvių didžioji dalis sąskaitų gaunama iš to paties fiksuoto konteksto, kuris vėl ir vėl siunčiamas su kiekviena užklausa: ilgas sistemos raginimas, taisyklių sąsiuvinys, informacinė dokumentacija. Greitas kaupimas talpykloje pašalina būtent šias atliekas. Šiame skyriuje sužinosite, kaip veikia talpykla, kaip išdėstyti raginimą pasiekti ir kaip apskaičiuoti talpyklos ekonomikos lūžio tašką. Teisingai įdiegus, jis gali sumažinti jūsų sąskaitą per pusę ar net sumažinti.
Kaip veikia talpykla? Viena nekintanti taisyklė
Greitas kaupimas talpykloje yra priešdėlio atitiktis. Teikėjas laikinai saugo žetonus, kuriuos apdorojo nuo jūsų raginimo pradžios. Jei kitoje užklausoje raginimas prasideda tuo pačiu priešdėliu, ši bendroji dalis neperskaičiuojama; Skaityti yra daug pigiau nei talpykloje.
Iš to išplaukia viena nekintama taisyklė: jei vienas baitas pasikeičia bet kurioje priešdėlio vietoje, nuo to momento visa talpykla tampa negaliojanti. Tai reiškia, kad fiksuotas turinys turėtų būti pradžioje, o kintamas – pabaigoje. Jei sistemos raginimo pradžioje įdėsite eilutę, kuri keičiasi su kiekviena užklausa, pvz., "Šiandienos data: 2026-07-18", viskas, kas yra už jos, negalės patekti į talpyklą.
Apdorojimo tvarka paprastai yra tokia: įrankiai → sistemos raginimas → pranešimai. Talpyklos tašką (pertraukos tašką) įdedate fiksuotos dalies pabaigoje.
Talpyklos ekonomika
Talpykloje yra trys kainų pakopos:
- Rašyti talpykloje: saugoma pirmą kartą. ~1,25x įprasta įvesties kaina (už 5 min. saugojimą).
- Talpyklos skaitymas: vėlesnių užklausų skaitymas. ~0,1 karto didesnė už įprastą sąnaudų kainą – tai yra dešimtadalį.
- Įprasta įvestis: dalis, kuri neįeina į talpyklą ir kiekvieną kartą apdorojama už visą kainą.
Lūžio taškas: už pirmą pareikalavimą sumokama įrašymo įmoka (1,25×). Nuo antrojo užklausos pradedamas rodyti rodmuo (0,1×). Apytiksliai, jūs būsite ant kaklo pagal du prašymus; Po to tai yra grynosios santaupos. Kuo didesnis fiksuotas kontekstas ir kuo daugiau užklausų jis naudojamas pakartotinai, tuo didesnis padidėjimas.
Scenarijus
Ar veikia talpykla?
Didelė fiksuota sistemos eilutė, tūkstančiai užklausų
Taip – didžiausias uždarbis
Daug klausimų apie tuos pačius informacinius dokumentus
Taip
Visiškai skirtingas trumpas tekstas kiekvienai užklausai
Ne – rašymo premija yra švaistoma
Vienkartinis prašymas
Ne – iš viso neskaityti
Data / ID keičiasi su kiekviena užklausa sistemos raginimu
Ne – priešdėlis sulaužytas, smūgis lygus nuliui
Žingsnis po žingsnio: kaip nustatyti užklausą?
- Atskirkite konstantą ir kintamąjį. Koks turinys niekada nesikeičia (sistemos raginimas, taisyklių sąvadas, dokumentacija)? Kas keičiasi su kiekviena užklausa (vartotojo klausimas, data, ID)?
- Įdėkite konstantą pradžioje. Apdorojimo metu dalis, kuri yra pirma (įrankiai, sistema), turi būti stabili.
- Įdėkite kintamąjį pabaigoje. Vartotojo dabartinis klausimas, paskutinis.
- Padėkite ženklą sienos gale. Įdėkite talpyklos tašką į paskutinį fiksuotos dalies bloką.
- Patvirtinti paspaudimą. Patikrinkite, ar atsakymo naudojimo lauke cache_read_input_tokens yra didesnis nei nulis. Jei nulis, priešdėlyje yra paslėptas trikdiklis.
{ "sistema": [ { "type": "text", "text": "{{large_constant_system_promptu_and_rules}}", "cache_control": { "type": "efemerinis" } } ], "pranešimai": [ { "role": "user", "content": "{{user_curles]}}"_
Patarimas: neatspėkite talpyklos įvykių, matuokite juos. Jei usage.cache_read_input_tokens vis dar lygus nuliui iš eilės pateikiamų užklausų, veikia tylusis pertraukiklis (datetime.now() sistemos raginime, netvarkingas JSON, įrankių sąrašas keičiasi su kiekviena užklausa). Baitas po baito palyginkite neapdorotą dviejų užklausų eilutę ir raskite skirtumą.
Tylūs trikdytojai
Tipiški modeliai, kurie nesąmoningai sugadina talpyklą:
# PERTRAUKIS: informacijos įterpimas į sistemos raginimą, kuris keičiasi su kiekviena užklausa "Šiandienos data: {{dabar}}. Jūs esate asistentas..." ← priešdėlis keičiasi su kiekviena užklausa, paspaudimas lygus nuliui# TRUE: perkelkite kintamąjį į pranešimų sistemą: "Esate asistentas..." ← konstanta įveda į talpyklos pranešimus: {{role:day:} vartotojas yra, {{role:}.}. ..."}] ← kintamasis pabaigoje
Kiti pertraukikliai: JSON rūšiuojamas skirtingai pagal kiekvieną užklausą (laikyti raktus fiksuota tvarka), įrankių sąrašas skiriasi pagal vartotoją (įrankiai apdorojami pirmiausia; niekas neįeina į talpyklą, jei jie pasikeičia), modelio keitimas pokalbio viduryje (talpyklos priklauso nuo modelio).
Silpna raginimas / Stiprus raginimas (talpinimui palanki struktūra)
# WEAK (cache busting build)sistema: "Data: 2026-07-18 14:32. Vartotojas: Ahmetas (id 8842). Jūs esate palaikymo robotas. Taisyklės: ...(2000 žetonų)..."
# STIPRI (talpinimui palanki struktūra)sistema: "Esate palaikymo robotas. Taisyklės: ...(2000 žetonų, niekada nesikeičia)..." [talpyklos ženklas]pranešimai: [ { vaidmuo: vartotojas, turinys: "Data: 2026-07-18 14:32. Vartotojo ID: 8842. Klausimas: kaip inicijuoti pinigų grąžinimą?" }]
Silpnoje versijoje 2000 žetonų taisyklės blokas apdorojamas už visą užklausą. Stiprioje versijoje tas pats blokas parašomas vieną kartą ir skaitomas visuose tolesniuose prašymuose už dešimtadalį kainos.
Trys mini dėklai
1 atvejis – taisyklių sąsiuvinio kaupimas talpykloje. Apskaitos automatika į kiekvieną sąskaitą įtraukė 12 000 žetonų taisyklių knygą; 5000 prašymų per dieną. Įvestis be talpyklos kainuoja ~180 USD per dieną. Jie nuolat saugojo taisyklių knygą ir saugojo ją talpykloje: už pirmąsias užklausas buvo mokama rašymo priemoka, o vėliau nuskaitant 0,1 ×. Įvesties kaina sumažėjo ~90% iki ~18 USD per dieną.
2 atvejis – paslėptos datos eilutės kaina. Viena komanda sukūrė talpyklą, bet nesulaukė jokių rezultatų; cache_read_input_tokens visada buvo nulis. Priežastis: Pirmoje sistemos eilutės eilutėje buvo datetime.now(), o priešdėlis keitėsi su kiekviena užklausa. Kai perkėlėme datą į vartotojo pranešimą, pataikymo rodiklis staiga padidėjo nuo 0% iki 94%.
3 atvejis – netinkama talpykla. Paieškos programa su kiekviena užklausa siųsdavo visiškai skirtingas trumpas užklausas; Jie nekantriai pridėjo talpyklos ženklą. Be bendro priešdėlio už kiekvieną užklausą buvo mokama tik rašymo priemoka, be skaitymo – tai padidino išlaidas. Jie nuėmė ženklą. Pamoka: talpykla moka tik tuo atveju, jei yra didelis ir pastovus priešdėlis, kuris naudojamas pakartotinai.
Dažnos klaidos
- Konstantos ir kintamojo maišymas: kai kintamojo turinys yra priešdėlyje, įvykis nustatomas iš naujo.
- Datos / ID įterpimas į sistemos raginimą: dažniausiai naudojamas tylus trikdiklis.
- Nematuojamas įvykis: jei nepažymėtas cache_read_input_tokens, atliekos nebus pastebėtos.
- Talpyklos pridėjimas, kai nėra viešo priešdėlio: mokate tik rašymo priemoką, kaina padidėja.
- Transporto priemonių sąrašo ar modelio keitimas: priešdėlis sulaužytas nuo pat pradžių; viskas perrašoma.
- Pamiršus mažiausią talpyklos dydį: labai trumpos talpyklos (mažiau nei 1–4 000 žetonų, priklausomai nuo modelio) į talpyklą nepateks tyliai.
Deeper: talpyklos projektavimas pagal darbo krūvio tipą
Faktinė talpyklos kaupimo nauda skiriasi priklausomai nuo jūsų darbo krūvio pobūdžio; todėl pirmiausia susipažinkite su savo eismu. Trys tipiniai modeliai ir teisingas montavimas:
Bendras sistemos raginimas, skirtingi klausimai. Dažniausias įmonės modelis: didelė sistemos eilutė (vaidmuo, taisyklės, galbūt informacinis dokumentas) su šimtais skirtingų vartotojų klausimų. Čia fiksuotoji dalis (sistema) iš pradžių talpinama; kiekvienas naujas klausimas moka visą kainą tik už savo nedidelę dalį. Pelnas yra labai didelis, nes didelė dalis kartojama pakartotinai už dešimtadalį kainos.
Daugiasluoksnis monologas. Pokalbiui užsitęsus, kiekvienas naujas turas papildo visą ankstesnę istoriją. Jei paskutinio raundo pabaigoje įdėjote talpyklos vėliavėlę, kiekviena užklausa pakartotinai naudoja ankstesnį pokalbio priešdėlį; hitų kaupiasi augant pokalbiui. Tai labai sumažina ilgų asistento seansų išlaidas.
Bendrinamas priešdėlis yra paskutinis pakeitimas. Kelios užklausos dalijasi dideliu fiksuotų išankstinių nurodymų rinkiniu (pavyzdžių rinkinys, instrukcijos), tačiau jų pabaigoje yra atskirtas vienas klausimas. Talpyklos žymeklį įdedate į bendrinamos dalies pabaigą; Priešingu atveju kiekviena užklausa įrašytų savo atskirą talpyklą ir nė viena nebūtų skaitoma.
Vienas įspėjimas: talpykla priklauso nuo modelio ir tam tikro minimalaus dydžio. Labai maži priešdėliai (iki kelių tūkstančių žetonų, priklausomai nuo modelio) tyliai nepateks į talpyklą, net jei juos pažymėsite – cache_creation_input_tokens lieka nulis. Be to, pakeitus modelį pokalbio viduryje, visa talpykla tampa negaliojanti; Jei kitai užduočiai reikalingas pigus modelis, pagrindinį srautą palikite viename modelyje, o šalutinį darbą įtraukite į atskirą skambutį.
Apibendrinant
Raginimas talpykloje yra priešdėlio atitiktis: fiksuotas turinys turi būti pradžioje, kintamas turinys – pabaigoje. Didelio, pakartotinai naudojamo konteksto skaitymo kaina yra dešimtadalis visos kainos, apytiksliai viršijanti net dvi užklausas. Dažniausia klaida yra sugadinti priešdėlį, įterpiant kintamus duomenis į sistemos užklausą; Patvirtinkite įvykį išmatuodami jį naudojimo lauke.
Taikymo užduotis
Pasirinkite darbo krūvį. (1) Padalinkite turinį į du stulpelius: „niekada nesikeičia“ ir „keičiasi su kiekviena užklausa“. (2) Perbraižykite eilutės struktūrą, pastoviąją dalį palikdami pradžioje, o kintamąją – pabaigoje. (3) Įvertinkite fiksuotos dalies žetono dydį ir palyginkite mėnesio išlaidas su talpykla arba be jos. (4) Atkreipkite dėmesį, iš kurio lauko (cache_read_input_tokens) patvirtinsite įvykį.
kontrolinis sąrašas
- [ ] Galiu paaiškinti, kad talpykla yra priešdėlio atitikimas ir vienintelė nekintanti taisyklė.
- [ ] Tikslumą galiu padidinti įdėdamas fiksuotą turinį pradžioje ir kintamąjį pabaigoje.
- [ ] Žinau rašymo / skaitymo ekonomiką ir dviejų užklausų lūžio tašką.
- [ ] Galiu atpažinti tylius trikdžius (data, nesutvarkytas JSON, besikeičiantis transporto priemonių sąrašas).
- [ ] Galiu patikrinti įvykį naudodamas usage.cache_read_input_tokens.