Files
OmniRoute/docs/i18n/sw/docs/compression/COMPRESSION_GUIDE.md
Diego Rodrigues de Sa e Souza 8feea123bb feat(docs): mirror every docs/ page in all 65 locales (#14106)
* feat(docs): mirror every docs/ page in all 65 locales

Extends the documentation mirrors from the 22-page core set (#13940) to
every Markdown page under docs/: 152 sources x 65 locales = 9,880 mirrors
(6,208 new), language bars rewritten for the full locale list, state
adopted so the blocking drift gate now covers all 152 pages.

run-translation.mjs: an oversized block made only of table rows or list
items (PROVIDER_REFERENCE.md 244-row table, FREE_TIERS.md 71-item list) is
cut at item boundaries and rejoined without a blank line — the single
16-40 KB request outlived the backend socket for verbose scripts. 48
older mirrors whose tables had lost rows were retranslated with --force.

* docs(i18n): refresh mirrors for the sources the base changed since the branch cut

Section-level retranslation of the 29 docs (and README.md) whose source
or mirrors moved on release/v3.8.51 during the run, then state adoption;
the drift gate is green again on the merged tree.
2026-09-18 13:16:46 -03:00

34 KiB
Raw Blame History

🗜️ Prompt Compression Guide — OmniRoute (Kiswahili)

🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW


Okoa 15-95% ya muktadha unaostahiki kiotomatiki. Kwa muhtasari wa haraka, angalia sehemu ya Ukandamizaji katika README.

Muhtasari

OmniRoute hutekeleza mchakato wa kimoduli wa ukandamizaji wa vidokezo unaoendeshwa mapema kabla ya maombi kufikia watoa huduma wa juu. Hii inamaanisha kuwa uokoaji wako wa tokeni hutokea bila kuonekana — hakuna mabadiliko yanayohitajika katika mtiririko wako wa kazi.

Ombi la Mteja
  → Kiteuzi cha Mkakati wa Ukandamizaji
    → Kuna ubatilishaji wa mchanganyiko? → Tumia mpangilio wa mchanganyiko
    → Kuna kiwango cha kuanzisha kiotomatiki? → Tumia hali ya kiotomatiki
    → Kuna hali chaguomsingi? → Tumia mpangilio wa jumla
    → Imezimwa? → Ruka ukandamizaji
  → Hali Iliyochaguliwa ya Ukandamizaji
    → Imezimwa: Hakuna ukandamizaji
    → Nyepesi: Usafishaji salama wa nafasi tupu/uumbizaji (~15%)
    → Kawaida: Uondoaji wa maneno ya ziada kwa mtindo wa Caveman (~30%)
    → Mkali: Uchakavu wa historia + ufupishaji (~50%)
    → Ultra: Upogoaji wa kiheuristiki + upunguzaji wa vizuizi vya msimbo (~75%)
    → RTK: Uchujaji unaozingatia amri wa matokeo ya terminali/zana (kiwango cha 60-90% upande wa juu)
    → Zilizopangwa: Mchakato uliopangwa wa injini nyingi, kwa kawaida RTK kisha Caveman (kiwango cha 78-95% cha maudhui yanayostahiki)
  → Ombi Lililokandamizwa → Mtoa Huduma

Hali za Ukandamizaji

Imezimwa

Hakuna ukandamizaji unaotumika. Ujumbe wote hupitishwa bila kubadilishwa.

Hali Nyepesi (uokoaji wa ~15%, ucheleweshaji wa <1ms)

Hali salama zaidi — hakuna mabadiliko ya kisemantiki, ni usafishaji wa uumbizaji pekee:

Mbinu Maelezo
collapseWhitespace Unganisha mistari tupu inayofuatana na nafasi za mwisho
dedupSystemPrompt Ondoa ujumbe wa mfumo uliojirudia
compressToolResults Kandamiza matokeo marefu ya zana/vitendakazi
removeRedundantContent Ondoa maagizo yaliyorudiwa
replaceImageUrls Fupisha URI za data za picha za base64

Inafaa zaidi kwa: Matumizi ya kila wakati, mitiririko ya kazi inayozingatia sana usalama.

Hali ya Kawaida (uokoaji wa ~30%)

Imehamasishwa na Caveman — huondoa maneno ya ziada na tungo ndefu huku ikihifadhi maana:

  • Huondoa maneno ya ziada ("tafadhali", "nadhani", "kimsingi", "kwa kweli")
  • Hufupisha tungo ndefu ("ili kuweza" → "ili", "kutokana na sababu ya" → "kwa sababu")
  • Huondoa kauli za tahadhari za heshima ("Je, ungejali...", "Ikiwa ungeweza tafadhali...")
  • Zaidi ya kanuni 30 za regex zilizoboreshwa kwa vidokezo vya uandishi wa msimbo

Inafaa zaidi kwa: Mitiririko ya kila siku ya uandishi wa msimbo, timu zinazozingatia gharama.

Hali Kali (uokoaji wa ~50%)

Usimamizi mahiri wa historia kwa vipindi virefu:

  • Uchakavu wa Ujumbe — ujumbe wa zamani hukandamizwa hatua kwa hatua
  • Ufupishaji wa Matokeo ya Zana — matokeo marefu ya zana hubadilishwa na muhtasari
  • Vilinda Uadilifu wa Muundo — huhakikisha jozi za tool_use + tool_result zinaendelea kulingana
  • Ufahamu wa Dirisha la Muktadha — huheshimu vikomo vya tokeni vya kila modeli

Inafaa zaidi kwa: Vipindi virefu vya utafutaji na urekebishaji wa hitilafu, hazina kubwa za msimbo.

Hali ya Ultra (uokoaji wa ~75%)

Ukandamizaji wa kiwango cha juu kwa hali ambazo tokeni ni muhimu sana:

  • Upogoaji wa Kiheuristiki — huondoa ujumbe ulio chini ya kiwango cha umuhimu
  • Upunguzaji wa Vizuizi vya Msimbo — hukandamiza mifano ya msimbo inayojirudia
  • Ufupishaji kwa Utafutaji wa Kibinari — hupata sehemu bora ya kukata kwa dirisha la muktadha
  • Vipengele vyote vya hali Kali vimejumuishwa

Inafaa zaidi kwa: Unapofikia vikomo vya muktadha mara kwa mara.

Hali ya RTK (kiwango cha 60-90% upande wa juu)

Hali ya RTK imeboreshwa kwa matokeo marefu ya zana yanayoonekana katika vipindi vya mawakala wa uandishi wa msimbo:

  • Hutambua aina za amri/matokeo kama vile git status, git diff, git log, viendeshaji vya majaribio, miundo ya TypeScript/Vite/Webpack, ESLint/Biome/Prettier, ukaguzi/usakinishaji wa npm, kumbukumbu za Docker, matokeo ya miundombinu, na matokeo ya jumla ya shell
  • Hutumia vifurushi vya vichujio vya JSON kutoka open-sse/services/compression/engines/rtk/filters/
  • Huingiza vichujio vya schema v1 vya RTK TOML kutoka faili za mradi au za jumla za filters.toml, pamoja na uthibitishaji wa majaribio ya ndani na uzuiaji unaotegemea uaminifu kwa faili za mradi
  • Huja na vichujio 49 vilivyojengewa ndani pamoja na sampuli za uthibitishaji wa ndani
  • Huondoa mifuatano ya udhibiti ya ANSI, pau za maendeleo, mistari inayojirudia, na maudhui yasiyohitaji hatua
  • Huhifadhi hali za kushindwa, hitilafu, maonyo, faili zilizobadilishwa, mihtasari, na sehemu ya mwisho ya matokeo marefu
  • Hutoa usaidizi kwa vichujio vya mradi vinavyodhibitiwa kwa uaminifu, vichujio vya jumla, na urejeshaji wa hiari wa matokeo ghafi yaliyofichwa taarifa nyeti

Inafaa zaidi kwa: Vipindi vya mawakala vyenye nakala za shell, miundo, majaribio, git, grep, na matokeo ya faili.

Hali Iliyopangwa (kiwango cha 78-95% cha maudhui yanayostahiki)

Hali Iliyopangwa huendesha injini nyingi za ukandamizaji kwa mpangilio maalum usiobadilika. Mchakato chaguomsingi ni:

RTK -> Caveman

Mpangilio huo kwanza huweka matokeo ya terminali/zana katika hali iliyoshikamana, kisha hutumia ufupishaji wa kisemantiki wa Caveman kwa kidokezo kilichosalia cha lugha asilia. Michakato iliyopangwa inaweza kusanidiwa kwa jumla au kupitia michanganyiko ya ukandamizaji iliyopewa michanganyiko ya uelekezaji.

Inafaa zaidi kwa: Muktadha mchanganyiko wenye kumbukumbu kubwa za zana pamoja na maagizo ya binadamu au mihtasari ya msaidizi.


Hesabu ya Uokoaji wa Upstream

OmniRoute inaandika uokoaji wa mbano kutoka vyanzo viwili: vipimo vya utendaji vya miradi ya upstream na muundo wa injini za OmniRoute yenyewe.

Chanzo Nambari ya README ya upstream iliyotumika hapa
Caveman tokeni chache za matokeo kwa ~75%, wastani wa uokoaji wa matokeo wa 65% katika vipimo vya utendaji, kiwango cha 22-87%, na zana ya mbano wa ingizo ya ~46%
RTK uokoaji wa 60-90% kwenye matokeo ya amri; kipindi cha mfano cha tokeni ~118,000 -> ~23,900, au uokoaji wa 79.7% (~80%)

Kwa mzigo wa zana/muktadha unaoingiliana, mchanganyiko chaguomsingi wa OmniRoute hupanga injini kwa mfuatano:

RTK -> Caveman

Uokoaji wa pamoja huzidishwa, haujumlishwi:

pamoja   = 1 - (1 - uokoaji wa RTK) * (1 - uokoaji wa ingizo wa Caveman)
wastani  = 1 - (1 - 0.80) * (1 - 0.46) = 89.2%
kiwango  = 1 - (1 - 0.60..0.90) * (1 - 0.46) = 78.4-94.6%

Nambari hiyo ya 78-95% hutumika wakati RTK na Caveman zote zinaweza kupunguza mzigo uleule wa ingizo/muktadha. Hali ya matokeo ya jibu la Caveman ni tofauti: inapowezeshwa, tumia uokoaji wa matokeo wa Caveman yenyewe (65% kwa wastani, ~75% kama nambari kuu, kiwango cha 22-87%). Jumla ya uokoaji wa malipo hutegemea uwiano wako wa maombi/matokeo.

Maana halisi ya "yanayostahiki"

Kiwango kikuu cha 15-95% ni halisi, lakini kinatumika tu kwa maudhui yanayojirudia au yenye maneno mengi — mistari ya hitilafu inayojirudia, kumbukumbu ya ujenzi inayorudia onyo lilelile kupita kiasi, matokeo makubwa kupita kiasi ya grep/usomaji wa faili. Hiyo haimaanishi kila ombi huokoa kiasi hicho.

Imethibitishwa kwa majaribio (tests/unit/compression/stacked-compression-tool-result-savings.test.ts): utekelezaji wa stacked (RTK + Caveman) dhidi ya bloku ya tool_result yenye muundo wa Anthropic iliyokuwa na mistari 300 inayofanana ya hitilafu ulizalisha uokoaji wa tokeni wa 95.93% / uokoaji wa herufi wa 96.26% — ndani kabisa ya kiwango kilichotangazwa. Lakini pipeline hiyo hiyo ilipotumika kwa matokeo ya kawaida ya zana yasiyojirudia (orodha safi ya matokeo ya grep, usomaji mfupi wa faili, maandishi ya kawaida ya mazungumzo) kwa usahihi huzalisha uokoaji unaokaribia sufuri, kwa sababu hakuna kitu kinachojirudia cha kuondoa na validateCompression() (validation.ts) hukataa kutuma maandishi yaliyorekebishwa ambayo yangeondoa au kubadilisha bloku za msimbo, URL, vichwa, matoleo, au vitambulishi vya constants vya HERUFI-KUBWA-TU.

Hii ni tabia salama inayotarajiwa, si hitilafu: kipindi cha uandishi wa msimbo ambacho kwa kiasi kikubwa husoma/hutafuta faili safi kwa grep kitaona uokoaji wa jumla wa wastani hata kama mbano umewezeshwa kikamilifu, huku kipindi kinachokumbana na mzunguko unaoshindwa au linter yenye ujumbe mwingi kitaona kiwango kamili cha 78-95% kwenye trafiki hiyo. Usitumie asilimia ndogo ya uokoaji wa jumla wa kipindi kimoja kama ushahidi kwamba mbano umesanidiwa vibaya — kwanza hakikisha ikiwa matokeo ya msingi ya zana yalikuwa yanajirudia kweli.


Taswira ya Uokoaji wa Tokeni

Bila mbano:          tokeni 47K zimetumwa kwa LLM
Kwa Lite:            tokeni 40K zimetumwa          (15% zimeokolewa — salama, imewashwa kila wakati)
Kwa Standard:        tokeni 33K zimetumwa          (30% zimeokolewa — kanuni za caveman-speak)
Kwa Aggressive:      tokeni 24K zimetumwa          (50% zimeokolewa — kuzeeka + ufupishaji)
Kwa Ultra:           tokeni 12K zimetumwa          (75% zimeokolewa — upogoaji wa kiheuristiki)
Kwa RTK:             tokeni 19K-5K zimetumwa       (60-90% zimeokolewa kwenye matokeo ya amri/zana)
Kwa Stacked:         tokeni 10K-2.5K zimetumwa     (kiwango cha RTK+Caveman kinachostahiki cha 78-95%)

Usanidi

Dashibodi

Nenda kwenye Dashibodi → Muktadha na Akiba:

  • Caveman — uteuzi wa hali, vifurushi vya lugha, onyesho la kukagua na mipangilio chaguo-msingi ya jumla
  • RTK — onyesho la kukagua kichujio cha amri, mipangilio ya usalama ya RTK na katalogi ya vichujio
  • Mchanganyiko wa Mfinyazo — mifuatano ya injini iliyopewa majina na kuhusishwa na mchanganyiko wa uelekezaji
  • Kizingiti cha Kuanzisha Kiotomatiki — anzisha mfinyazo kiotomatiki wakati idadi ya tokeni inapozidi kizingiti

Ubatilishaji kwa Kila Mchanganyiko

Katika Dashibodi → Muktadha na Akiba → Michanganyiko ya Mfinyazo, husisha mchanganyiko wa mfinyazo na mchanganyiko wa uelekezaji:

Mchanganyiko: "free-tier-fallback"
  Mchanganyiko wa Mfinyazo: "coding-agent-stack"
  Mfuatano: RTK -> Caveman
  Malengo:
    1. if/kimi-k2.7-code
    2. if/qwen3.8-max-preview

Hii hukuruhusu kutumia mfinyazo uliopangwa kwa mfululizo kwa watoa huduma wa bila malipo/uwekaji msimbo huku ukiendelea kutumia hali nyepesi kwa usajili unaolipiwa.

Husisho hili la "Ubatilishaji kwa Kila Mchanganyiko" ni kidhibiti tofauti na ubatilishaji wa hali ya mfinyazo ya mchanganyiko wa uelekezaji (Default/Off/Lite/Standard/Aggressive/Ultra) — ubatilishaji huo hauchagui mfuatano wa mchanganyiko wa mfinyazo uliopewa jina; huweka tu uga wa compressionMode unaotumiwa na resolveCompressionPlan. Unaweza kuwekwa ama kwenye kadi ya mchanganyiko (Dashibodi → Michanganyiko) au, tangu #6760, kwa kila mchanganyiko wa uelekezaji katika orodha ya "Husisha na uelekezaji" kwenye Dashibodi → Muktadha na Akiba → Michanganyiko ya Mfinyazo, karibu kabisa na kisanduku cha kuteua cha kuhusisha mfuatano kilichoelezwa hapo juu. Sehemu zote mbili huhifadhi kupitia endpoint ileile ya PUT /api/combos/{id}.

Ubatilishaji kwa kila ombi

Tuma header ya ombi ya x-omniroute-compression ili kubatilisha mpango wa mfinyazo kwa ombi moja. Ina kipaumbele cha juu zaidi — hushinda ubatilishaji wa mchanganyiko wa uelekezaji, wasifu unaotumika, uanzishaji wa kiotomatiki na thamani ya Default ya paneli. Thamani zisizotambulika hupuuzwa (ombi halikataliwi kamwe), na swichi kuu ya jumla bado hudhibiti kila kitu: mfinyazo unapozimwa kwa kiwango cha jumla, header haiwezi kuuwasha. Thamani:

Thamani Athari
off Hakuna mfinyazo kwa ombi hili.
default Wasifu wa Default unaotokana na paneli (hupuuza wasifu unaotumika).
engine:<id> Injini moja ikiwa imewashwa, k.m. engine:rtk.
<combo> Mchanganyiko uliopewa jina, unaolinganishwa kwanza kwa jina (bila kujali herufi kubwa au ndogo), kisha kwa id.

Mpango uliotumika hurudishwa katika header ya jibu ya X-OmniRoute-Compression: <mode>; source=<source>, ambapo <source> ni mojawapo ya request-header, routing-override, active-profile, auto-trigger, default, au off.

API

# Pata mipangilio ya mfinyazo
curl http://localhost:20128/api/settings/compression

# Sasisha mipangilio ya mfinyazo
curl -X PUT http://localhost:20128/api/settings/compression \
  -H "Content-Type: application/json" \
  -d '{"defaultMode":"stacked","autoTriggerMode":"stacked","autoTriggerTokens":32000}'

# Kagua payload mahususi ya RTK/iliyopangwa kwa mfululizo
curl -X POST http://localhost:20128/api/compression/preview \
  -H "Content-Type: application/json" \
  -d '{"mode":"rtk","messages":[{"role":"tool","content":"npm test output here"}]}'

# Orodhesha vifurushi vya vichujio vya RTK
curl http://localhost:20128/api/context/rtk/filters

# Jaribu RTK moja kwa moja kwa metadata ya hiari ya amri
curl -X POST http://localhost:20128/api/context/rtk/test \
  -H "Content-Type: application/json" \
  -d '{"command":"npm test","text":"FAIL tests/example.test.ts\nError: boom"}'

Kinacholindwa

Injini ya mgandamizo daima huhifadhi:

  • Vizuizi vya msimbo (vilivyowekewa uzio na vya ndani ya mstari)
  • URL na njia za faili
  • Miundo ya JSON na data iliyopangwa
  • Vitambulishi na tokeni za kiufundi zinazolindwa
  • Semi za kihisabati
  • Ufafanuzi wa miito ya zana/vitendakazi
  • Maagizo ya mfumo (katika modi nyepesi)

Urejeshaji wa matokeo ghafi wa RTK huficha funguo za kawaida za API, tokeni za bearer, tokeni za Slack, funguo za ufikiaji za AWS, nywila, tokeni na siri kabla ya chochote kuhifadhiwa.


Takwimu za Mgandamizo

Kila ombi lililogandamizwa hujumuisha takwimu katika kumbukumbu za seva:

{
  "originalTokens": 47200,
  "compressedTokens": 40120,
  "savingsPercent": 15.0,
  "techniquesUsed": ["collapseWhitespace", "dedupSystemPrompt"],
  "mode": "lite",
  "engine": "caveman",
  "compressionComboId": "coding-agent-stack",
  "durationMs": 0.8,
  "rtkRawOutputPointers": []
}

Ramani ya Maendeleo ya Awamu

Awamu Modi Hali
Awamu ya 1 Imezimwa, Nyepesi Imetolewa
Awamu ya 2 Kawaida, Kali, Kiwango cha Juu Imetolewa
Awamu ya 3 RTK, Zilizopangwa kwa Tabaka, Michanganyiko ya Mgandamizo Imetolewa
Awamu ya 4 Mitindo ya Matokeo, Kiwango cha Juu cha daraja la SLM, mfumo wa tathmini Imetolewa
Awamu ya 4C Bajeti ya muktadha inayojirekebisha ("kidhibiti") — injini ya ukokotoaji + API (contextBudget kwenye PUT /api/settings/compression) + vidhibiti vya modi/sera vya dashibodi Imetolewa

Shukrani

Kanuni za mgandamizo za modi ya kawaida zimechochewa na Caveman ya JuliusBrussee ( 51K+) — mradi ulioenea sana wa "kwa nini utumie tokeni nyingi wakati chache zinaweza kufanya kazi". Caveman inaripoti tokeni za matokeo zilizopungua kwa ~75%, wastani wa akiba ya matokeo wa 65% kwenye vipimo vya utendaji, kiwango cha matokeo cha 22-87%, na zana ya mgandamizo wa ingizo ya ~46%.

Modi ya RTK imechochewa na RTK - Rust Token Killer ya RTK AI — mradi wa utendaji wa juu wa kugandamiza matokeo ya amri kwa terminali, uundaji, majaribio, git, na uchujaji wa matokeo ya zana. RTK inaripoti akiba ya 60-90%, huku mfano wa kipindi katika README yake ukionyesha akiba ya ~80%.


Mifumo ya Kina ya Mgandamizo

Zaidi ya modi 7 za kawaida, OmniRoute inajumuisha mifumo kadhaa ya kina ya mgandamizo inayofanya kazi kiotomatiki kulingana na muktadha.

Mgandamizo Unaozingatia Akiba

Baadhi ya watoa huduma (kama Anthropic yenye uhifadhi wa muda wa maagizo) wanaunga mkono uhifadhi wa muda wa maagizo, unaowawezesha kuhifadhi kwa muda sehemu za agizo ili kupunguza gharama na ucheleweshaji. Wakati uhifadhi wa muda umewezeshwa, mgandamizo mkali unaweza kwa kweli kudhoofisha utendaji kwa sababu hubadilisha tokeni zilizohifadhiwa kwa muda, na hivyo kubatilisha akiba.

Moduli ya cachingAware.ts hutatua hili kwa kutambua muktadha wa uhifadhi wa muda na kurekebisha mkakati wa mgandamizo ipasavyo.

Jinsi inavyofanya kazi

  1. Tambua muktadha wa uhifadhi wa muda — Huchanganua mwili wa ombi kutafuta viashirio vya cache_control
  2. Tambua watoa huduma wa uhifadhi wa muda — Hukagua ikiwa mtoa huduma lengwa anaunga mkono uhifadhi wa muda
  3. Rekebisha mkakati — Hushusha aggressive/ultra hadi standard kwa watoa huduma wa uhifadhi wa muda
  4. Ruka agizo la mfumo — Kwa kawaida maagizo ya mfumo huhifadhiwa kwa muda, kwa hiyo usiyagandamize
  5. Tumia mabadiliko yenye matokeo thabiti — Tumia tu mabadiliko yanayotoa matokeo yanayolingana

Mfano wa msimbo

import {
  detectCachingContext,
  getCacheAwareStrategy,
} from "@omniroute/open-sse/services/compression/cachingAware";

const body = {
  model: "anthropic/claude-sonnet-4.5",
  messages: [{ role: "user", content: "Hello" }],
  cache_control: { type: "ephemeral" }, // ← Kiashirio cha akiba
};

const ctx = detectCachingContext(body, { provider: "anthropic" });
// → { hasCacheControl: true, provider: "anthropic", isCachingProvider: true }

const strategy = getCacheAwareStrategy("aggressive", ctx);
// → { strategy: "standard", skipSystemPrompt: true, deterministicOnly: true }

Wakati wa kutumia

Mgandamizo unaozingatia akiba umewashwa kila wakati — hakuna usanidi unaohitajika. Huanza kufanya kazi tu wakati:

  • Ombi lina viashirio vya cache_control
  • Mtoa huduma lengwa anaunga mkono uhifadhi wa muda wa maagizo (Anthropic, OpenAI, n.k.)

Uchakavu Endelevu

Mazungumzo marefu hukusanya zamu nyingi za ujumbe, lakini zamu za zamani hupungua umuhimu. Moduli ya progressiveAging.ts hupunguza maelezo ya ujumbe kulingana na umbali wa zamu:

  • Zamu za hivi karibuni (0-3): Huhifadhiwa kama zilivyo (maelezo kamili)
  • Zamu za kati (4-8): Mgandamizo nyepesi (kusafisha nafasi nyeupe na uumbizaji)
  • Zamu za zamani (9+): Mgandamizo wa Caveman (kuondoa maneno ya kujazia, kufanya muhtasari)
  • Zamu za zamani sana (20+): Hufupishwa sana au huondolewa

Mfano wa msimbo

import { applyAging } from "@omniroute/open-sse/services/compression/progressiveAging";

const messages = [
  { role: "system", content: "You are a helpful assistant" },
  { role: "user", content: "What is 2+2?" },
  { role: "assistant", content: "4" },
  // ... zamu 50 zaidi ...
];

const { messages: aged, saved } = applyAging(messages, {
  verbatim: 3, // Zamu 3 za kwanza: kama zilivyo
  light: 8, // Zamu za 4-8: mgandamizo nyepesi
  moderate: 20, // Zamu za 9-20: mgandamizo wa caveman
  // Zamu za 21+: ufupishaji mkubwa
});

// saved = idadi ya tokeni zilizookolewa

Wakati wa kutumia

Uchakavu unaoendelea umewashwa kila wakati kwa modi za aggressive na ultra. Una ufanisi hasa kwa:

  • Vipindi virefu vya uandishi wa msimbo
  • Mazungumzo yanayodumu siku nyingi
  • Mitiririko ya kazi ya mawakala yenye miito mingi ya zana

Modi ya Matokeo ya Mtu wa Pangoni

Moduli ya outputMode.ts huingiza maagizo ya kidokezo cha mfumo ili kufanya modeli yenyewe itoe matokeo yaliyobanwa na mafupi (mtindo wa "mtu wa pangoni").

Jinsi inavyofanya kazi

Badala ya kubana ingizo, modi hii huongeza kidokezo cha mfumo kama:

"Jibu kwa maneno machache iwezekanavyo. Ruka maneno ya adabu. Tumia sentensi fupi."

Hii hufanya kazi vizuri hasa kwa:

  • Uzalishaji wa msimbo (matokeo mafupi zaidi = tokeni chache zaidi)
  • Maswali na majibu ya haraka (hakuna haja ya maelezo marefu)
  • Uchakataji wa makundi (ongeza kiwango cha uchakataji)

Wakati wa kuitumia

Modi ya matokeo ya mtu wa pangoni ni ya kuwashwa kwa hiari — iweke kupitia usanidi wa combo:

{
  "strategy": "auto",
  "config": {
    "auto": {
      "outputMode": "caveman"
    }
  }
}

Mitindo ya Matokeo (katalogi)

Modi ya matokeo ya mtu wa pangoni hapo juu ndiyo njia ya zamani ya mtindo mmoja. Awamu ya 4 iliipanua kuwa katalogi ya mitindo ya matokeo inayoweza kuunganishwa: OUTPUT_STYLE_CATALOG katika open-sse/services/compression/outputStyles/catalog.ts. Kila mtindo ni agizo la kidokezo cha mfumo linalofanya modeli yenyewe itoe matokeo yenye gharama ndogo zaidi; mitindo inaweza kuwashwa pamoja na huingizwa kwa mpangilio wa katalogi.

Mtindo id Inachofanya Lugha za maagizo
Nathari fupi terse-prose Ondoa maneno ya kujaza/vibainishi/maneno ya kusitasita; hifadhi usahihi wa maudhui ya kiufundi. Maandishi sawa na ya modi ya zamani ya matokeo ya mtu wa pangoni (yanarejelewa, hayajaandikwa upya). en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi
Msimbo mchache less-code Ngazi ya YAGNI: badiliko dogo zaidi linalofanya kazi, bila miundo dhahania ambayo haijaombwa. en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi
Ponytail (msanidi mkuu mvivu) ponytail "Msimbo bora ni msimbo ambao haujawahi kuandikwa": tumia tena > andika upya, chanzo kikuu > dalili, tofauti fupi zaidi inayofanya kazi. en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi
Nina ADHD (kitendo kwanza) i-have-adhd Kitendo kwanza (amri/njia/kipande kabla ya nathari), hatua zenye nambari na mipaka, hatua MOJA mahususi inayofuata, bila utangulizi/muhtasari/maneno ya kuhitimisha. Imetoholewa kutoka ayghri/i-have-adhd (MIT). en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi
CJK fupi (文言) terse-cjk Mtindo mfupi kupita kiasi wa Kichina cha Kale. zh (imewekewa kikomo cha lokali: hutolewa tu wakati lugha iliyobainishwa ni zh)

Kila mtindo huja na viwango vitatu vya mkazo — lite, full, ultra — na kila kiwango huishia na kifungu cha pamoja cha mipaka, ambacho huhifadhi vizuizi vya msimbo, njia za faili, amri, tungo za hitilafu, URL na vitambulishi bila kubadilishwa.

Jinsi uingizaji unavyofanya kazi

applyOutputStyles() (open-sse/services/compression/outputStyles/apply.ts) hulinganisha uteuzi na katalogi (id zisizojulikana na mitindo isiyolingana na lokali huondolewa, bila kusababisha hitilafu), huunganisha maagizo yaliyochaguliwa kwa mpangilio wa katalogi, huongeza kifungu cha mipaka mara moja, na huweka matokeo mwanzoni mwa kidokezo cha mfumo baada ya kialama kimoja cha kutorudiwa ([OmniRoute Output Styles]) — kuyatumia tena hakufanyi chochote. Wakati lugha iliyotambuliwa ya ombi ina tafsiri, agizo lililotafsiriwa huingizwa badala ya Kiingereza.

Jinsi ya kuwezesha

Kwenye dashibodi: Muktadha → Mipangilio → Ubanaji — safu mlalo moja kwa kila mtindo iliyo na kitufe cha kuwasha/kuzima na kiteuzi cha kiwango. Kwa njia ya programu, usanidi wa ubanaji huhifadhi uteuzi kama:

{
  "outputStyles": [
    { "id": "i-have-adhd", "level": "full" },
    { "id": "less-code", "level": "lite" }
  ]
}

Uoanifu wa nyuma: mpangilio wa zamani wa combo outputMode: "caveman" bado hufanya kazi na huunganishwa na terse-prose, ukiwa sawa baiti kwa baiti na uingizaji wa zamani katika kila lugha ya zamani.

Uteuzi wa lugha: languageConfig.enabled ikiwa imewashwa, autoDetect huchagua lugha ya ujumbe wa hivi karibuni wa mtumiaji (kitambuzi sawa na cha injini za ingizo); kuzima autoDetect huweka defaultLanguage kuwa isiyobadilika. Ikiwa imezimwa → Kiingereza.

Matriki ya mtindo × lugha imefungwa na tests/unit/compression/output-styles-i18n-matrix.test.ts: mtindo mpya hauwezi kutolewa bila angalau tafsiri ya pt-BR (au hali ya kipekee iliyofuatiliwa kwa uwazi), na mtindo uliopo hauwezi kupoteza lokali kimyakimya. Ili kuongeza mtindo, angalia EXTENDING_COMPRESSION.md.

Ubanaji wa Matokeo ya Zana

Moduli ya toolResultCompressor.ts hutoa mikakati 5 maalumu ya ubanaji kwa matokeo ya zana (miito ya vitendakazi, matokeo ya mawakala, matokeo ya utafutaji, n.k.):

  1. Ubanaji wa matokeo ya utafutaji — Huondoa matokeo yaliyojirudia, huhifadhi matokeo bora N
  2. Ubanaji wa usomaji wa faili — Hupunguza faili kubwa, huhifadhi vichwa/uagizaji
  3. Ubanaji wa utekelezaji wa msimbo — Huhifadhi stdout/stderr muhimu pekee
  4. Ubanaji wa hoja ya hifadhidata — Huweka kikomo cha safu mlalo, huondoa metadata yenye maelezo mengi
  5. Ubanaji wa jibu la API — Huondoa sehemu zenye null, hufupisha safu

Wakati wa kuitumia

Ubanaji wa matokeo ya zana umewashwa kila wakati miito ya zana inapokuwepo. Hakuna usanidi unaohitajika.

Bomba Lililorundikwa

Modi iliyorundikwa huendesha injini nyingi kwa mfuatano — kwa kawaida RTK kwanza (uokoaji wa 60-90% kwenye matokeo ya zana), kisha Caveman (uokoaji wa ziada wa 30% kwenye maandishi yaliyobaki). Hii hufanikisha uokoaji wa jumla wa 78-95%.

Jinsi inavyofanya kazi

Ingizo (tokeni 1000)
  → RTK (kichujio kinachotambua amri) → tokeni 200
    → Caveman (uondoaji wa maneno ya kujaza) → tokeni 140
  → Matokeo (tokeni 140, uokoaji wa 86%)

Wakati wa kuitumia

Tumia modi iliyorundikwa kwa:

  • Mitiririko ya kazi inayotumia zana nyingi (uandishi wa msimbo wa mawakala, utafiti)
  • Uchakataji wa makundi unaozingatia gharama
  • Unapohitaji uokoaji wa juu zaidi wa tokeni

Sanidi kupitia combo:

{
  "strategy": "auto",
  "config": {
    "auto": {
      "modePack": "stacked"
    }
  }
}

Ubatilishaji wa Mchanganyiko wa Mfinyazo

Unaweza kubatilisha hali ya jumla ya mfinyazo kwa kila mchanganyiko ili kurekebisha kwa usahihi tabia kwa hali tofauti za matumizi:

{
  "id": "coding-combo",
  "strategy": "priority",
  "config": {
    "auto": {
      "weights": { "taskFit": 0.5 },
      "modePack": "quality-first"
    }
  },
  "compressionOverride": {
    "mode": "aggressive",
    "stackedPipelines": ["rtk", "caveman"],
    "preserveToolDefinitions": true
  }
}

Hii ni muhimu kwa:

  • Michanganyiko ya uandishi wa msimbo: Tumia hali ya aggressive kwa vipindi virefu
  • Michanganyiko ya maswali na majibu ya haraka: Tumia hali ya lite kwa majibu ya haraka
  • Michanganyiko inayotumia zana kwa wingi: Tumia hali ya stacked kwa uokoaji wa juu zaidi
  • Michanganyiko ya uzalishaji: Tumia hali ya cache-aware kwa watoa huduma wanaotumia akiba

Angalia Pia