* 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.
32 KiB
Compression Engines (Latviešu)
🌐 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 · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
OmniRoute saspiešanas pamatā ir dziņu līgumi. Režīms var tieši darbināt vienu dzini
(caveman vai rtk) vai deterministisku saliktu konveijeru, kas secīgi izpilda vairākus dziņus.
Režīmi
| Režīms | Dziņa ceļš | Paredzētā ievade |
|---|---|---|
off |
nav | Precīza uzvednes saglabāšana |
lite |
Caveman vieglie palīgrīki | Zema riska, vienmēr aktīva tīrīšana |
standard |
Caveman | Dabiskās valodas uzvedņu saīsināšana |
aggressive |
Caveman + vēstures/rīku apkopotāji | Ilgas tērzēšanas sesijas |
ultra |
Caveman + apgriešanas palīgrīki | Atkopšana pēc konteksta ierobežojuma sasniegšanas |
rtk |
RTK | Termināļa, čaulas, būvēšanas, testu un git izvade |
omniglyph |
OmniGlyph | Konteksts kā attēls pakalpojumu sniedzēja protokolā |
stacked |
Konveijers, pēc noklusējuma rtk -> caveman |
Jaukti rīku žurnāli un proza, maksimāls ietaupījums |
OmniGlyph saspiešanas profili
omniglyph dzinis (pakotne omniglyph, 1.4.0+) pieņem nosauktu semantisko profilu, kas tiek iestatīts
globāli, izmantojot omniglyph.profile saspiešanas iestatījumos, vai katram solim atsevišķi, izmantojot
saliktā konveijera soļa konfigurāciju:
| Profils | Robeža |
|---|---|
aggressive |
Noklusējums. Publicētajos mērījumos izmantotā politika — sistēma, rīku dokumentācija un blīva vēsture tiek pārveidota attēlos |
balanced |
Saglabā aktīvo stāvokli sākotnējā formā, aizsargā pēdējos 8 dialoga gājienus un sakļauj senāku pabeigto vēsturi |
coding-safe |
Saglabā pilnvarojumu, rīku shēmas un aktīvo rīku izvadi sākotnējā formā, aizsargā pēdējos 12 dialoga gājienus |
passthrough |
Maršrutē bez pārveidošanas; dzinis tiek izlaists |
Profils ir augšējā, nevis apakšējā robeža: pakotnes mergeCompressionProfileOptions
neļauj izsaucēja pārrakstījumam no jauna atvērt zudumradošu kanālu, kuru profils ir aizvēris, tāpēc
vienam solim norādīts preserveSystemPrompt: false nevar atkārtoti iespējot sistēmas saspiešanu profilā coding-safe.
Šajā kodu bāzē veiktie mērījumi rāda: coding-safe un balanced palielina minCompressChars līdz tā
maksimālajai vērtībai un saglabā sistēmu, rīku shēmas un rīku rezultātus sākotnējā formā, tāpēc sesija, kurā
vēl nav uzkrāta vēsture, apstājas pie below_min_chars, un dzinis neko nepārveido. Tāpēc noklusējuma profils
ir aggressive, nevis visdrošākais profils.
Pakotne nosaka sava modeļa tvērumu un profilu no savas vides konfigurācijas. OmniRoute nekad nedeleģē šo lēmumu: adapteris fiksē modeļa ierobežojumu atbilstoši pakotnes visstingrākajam tvērumam, tāpēc resursdatora vides iestatījumi var tikai sašaurināt atļauto sarakstu, bet nekad to nepaplašināt ārpus OmniRoute mērījumos apstiprinātā tvēruma.
Dzinēju reģistrs
Reģistrs atrodas failā open-sse/services/compression/engines/registry.ts. Dzinēji nodrošina kopīgu
saskarni:
id: stabils dzinēja identifikators, piemēram,cavemanvairtkapply(text, config): mantotais izpildes ceļš, ko izmanto secīgajos konveijeroscompress(input, config): primārais izpildes ceļš, kas atgriež tekstu un statistikugetConfigSchema(): atgriež derīgas konfigurācijas JSON Schema līdzīgo struktūruvalidateConfig(config): atgriež{ valid, errors[] }
Reģistrācijai izmanto registerCompressionEngine(engine) (vai registerEngine sarežģītākiem gadījumiem),
kas pirms pieņemšanas izsauc assertValidEngine() un validateConfig(defaultConfig).
Izmantojiet unregisterCompressionEngine(id), lai izpildlaikā noņemtu dzinēju.
strategySelector.ts reģistrē iebūvētos dzinējus pirms saspiešanas izpildes. Tas ļauj priekšskatījumam,
izpildlaika saspiešanai, secīgajam režīmam, testiem un turpmākiem dzinējiem izmantot vienu un to pašu izpildes ceļu.
MCP aprakstu saspiešana (saistīta tēma)
Atsevišķs reģistrs saspiež MCP rīku aprakstu metadatus reģistra līmenī — skatiet
open-sse/mcp-server/descriptionCompressor.ts un MCP-SERVER.md. Tas atkārtoti izmanto
Caveman kārtulas, bet darbojas ar rīku metadatiem, nevis pieprasījumu lietderīgajiem datiem.
Papildu iebūvētie dzinēji
Papildus Caveman, RTK un LLMLingua-2 reģistrā ir iekļauti vairāki specializēti bezzudumu / strukturālie dzinēji (tos izmanto secīgie konveijeri, izmēģinājumu vide un testi):
| Dzinējs | Id | Ko tas dara |
|---|---|---|
| CCR | ccr |
Content-Compress-Retrieve (H4): aizstāj lielus vienlaidus teksta blokus ar uz saturu balstītām atsaucēm, lai atkārtoti/lieli bloki tiktu nosūtīti vienreiz un pēc tam uz tiem tikai atsauktos. |
| headroom | headroom |
SmartCrusher (H3 + N5): viendabīgu JSON masīvu lietderīgo datu bezzudumu tabulāra sablīvēšana kolonnveida [N rows] formā. |
| ionizer | ionizer |
Sākuma/vidus/beigu rindu atlase ļoti lieliem viendabīgiem blokiem, saglabājot izlaisto vidusdaļu kā CCR uz saturu balstītu atsauci. |
| session-dedup | session-dedup |
Uz saturu balstīta starppiegājienu dublēšanās novēršana (iedvesmojoties no TokenMizer): izlaiž tekstu, kas jau redzēts tās pašas sesijas iepriekšējos piegājienos. |
CCR izgūšanas protokola instrukcija (#8033): pirmajā reizē, kad CCR pieprasījumā aizstāj ≥1 bloku,
dzinējs sākumā pievieno vienu idempotentu system ziņojumu (kas sākas ar
[CCR protocol] sargvērtību), izskaidrojot izsaucējam marķiera → rīka līgumu: ko nozīmē
[CCR retrieve hash=<24hex> chars=N] marķieris, ka jaucējvērtība jānokopē burtiski
(visas 24 heksadecimālās rakstzīmes — nepareizi nokopētas jaucējvērtības, visticamāk, izraisa
kļūdas "bloks nav atrasts"), un ka [dedup:ref sha=...] marķieris nozīmē "meklēt iepriekš vēsturē", nevis "izsaukt
rīku". Piezīme tiek ievietota tikai tad, ja izsaucēja deklarētais tools[] apliecina, ka tas
patiešām var piekļūt omniroute_ccr_retrieve (callerSupportsCcrRetrieve() failā
open-sse/services/compression/engines/ccr/protocolInstruction.ts) — parasts
ar OpenAI saderīgs izsaucējs bez šī rīka nekad nesaņem instrukciju izsaukt kaut ko,
kam tas nevar piekļūt. Idempotenci nodrošina, pirms ievietošanas pārmeklējot ziņojumu vēsturi un meklējot sargvērtību,
tādēļ vairāku piegājienu pieprasījumi (kas atkārtoti atskaņo iepriekšējos ziņojumus) nepievieno
šo piezīmi vēlreiz katrā piegājienā.
Caveman
Caveman režīms koncentrējas uz parasta teksta semantisku kondensēšanu:
- saglabā koda blokus, URL, JSON, ceļus un strukturētus datus
- noņem liekvārdību, izvairīgus formulējumus, atkārtotu kontekstu un pārlieku izvērstas saikļfrāzes
- atbalsta valodai pielāgotas failu kārtulu pakotnes mapē
open-sse/services/compression/rules/ - joprojām ir pieejams, izmantojot mantotos
standard,aggressiveunultrarežīmus
Informācijas paneļa sadaļa ir Dashboard -> Context & Cache -> Caveman.
Caveman pirmavots ziņo par ~75% mazāku izvades tokenu skaitu un vidēji 65% izvades ietaupījumu etalonpārbaudēs
ar 22-87% diapazonu, kā arī par ~46% ievades saspiešanas rīku. OmniRoute izmanto Caveman ievades puses
rādītāju, dokumentējot kombinētos uzvednes/konteksta ietaupījumus; Caveman izvades režīms joprojām ir atsevišķs
atbildes darbības līdzeklis.
RTK
RTK režīms koncentrējas uz komandu un rīku izvadi:
- nosaka tādas izvades klases kā
git status,git branch,git diff, Vitest/Jest/Pytest, Cargo/Go testi, TypeScript/Vite/Webpack būvējumi, ESLint, npm auditi/instalācijas, Docker žurnāli, čaulasfind/grep, steka trasējumi un vispārīgi žurnāli - lieto 49 JSON filtrus no
open-sse/services/compression/engines/rtk/filters/ - atbalsta RTK stila deklaratīvo konveijeru: ANSI noņemšanu, aizstāšanu, match-output īssavienojumu, rindu noņemšanu/saglabāšanu, katras rindas saīsināšanu, sākuma/beigu/maksimālā rindu skaita ierobežošanu un rezerves darbību tukša rezultāta gadījumā
- atbalsta projektam paredzētus filtrus ar uzticamības pārbaudi failā
.rtk/filters.jsonun globālos filtrus failāDATA_DIR/rtk/filters.json - noņem ANSI sekvences, progresa troksni, atkārtotas rindas un nederīgu standarttekstu
- saglabā kļūmes, ar kurām iespējams rīkoties, brīdinājumus, kopsavilkumus, mainītos failus un beigu kontekstu
- var pēc izvēles saglabāt rediģētu neapstrādāto izvadi atkopšanai/atkļūdošanai, izmantojot autentificētus pārvaldības maršrutus
Informācijas paneļa sadaļa ir Dashboard -> Context & Cache -> RTK.
Ekspluatācijas informācija par pielāgotiem filtriem, uzticamību, pārbaudi un neapstrādātās izvades atkopšanu ir pieejama
RTK_COMPRESSION.md.
RTK pirmavots ziņo par 60-90% ietaupījumu komandu izvades saspiešanā. Tā README piemērā 30 minūšu
Claude Code sesija tiek samazināta no ~118,000 tokeniem līdz ~23,900, ietaupot 79.7%.
LLMLingua-2 (semantiskā retināšana)
LLMLingua-2 režīms veic semantisku tokenu retināšanu tekstā, izmantojot nelielu ONNX tokenu klasifikatoru, papildinot uz kārtulām balstītos Caveman un RTK dzinējus:
- saspiež tekstu tikai ziņojumos, kas nav sistēmas ziņojumi; norobežoti koda bloki un citas saglabājamas konstrukcijas nekad netiek mainītas
- palaiž
@atjsh/llmlingua-2aizmugursistēmu (ONNX, izmantojot@huggingface/transformers) darbinātāja pavedienā, tādēļ modeļa secināšana nekad nebloķē pieprasījumu notikumu cilpu - ir kombinējams (
stackPriority35): kombinētā konveijerā tas tiek izpildīts pēc strukturālajiem dzinējiem (CCR, session-dedup, headroom, Caveman), bet pirmsultra, jo semantiskā retināšana ir visefektīvākā jau strukturāli saspiestam tekstam, piemēram,rtk -> caveman -> llmlingua - jebkuras kļūdas gadījumā turpina darbu bez saspiešanas (trūkstošas izvēles atkarības, darbinātāja izveide, modeļa ielāde, secināšana vai taimauts) → sākotnējais teksts tiek atgriezts nemainīts, nekad netiek atgriezta kļūda
Dzinēja atrašanās vieta: open-sse/services/compression/engines/llmlingua/. Informācijas paneļa sadaļa
ir Dashboard -> Context & Cache -> LLMLingua.
Modeļi
Noklusējuma modelis ir TinyBERT (atjsh/llmlingua-2-js-tinybert-meetingbank, ~57 MB,
ātrs). Augstākas precizitātes BERT-base modelis (Arcoldd/llmlingua4j-bert-base-onnx,
~710 MB) ir pieejams, izmantojot dzinēja konfigurācijas lauku model. @huggingface/transformers
pirmajā izsaukumā laiski lejupielādē atlasīto modeli no HuggingFace Hub mapē
${DATA_DIR}/models/llmlingua (modelStore.ts); konfigurācijas pārrakstīšana ar modelPath
tā vietā norāda uz lokālu kopiju (bezsaistes / no tīkla izolētām instalācijām).
Izvēles atkarības un instalēšana pēc pieprasījuma
Atmetamais LLMLingua izpildlaika vienādranga atkarību steks ir neobligāts. Divas pakotnes failā
package.json ir deklarētas kā optionalDependencies, un produkcijas būvējumā tās tiek paturētas kā ārējas
(scripts/build/prepublish.ts tās neiekļauj komplektā):
| Pakotne | Versija (fiksēta) | Piezīmes |
|---|---|---|
@atjsh/llmlingua-2 |
2.0.5 |
Ieejas pakotne; pārējās deklarē kā vienādranga atkarības |
js-tiktoken |
^1.0.20 |
Tokenizētājs |
@huggingface/transformers ir fiksēta versija ^4.2.0 (koplietota ar lokālo iegulumu ceļu un
iekļauta arī savrupajā komplektā); @atjsh/llmlingua-2@2.0.5 izmanto to kā vienādranga atkarību ar
"^3.5.2 || ^4.0.0", tādēļ tiek atbalstītas gan Transformers.js v3, gan v4. Kopš 2.0.4
@atjsh/llmlingua-2 vairs nav nepieciešams @tensorflow/tfjs, tādējādi no SLM steka tika noņemts lielākais
atsevišķais komponents (TensorFlow.js). Tikai abas iepriekš minētās pakotnes ir atmetamas SLM
vienādranga atkarības. Standarta npm install (izstrādes vidē) automātiski instalē izvēles steku, ja vien izvēles
atkarības netiek izlaistas.
Kāpēc pēc pieprasījuma: npm publicētā pakotne, savrupais komplekts un Docker attēls
tiek piegādāti bez šīm atkarībām, lai saglabātu mazu apjomu. Ja to nav, darbinātāja atkarību
pārbaude (@atjsh/llmlingua-2 atrisināšanas zonde failā worker.ts) neizdodas, un dzinējs
klusi turpina darbu bez saspiešanas — LLMLingua atlasīšana neko nedara (teksts tiek atgriezts nemainīts, un
kļūda netiek reģistrēta). Lai to aktivizētu retinātā vidē, instalējiet izvēles steku:
# fiksējiet package.json optionalDependencies deklarētās versijas
npm install @atjsh/llmlingua-2@2.0.5 js-tiktoken
@tensorflow/tfjs noņemšana (2.0.4+) likvidē iepriekš dominējošo ~800 MB
komponentu — atlikušo apjomu veido transformers.js + onnxruntime-node izpildlaiki,
kā arī TinyBERT modelis (~57 MB), kas tiek lejupielādēts pirmajā lietošanas reizē (nevis ar npm).
Katrai videi:
- Izstrāde /
npm install— tiek instalēts automātiski, ja vien nenorādījāt--omit=optional(vai--no-optional). Nekādas darbības nav nepieciešamas. - Globālais npm (
npm i -g omniroute) / savrupa instalācija — izpildiet iepriekš norādīto instalēšanas komandu instalētās pakotnes direktorijā vai instalējiet atkārtoti, neizlaižot izvēles atkarības. - Docker — pievienojiet instalēšanas komandu atvasinātā attēla slānī; publicētais attēls pēc konstrukcijas ir minimāls.
- VPS (PM2) — instalējiet lietotnes
node_modules, pēc tam restartējiet procesu, lai darbplūsma atkārtoti pārbaudītu vārteju. - Neapstrādāts savrupais Next (
npm run build→.build/next/standalone/server.js) — savrupajā trasē NAV iekļauta ne darbplūsma, ne izvēles atkarības, tāpēc dzinis nemanāmi pāriet atvērtā režīmā kļūmes gadījumā.scripts/build/colocate-standalone.mjsatkārtoti pievieno abus (darbplūsmas esbuild + izvēles atkarību noslēgumu savrupajā kokā); pēc katras būvēšanas tas tiek automātiski palaists, izmantojot npmpostbuildāķi. Idempotents; ja atkarību nav, kļūme neaptur darbību.
Pārbaudiet, vai tas ir aktīvs: ja ir atlasīts LLMLingua, reāls prozas teksts patiešām tiek saīsināts (dzinis
vairs nepāriet atvērtā režīmā kļūmes gadījumā), un pirmais pieprasījums izraisa modeļa lejupielādi uz
${DATA_DIR}/models/llmlingua. Vārteja apzināti pārbauda tikai @atjsh/llmlingua-2 —
pārējās līdzvērtīgās atkarības ir paredzētas tikai ESM, un require.resolve tām izraisa kļūdu pat tad, ja tās ir instalētas, —
tāpēc darbplūsma joprojām pāriet atvērtā režīmā kļūmes gadījumā, ja import() izpildes laikā patiešām trūkst kādas līdzvērtīgās atkarības.
Secīgi konveijeri
Secīgajā režīmā konveijera darbības tiek izpildītas noteiktā secībā. Noklusējuma secība ir:
rtk -> caveman
Izmantojiet to kodēšanas aģenta sesijām, kurās uzvedne apvieno komandu izvadi ar cilvēka vai asistenta tekstu. RTK vispirms samazina trokšņainos rīku žurnālus, pēc tam Caveman saspiež atlikušo dabisko valodu.
Konveijera darbības tiek konfigurētas, izmantojot stackedPipeline saspiešanas iestatījumos vai saspiešanas kombinācijas.
Ja abi dzinēji samazina vienu un to pašu atbilstošo lietderīgo slodzi, ietaupījums summējas:
combined = 1 - (1 - RTK savings) * (1 - Caveman input savings)
average = 1 - (1 - 0.80) * (1 - 0.46) = 89.2%
range = 1 - (1 - 0.60..0.90) * (1 - 0.46) = 78.4-94.6%
MCP pieejamības koka filtrs
MCP pieejamības koka viedais filtrs ir pēcizpildes saspiešanas slānis, kas darbojas ar MCP rīku rezultātiem, nevis uzvednēm vai kontekstu. Tas ir paredzēts apjomīgajām pieejamības koka un pārlūkprogrammas momentuzņēmumu lietderīgajām slodzēm, ko atgriež tādi rīki kā Playwright, computer-use un pārlūkprogrammu automatizācijas MCP serveri.
Ko tas dara
- Trokšņa noņemšana — noņem tukšus vispārīgus/teksta ierakstus (
- generic:,- text: "") - Blakuselementu sakļaušana — ja ≥
collapseThreshold(pēc noklusējuma 30) secīgas rindas ir strukturāli atkārtojumi, tās tiek sakļautas līdz pirmajāmcollapseKeepHead(pēc noklusējuma 10) rindām + skaita kopsavilkumam + pēdējāmcollapseKeepTail(pēc noklusējuma 5) rindām - Atsauču saglabāšana — Playwright/computer-use nepieciešamie
[ref=eXX]enkuri nekad netiek mainīti - Stingra apcirpšana — ja teksts pēc sakļaušanas joprojām pārsniedz
maxTextChars(pēc noklusējuma 50,000), tas tiek apcirpts, pievienojot navigācijas norādi, lai aģents varētu turpināt darbu
Dzinēja atrašanās vieta
open-sse/services/compression/engines/mcpAccessibility/
index.ts ← smartFilterText() ieejas punkts
collapseRepeated.ts ← blakuselementu sakļaušanas algoritms
constants.ts ← DEFAULT_MCP_ACCESSIBILITY_CONFIG
Konfigurācija
To kontrolē compression.mcpAccessibility globālajos iestatījumos (migrācija 056). Noklusējuma konfigurācija:
{
"enabled": true,
"maxTextChars": 50000,
"collapseThreshold": 30,
"collapseKeepHead": 10,
"collapseKeepTail": 5,
"minLengthToProcess": 2000
}
Filtrs tiek lietots tikai tām rīka rezultāta lietderīgajām slodzēm, kuru type ir "text" un kuru garums pārsniedz minLengthToProcess. Tas neietekmē uzvedņu saspiešanu vai pieprasījumu lietderīgās slodzes.
Paredzamais ietaupījums
60–80% pārlūkprogrammas momentuzņēmumu rīku rezultātiem atkarībā no lapas sarežģītības. Sakļaušanas algoritma sarežģītība pēc rindu skaita ir O(n), un tas rada nenozīmīgu aizkavi.
Šis filtrs salīdzinājumā ar iepriekš minētajiem saspiešanas dzinējiem
| Aspekts | Caveman / RTK / Secīgi | MCP pieejamības filtrs |
|---|---|---|
| Mērķis | Pieprasījumu uzvednes / konteksts | MCP rīku rezultāti |
| Aktivizētājs | Saspiešanas režīma iestatījums | compression.mcpAccessibility.enabled |
| Tvērums | Visi SSE ziņojumi | Tikai rīku rezultāti |
| Atsauču enkuri | Nav piemērojams | Saglabāti bez nosacījumiem |
Saspiešanas kombinācijas
Saspiešanas kombinācijas ir nosaukti saspiešanas profili, kurus var piešķirt maršrutēšanas kombinācijām:
compression_combos: glabā režīmu, konveijeru, RTK konfigurāciju, valodas konfigurāciju un noklusējuma marķiericompression_combo_assignments: sasaista saspiešanas kombināciju ar maršrutēšanas kombināciju- izpildlaika integrācija pirms vispārīgām kombināciju ignorēšanas vērtībām atrisina piešķirto saspiešanas kombināciju
- analītika ietver
compression_combo_idunengine
Informācijas paneļa sadaļa: Dashboard -> Context & Cache -> Compression Combos.
API saskarne
| Maršruts | Nolūks |
|---|---|
/api/settings/compression |
Globālie saspiešanas iestatījumi (ietver mcpAccessibility konfigurāciju) |
/api/compression/preview |
Jebkura saspiešanas režīma priekšskatījums |
/api/compression/language-packs |
Pieejamo Caveman valodu pakotņu saraksts |
/api/context/caveman/config |
Caveman iestatījumu aizstājvārds |
/api/context/rtk/config |
RTK noklusējuma vērtības un iestatījumi |
/api/context/rtk/filters |
RTK filtru katalogs |
/api/context/rtk/test |
RTK priekšskatījuma/testa galapunkts |
/api/context/rtk/raw-output/[id] |
Autentificēta rediģētas neapstrādātās izvades atgūšana |
/api/context/combos |
Saspiešanas kombināciju CRUD |
/api/context/combos/[id]/assignments |
Maršrutēšanas kombināciju piešķīrumu CRUD |
/api/context/analytics |
Saspiešanas analītikas aizstājvārds |
Pārvaldības maršrutiem ir nepieciešama pārvaldības autentifikācija vai API atslēgas politikas pārbaudes.
MCP rīki
Saspiešana nodrošina piecus MCP rīkus:
| Rīks | Tvērums | Nolūks |
|---|---|---|
omniroute_compression_status |
read:compression |
Iestatījumi, analītika, kešatmiņas statistika |
omniroute_compression_configure |
write:compression |
Globālo iestatījumu atjaunināšana |
omniroute_set_compression_engine |
write:compression |
Režīma un neobligāta konveijera iestatīšana |
omniroute_list_compression_combos |
read:compression |
Saspiešanas kombināciju saraksts |
omniroute_compression_combo_stats |
read:compression |
Kombināciju/dzinēju analītikas lasīšana |
Tvērums un izņēmumi
Iegultnes nekad netiek saspiestas. open-sse/handlers/embeddings.ts nekad neizsauc nevienu
saspiešanas dzinēju — pieprasījuma/atbildes ķermeņi nemainīti nonāk tieši pie izpildītāja.
Pašlaik tas ir nodrošināts strukturāli (iegultnes un tērzēšanas pabeigšanas apstrādā atsevišķi apstrādātāji), nevis ar
izpildlaika pārbaudi, taču tas nozīmē, ka problēmai ar vektoru kropļošanu no #8034 nav ietekmes virsmas
iegultņu ceļā.
Izslēgšanas filtrs katram modelim/galapunktam (#8034). Tērzēšanas pabeigšanām operators var norādīt
modeļu identifikatorus / provider/model mērķus, kurus nekad nedrīkst saspiest — drošības mehānisms, kas ir noderīgs, ja
saspiešana vēlāk tiek integrēta tuvāk iegultnēm blakus esošam ceļam, kā arī kopumā noderīgs
jebkuram modelim, kuram svarīga precīza, baitu līmenī identiska uzvedne (deterministiski novērtējumi, pret kešatmiņu jutīgi
prefiksi u.c.).
- Iestatījumu lauks:
exclusions?: string[]globālajā saspiešanas konfigurācijā (GET/PUT /api/settings/compression), kas tiek saglabāta, izmantojot esošokey_valuesaspiešanas nosaukumvietu (src/lib/db/compression.ts) — bez jaunas tabulas. - Informācijas paneļa cilne: Dashboard → Compression → Exclusions
(
/dashboard/compression/exclusions). - Šablonu sintakse:
*ir vienīgā aizstājējzīme. Visas pārējās regulāro izteiksmju metarakstzīmes šablonā pirms atbilstības pārbaudes tiek ekranētas, tāpēcgpt-5.6atbilst tikai literālajai virknei, nevisgpt-5x6(drošs pret ReDoS, ierobežots, bez ligzdotiem kvantifikatoriem). Atbilstība tiek pārbaudīta, neņemot vērā reģistru, gan pret atsevišķo modeļa identifikatoru, ganprovider/modelsalikumu — darbojasgpt-5-6,openai/gpt-5-6unopenai/*, savukārt*viens pats izslēdz visus modeļus. - Atbilstības noteikšana:
isCompressionExcluded()/normalizeCompressionExclusions()failāopen-sse/services/compression/exclusions.ts.chatCore.tspārbauda izslēgto mērķi uzreiz pēc saspiešanas iestatījumu atrisināšanas, pirms tiek palaists jebkurš dzinējs, un apstrādā atbilstību tieši tāpat kā globāli atspējotu saspiešanu — pieprasījuma ķermenis ir pierādāmi identisks baitu līmenī. Izlaišana tiek reģistrēta arwriteCompressionSkip(..., "excluded"), lai tā būtu redzama analītikā. - Noklusējums (tukšs/neesošs saraksts): identiska darbība kā pirms #8034 — nekas netiek izslēgts.
Zināmie ierobežojumi
- LLMLingua-2 (SLM) ir nepieciešamas vienuviet izvietotas neobligātās atkarības. Darbplūsmas process produkcijas būvē darbojas tikai tad, ja
@atjsh/llmlingua-2un tā saistītās atkarības ir vienuviet izvietotas direktorijādist/node_modules(skatietscripts/build/colocateOptionals.mjs, #4286). Bez tām dzinis kļūmes gadījumā turpina darbu, atgriežot sākotnējo tekstu. Darbplūsmas procesa atrašanās vietas noteikšana vairs nav atkarīga noimport.meta.url(savrupajā komplektā tas nedarbojas) — tā tiek piesaistīta izpildlaika cwd /argv[1]. - Caveman valodu pakotnes
de/fr/jair daļējas. Tajās ir iekļauticontext+filler+structuralkārtulu komplekti, bet navdedup/ultrakomplektu, tāpēc šīm valodāmultraintensitāte nav spēcīgāka parfull(tās izmanto tikai savas kārtulas — netiek veikta nemanāma atkāpšanās uz angļu valodasdedup/ultrakārtulām, kas izkropļotu tekstu svešvalodā).en/es/id/pt-BRpakotnes ir pilnīgas. Aicinām iesniegtdedup.json+ultra.jsonpapildinājumus daļējajām pakotnēm. - Secīgās telemetrijas datos tiek uzskaitīti tikai tie dziņi, kas veica saspiešanu. Secīgā konveijera solis, kura dzinis tika izpildīts, bet nodrošināja 0 % ietaupījumu, atgriež
stats:null, tāpēc tas netiek parādīts sadaļāengineBreakdown— to nevar atšķirt no izlaista soļa. Lai atšķirtu «izpildīts, 0 %» no «izlaists», būtu jāmaina sadalījuma modelis, un šīs izmaiņas ir atliktas.
Validācija
Šīs jomas mērķētās pārbaudes ir:
node --import tsx/esm --test tests/unit/compression/rtk-*.test.ts tests/unit/compression/pipeline-integration.test.ts tests/unit/compression/context-compression-api.test.ts
node --import tsx/esm --test tests/unit/compression/*.test.ts tests/golden-set/*.test.ts tests/integration/compression-pipeline.test.ts tests/unit/api/compression/compression-api.test.ts
node --import tsx/esm --test tests/unit/compression/mcpAccessibility*.test.ts
npm run typecheck:core