Files
OmniRoute/docs/i18n/uz/docs/compression/COMPRESSION_ENGINES.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

32 KiB
Raw Blame History

Compression Engines (Oʻzbekcha)

🌐 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 · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW


OmniRoute siqish mexanizmi engine shartnomalari asosida qurilgan. Rejim bitta engineni bevosita (caveman yoki rtk) yoxud bir nechta engineni belgilangan tartibda ishga tushiradigan deterministik ketma-ket pipelineni bajarishi mumkin.

Rejimlar

Rejim Engine yoli Moljallangan kirish malumoti
off yoq Promptni aynan saqlab qolish
lite Caveman lite yordamchilari Xavfi past, doimiy tozalash
standard Caveman Tabiiy tildagi promptni ixchamlashtirish
aggressive Caveman + tarix/vosita xulosachilari Uzoq chat seanslari
ultra Caveman + qisqartirish yordamchilari Kontekst chegarasidan tiklanish
rtk RTK Terminal, shell, build, test va git chiqishi
omniglyph OmniGlyph Mahalliy provayder kanalida tasvir korinishidagi kontekst
stacked Pipeline, standart rtk -> caveman Aralash vosita jurnallari va nasriy matn, maksimal tejash

OmniGlyph siqish profillari

omniglyph enginei (omniglyph paketi, 1.4.0+) nomlangan semantik profilni qabul qiladi; u siqish sozlamalaridagi omniglyph.profile orqali global miqyosda yoki stacked pipelinening qadam konfiguratsiyasi orqali har bir qadam uchun alohida ornatiladi:

Profil Chegara
aggressive Standart. Elon qilingan olchovlarda ishlatilgan siyosat — system, vosita hujjatlari va zich tarixni tasvirga aylantiradi
balanced Faol holatni asl korinishda saqlaydi, oxirgi 8 ta navbatni himoya qiladi, eski yopilgan tarixni ixchamlashtiradi
coding-safe Vakolatlarni, vosita sxemalarini va faol vosita chiqishini asl korinishda saqlaydi, oxirgi 12 ta navbatni himoya qiladi
passthrough Ozgartirmasdan yonaltiradi; engine otkazib yuboriladi

Profil quyi chegara emas, yuqori chegara: paketdagi mergeCompressionProfileOptions chaqiruvchi tomonidan berilgan overridega profil yopgan yoqotishli kanalni qayta ochishga ruxsat bermaydi, shu sababli har bir qadam uchun berilgan preserveSystemPrompt: false coding-safe ostida system siqishni qayta yoqa olmaydi.

Ushbu kod bazasida olchanganda: coding-safe va balanced minCompressChars qiymatini maksimal darajaga oshiradi hamda system, vosita sxemalari va vosita natijalarini asl korinishda saqlaydi, shuning uchun hali tarix toplanmagan seans below_min_chars holatida toxtaydi va engine hech narsani ozgartirmaydi. Shu sababli standart profil eng xavfsiz profil emas, balki aggressive hisoblanadi.

Paket oz model qamrovi va profilini muhit konfiguratsiyasidan mustaqil ravishda aniqlaydi. OmniRoute qarorni hech qachon boshqa tomonga topshirmaydi: adapter model darvozasini paketning eng cheklovchi qamroviga mahkamlaydi, shu sababli xost muhiti sozlamalari ruxsat royxatini faqat toraytirishi mumkin, uni OmniRoute olchovlarida tasdiqlangan chegaradan kengaytira olmaydi.

Dvigatellar reyestri

Reyestr open-sse/services/compression/engines/registry.ts faylida joylashgan. Dvigatellar umumiy shartnomani taqdim etadi:

  • id: caveman yoki rtk kabi barqaror dvigatel identifikatori
  • apply(text, config): ketma-ket quvurlar tomonidan ishlatiladigan eski bajarish yoʻli
  • compress(input, config): matn + statistikani qaytaruvchi asosiy bajarish yoʻli
  • getConfigSchema(): yaroqli konfiguratsiyaning JSON-Schema-ga oʻxshash shaklini qaytaradi
  • validateConfig(config): { valid, errors[] } ni qaytaradi

Roʻyxatdan oʻtkazishda registerCompressionEngine(engine) (yoki murakkab holatlar uchun registerEngine) ishlatiladi; u qabul qilishdan oldin assertValidEngine() va validateConfig(defaultConfig) ni chaqiradi. Dvigatelni bajarilish vaqtida olib tashlash uchun unregisterCompressionEngine(id) dan foydalaning.

strategySelector.ts siqish bajarilishidan oldin ichki dvigatellarni roʻyxatdan oʻtkazadi. Bu dastlabki koʻrish, bajarilish vaqtidagi siqish, ketma-ket rejim, testlar va kelajakdagi dvigatellarga bir xil bajarish yoʻlidan foydalanish imkonini beradi.

MCP tavsifini siqish (aloqador)

Alohida reyestr MCP vositalari tavsifi metamaʼlumotlarini reyestr darajasida siqadi — qarang: open-sse/mcp-server/descriptionCompressor.ts va MCP-SERVER.md. U Caveman qoidalarini qayta ishlatadi, ammo soʻrov foydali yuklari bilan emas, vosita metamaʼlumotlari bilan ishlaydi.

Qoʻshimcha ichki dvigatellar

Caveman, RTK va LLMLingua-2 dan tashqari, reyestr bir nechta ixtisoslashgan yoʻqotishsiz / tuzilmaviy dvigatellarni ham taqdim etadi (ular ketma-ket quvurlar, sinov maydonchasi va testlarda ishlatiladi):

Dvigatel Id Nima qiladi
CCR ccr Content-Compress-Retrieve (H4): yirik uzluksiz matn bloklarini kontentga asoslangan havolalar bilan almashtiradi, natijada takroriy/yirik bloklar bir marta yuborilib, keyinchalik ularga havola qilinadi.
headroom headroom SmartCrusher (H3 + N5): bir xil tuzilishga ega JSON massiv foydali yuklarini ustunli [N rows] shakliga yoʻqotishsiz jadvalli ixchamlaydi.
ionizer ionizer Juda katta bir xil tuzilishga ega bloklardan bosh/oʻrta/oxir qatorlarni tanlab oladi va chiqarib tashlangan oʻrta qismni CCR kontentga asoslangan havolasi sifatida saqlaydi.
session-dedup session-dedup Seans davomida navbatlararo kontentga asoslangan takrorlarni olib tashlash (TokenMizer-dan ilhomlangan): ayni seansning oldingi navbatlarida allaqachon uchragan matnni chiqarib tashlaydi.

CCR olish protokoli koʻrsatmasi (#8033): CCR soʻrovdagi ≥1 blokni birinchi marta almashtirganda, dvigatel marker → vosita shartnomasini chaqiruvchiga tushuntiruvchi yagona, idempotent system xabarini ([CCR protocol] sentinelidan boshlanadigan) boshiga qoʻshadi: [CCR retrieve hash=<24hex> chars=N] markeri nimani anglatishi, xesh aynan oʻz holicha (barcha 24 ta oʻn oltilik belgi — notoʻgʻri koʻchirilgan xeshlar "blok topilmadi" xatolarining ehtimoliy sababidir) koʻchirilishi shartligi va [dedup:ref sha=...] markeri "vositani chaqirish" emas, balki "tarixga qaytib qarash" maʼnosini anglatishi tushuntiriladi. Izoh faqat chaqiruvchi eʼlon qilgan tools[] uning haqiqatan ham omniroute_ccr_retrieve ga kira olishini tasdiqlaganda (callerSupportsCcrRetrieve() funksiyasi open-sse/services/compression/engines/ccr/protocolInstruction.ts ichida) kiritiladi — bu vositasiz oddiy OpenAI-mos chaqiruvchi oʻzi kira olmaydigan narsani chaqirish koʻrsatmasini hech qachon olmaydi. Idempotentlik kiritishdan oldin xabarlar tarixida sentinelni qidirish orqali taʼminlanadi, shuning uchun koʻp navbatli soʻrovlarda (oldingi xabarlar qayta uzatiladi) izoh har bir navbatda ustma-ust qoʻshilmaydi.

Caveman

Caveman rejimi odatiy nasriy matnni semantik jihatdan ixchamlashtirishga qaratilgan:

  • kod bloklari, URL manzillar, JSON, yoʻllar va tuzilmaviy maʼlumotlarni saqlab qoladi
  • ortiqcha soʻzlar, noaniq ifodalar, takrorlangan kontekst va choʻziq bogʻlovchi iboralarni olib tashlaydi
  • open-sse/services/compression/rules/ ichidagi tilga mos fayl qoidalari toʻplamlarini qoʻllab-quvvatlaydi
  • eski standard, aggressive va ultra rejimlari orqali ham foydalanish mumkin

Boshqaruv panelidagi joylashuvi: Dashboard -> Context & Cache -> Caveman.

Caveman upstream hisobotlariga koʻra, chiqish tokenlari ~75% ga kamayadi, benchmarklarda chiqish hajmi oʻrtacha 65% ga tejaladi, diapazon esa 22-87% ni tashkil qiladi; kirishni siqish vositasi uchun bu koʻrsatkich ~46%. OmniRoute ustma-ust qoʻllanilgan prompt/kontekst tejashlarini hujjatlashtirishda Cavemanʼning kirish tomonidagi koʻrsatkichidan foydalanadi; Caveman chiqish rejimi esa alohida javob xatti-harakati xususiyati boʻlib qoladi.

RTK

RTK rejimi buyruq va vosita chiqishlariga qaratilgan:

  • git status, git branch, git diff, Vitest/Jest/Pytest, Cargo/Go testlari, TypeScript/Vite/Webpack buildlari, ESLint, npm audit/oʻrnatishlari, Docker loglari, shell find/grep, stek izlari va umumiy loglar kabi chiqish sinflarini aniqlaydi
  • open-sse/services/compression/engines/rtk/filters/ ichidagi 49 ta JSON filtrini qoʻllaydi
  • RTK uslubidagi deklarativ konveyerni qoʻllab-quvvatlaydi: ANSIʼni olib tashlash, almashtirish, chiqish mos kelganda qisqa tutashuv, satrlarni olib tashlash/saqlash, har bir satrni qisqartirish, bosh/oxir/maksimal satr boʻyicha qisqartirish va natija boʻsh boʻlgandagi zaxira variant
  • .rtk/filters.json ichidagi ishonch bilan cheklangan loyiha filtrlarini va DATA_DIR/rtk/filters.json ichidagi global filtrlarni qoʻllab-quvvatlaydi
  • ANSI ketma-ketliklari, jarayon shovqini, takroriy satrlar va foydasiz andozaviy matnlarni olib tashlaydi
  • amaliy choralar koʻrish mumkin boʻlgan xatolar, ogohlantirishlar, xulosalar, oʻzgartirilgan fayllar va yakuniy kontekstni saqlab qoladi
  • tiklash/nosozliklarni aniqlash uchun autentifikatsiyalangan boshqaruv marshrutlari orqali tahrirlangan xom chiqishni ixtiyoriy ravishda saqlab qolishi mumkin

Boshqaruv panelidagi joylashuvi: Dashboard -> Context & Cache -> RTK.

Maxsus filtrlar, ishonch, tekshirish va xom chiqishni tiklash boʻyicha operatsion tafsilotlar RTK_COMPRESSION.md ichida keltirilgan.

RTK upstream hisobotlariga koʻra, buyruq chiqishini siqishda 60-90% tejaladi. Uning README misolida 30 daqiqalik Claude Code seansi ~118,000 tokendan ~23,900 tokengacha qisqargani, yaʼni 79.7% tejalishi koʻrsatilgan.

LLMLingua-2 (Semantik kesish)

LLMLingua-2 rejimi kichik ONNX token klassifikatoridan foydalanib, nasriy matnda semantik tokenlarni kesishni amalga oshiradi va qoidalarga asoslangan Caveman hamda RTK dvigatellarini toʻldiradi:

  • faqat tizimga oid boʻlmagan xabarlardagi nasriy matnni siqadi; chegaralangan kod bloklari va boshqa saqlanadigan tuzilmalar hech qachon oʻzgartirilmaydi
  • @atjsh/llmlingua-2 backendini (ONNX @huggingface/transformers orqali) ishchi oqimda ishga tushiradi, shuning uchun model inferensi soʻrov hodisalari siklini hech qachon bloklamaydi
  • ustma-ust qoʻllanishi mumkin (stackPriority 35): ustma-ust konveyerda u tuzilmaviy dvigatellardan (CCR, session-dedup, headroom, Caveman) keyin, ammo ultradan oldin ishlaydi, chunki semantik kesish avvaldan tuzilmaviy tarzda siqilgan matnda eng samarali — masalan, rtk -> caveman -> llmlingua
  • har qanday xatoda ishni toʻxtatmaydi (yetishmayotgan ixtiyoriy bogʻliqliklar, ishchi oqimni yaratish, modelni yuklash, inferens yoki vaqt tugashi) → xato oʻrniga asl matn oʻzgartirilmasdan qaytariladi

Dvigatel joylashuvi: open-sse/services/compression/engines/llmlingua/. Boshqaruv panelidagi joylashuvi: Dashboard -> Context & Cache -> LLMLingua.

Modellar

Standart model — TinyBERT (atjsh/llmlingua-2-js-tinybert-meetingbank, ~57 MB, tezkor). Aniqligi yuqoriroq BERT-base modeli (Arcoldd/llmlingua4j-bert-base-onnx, ~710 MB) dvigatel konfiguratsiyasidagi model maydoni orqali mavjud. Birinchi chaqiruvda (modelStore.ts) @huggingface/transformers tanlangan modelni HuggingFace Hubʼdan ${DATA_DIR}/models/llmlingua ichiga kechiktirib yuklab oladi; modelPath konfiguratsiya almashtirishi esa uni mahalliy nusxaga yoʻnaltiradi (oflayn / tarmoqdan ajratilgan oʻrnatishlar).

Ixtiyoriy bogʻliqliklar va talab boʻyicha oʻrnatish

Kesilishi mumkin boʻlgan LLMLingua ish vaqti peer steki ixtiyoriy. Ikki paket package.json ichida optionalDependencies sifatida eʼlon qilingan va ishlab chiqarish buildida tashqi holatda saqlanadi (scripts/build/prepublish.ts ularni paketga qoʻshmaydi):

Paket Versiya (qatʼiy) Izohlar
@atjsh/llmlingua-2 2.0.5 Kirish paketi; boshqalarini peer sifatida eʼlon qiladi
js-tiktoken ^1.0.20 Tokenizator

@huggingface/transformers ^4.2.0 versiyasiga mahkamlangan (mahalliy embedding yoʻli bilan umumiy ishlatiladi va mustaqil paketga ham kiritiladi); @atjsh/llmlingua-2@2.0.5 u bilan "^3.5.2 || ^4.0.0" orqali peer bogʻliqlikka ega, shu sababli Transformers.js v3 va v4ʼning ikkalasi ham qoʻllab-quvvatlanadi. 2.0.4 versiyasidan boshlab, @atjsh/llmlingua-2 endi @tensorflow/tfjsni talab qilmaydi, bu SLM stekidagi eng katta alohida komponentni (TensorFlow.js) olib tashladi. Faqat yuqoridagi ikki paket kesilishi mumkin boʻlgan SLM peer paketlaridir. Oddiy npm install (dev), agar ixtiyoriy bogʻliqliklar chiqarib tashlanmasa, ixtiyoriy stekni avtomatik ravishda oʻrnatadi.

Nima uchun talab boʻyicha: npm orqali chop etilgan paket, mustaqil paket va Docker tasviri ixcham qolishi uchun bu bogʻliqliklarsiz tarqatiladi. Ular mavjud boʻlmaganda, ishchi oqimning bogʻliqlik tekshiruvi (worker.ts ichidagi @atjsh/llmlingua-2 resolve tekshiruvi) muvaffaqiyatsiz tugaydi va dvigatel xatoni bildirmasdan ishni davom ettiradi — LLMLinguaʼni tanlash hech qanday amal bajarmaydi (matn oʻzgartirilmasdan qaytariladi, xato jurnalga yozilmaydi). Uni qisqartirilgan muhitda faollashtirish uchun ixtiyoriy stekni oʻrnating:

# package.json optionalDependencies ichida eʼlon qilingan versiyalarga mahkamlang
npm install @atjsh/llmlingua-2@2.0.5 js-tiktoken

@tensorflow/tfjsning olib tashlanishi (2.0.4+) avval ustun boʻlgan ~800 MB hajmdagi komponentni yoʻq qiladi — qolgan hajm transformers.js + onnxruntime-node ish vaqtlaridan, shuningdek, birinchi foydalanishda yuklab olinadigan (npm orqali emas) TinyBERT modelidan (~57 MB) iborat.

Har bir muhit uchun:

  • Dev / npm install — agar --omit=optional (yoki --no-optional) parametrini bermagan boʻlsangiz, avtomatik ravishda oʻrnatiladi. Hech qanday amal talab qilinmaydi.
  • Global npm (npm i -g omniroute) / mustaqil — yuqoridagi oʻrnatish buyrugʻini oʻrnatilgan paket katalogida ishga tushiring yoki ixtiyoriy bogʻliqliklarni chiqarib tashlamasdan qayta oʻrnating.
  • Docker — oʻrnatish buyrugʻini hosilaviy tasvir qatlamiga qoʻshing; eʼlon qilingan tasvir ataylab ixcham qilib yetkaziladi.
  • VPS (PM2) — ilovaning node_modules katalogiga oʻrnating, soʻng worker gateʼni qayta tekshirishi uchun jarayonni qayta ishga tushiring.
  • Raw Next mustaqil (npm run build.build/next/standalone/server.js) — mustaqil trace na workerʼni, na ixtiyoriy bogʻliqliklarni oʻz ichiga oladi, shu sababli engine indamasdan fail-open rejimiga oʻtadi. scripts/build/colocate-standalone.mjs ikkalasini ham qayta qoʻllaydi (worker esbuild + ixtiyoriy bogʻliqliklar closureʼini mustaqil daraxtga joylaydi); u har bir buildʼdan keyin postbuild npm hookʼi orqali avtomatik ishga tushadi. Idempotent, bogʻliqliklar mavjud boʻlmaganda fail-soft ishlaydi.

Faolligini tekshirish: LLMLingua tanlanganda, haqiqiy nasriy matn amalda qisqaradi (engine fail-open rejimiga oʻtishni toʻxtatadi) va birinchi soʻrov modelni ${DATA_DIR}/models/llmlingua katalogiga yuklab olishni boshlaydi. Gate ataylab faqat @atjsh/llmlingua-2 paketini tekshiradi — boshqa peerʼlar faqat ESMʼga moʻljallangan va ular mavjud boʻlsa ham require.resolve xatolik chiqaradi — shu sababli import() vaqtida biror peer haqiqatan mavjud boʻlmasa, worker baribir fail-open rejimiga oʻtadi.

Ketma-ket ulangan konveyerlar

Ketma-ket ulangan rejim konveyer bosqichlarini tartib bilan bajaradi. Standart tartib:

rtk -> caveman

Bundan buyruq chiqishini inson yoki yordamchi matni bilan birlashtiradigan soʻrovli kodlash agenti seanslari uchun foydalaning. RTK avval shovqinli vosita jurnallarini kamaytiradi, soʻng Caveman qolgan tabiiy tilni siqadi.

Konveyer bosqichlari siqish sozlamalaridagi stackedPipeline orqali yoki siqish kombinatsiyalari orqali sozlanadi.

Har ikkala mexanizm bir xil mos yuklamani kamaytirganda, tejamkorlik birikadi:

combined = 1 - (1 - RTK tejamkorligi) * (1 - Caveman kirish tejamkorligi)
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 maxsus imkoniyatlar daraxti filtri

MCP maxsus imkoniyatlar daraxtining aqlli filtri — bajarilishdan keyingi siqish qatlami boʻlib, soʻrovlar yoki kontekstda emas, MCP vosita natijalari ustida ishlaydi. U Playwright, computer-use va brauzerni avtomatlashtirish MCP serverlari kabi vositalar qaytaradigan batafsil maxsus imkoniyatlar daraxti hamda brauzer surati yuklamalariga moʻljallangan.

U nima qiladi

  1. Shovqinni olib tashlash — boʻsh umumiy/matn yozuvlarini (- generic:, - text: "") olib tashlaydi
  2. Qoʻshni elementlarni yigʻish — ketma-ket ≥ collapseThreshold (standart qiymati 30) qator tuzilmaviy takrorlardan iborat boʻlsa, ularni dastlabki collapseKeepHead (standart qiymati 10) qator + son boʻyicha xulosa + oxirgi collapseKeepTail (standart qiymati 5) qator koʻrinishida yigʻadi
  3. Havolalarni saqlash — Playwright/computer-use uchun zarur boʻlgan [ref=eXX] tayanchlariga hech qachon tegilmaydi
  4. Qatʼiy qisqartirish — agar yigʻishdan keyin matn hali ham maxTextChars (standart qiymati 50,000) chegarasidan oshsa, agent ishni davom ettira olishi uchun navigatsiya koʻrsatmasi bilan qisqartiriladi

Mexanizm joylashuvi

open-sse/services/compression/engines/mcpAccessibility/
  index.ts            ← smartFilterText() kirish nuqtasi
  collapseRepeated.ts ← qoʻshni elementlarni yigʻish algoritmi
  constants.ts        ← DEFAULT_MCP_ACCESSIBILITY_CONFIG

Sozlash

Global sozlamalardagi compression.mcpAccessibility orqali boshqariladi (migratsiya 056). Standart konfiguratsiya:

{
  "enabled": true,
  "maxTextChars": 50000,
  "collapseThreshold": 30,
  "collapseKeepHead": 10,
  "collapseKeepTail": 5,
  "minLengthToProcess": 2000
}

Filtr faqat type qiymati "text" boʻlgan va uzunligi minLengthToProcess qiymatidan oshadigan vosita natijasi yuklamalariga qoʻllanadi. U soʻrovlarni siqish yoki soʻrov yuklamalariga taʼsir qilmaydi.

Kutiladigan tejamkorlik

Sahifa murakkabligiga qarab, brauzer surati vosita natijalarida 6080%. Yigʻish algoritmi qatorlar soniga nisbatan O(n) murakkablikda ishlaydi va ahamiyatsiz darajada kechikish qoʻshadi.

Ushbu filtr va yuqoridagi siqish mexanizmlari

Jihat Caveman / RTK / Stacked MCP maxsus imkoniyatlar filtri
Nishon Soʻrovlar / kontekst MCP vosita natijalari
Faollashuv Siqish rejimi sozlamasi compression.mcpAccessibility.enabled
Qamrov Barcha SSE xabarlari Faqat vosita natijalari
Ref tayanchlari Qoʻllanilmaydi Shartsiz saqlanadi

Siqish kombinatsiyalari

Siqish kombinatsiyalari — marshrutlash kombinatsiyalariga tayinlanishi mumkin bolgan nomlangan siqish profillari:

  • compression_combos: rejim, konveyer, RTK konfiguratsiyasi, til konfiguratsiyasi va standart belgisini saqlaydi
  • compression_combo_assignments: siqish kombinatsiyasini marshrutlash kombinatsiyasiga boglaydi
  • bajarilish vaqtidagi integratsiya umumiy kombinatsiya almashtirishlaridan oldin tayinlangan siqish kombinatsiyasini aniqlaydi
  • tahlillar compression_combo_id va engineni oz ichiga oladi

Boshqaruv panelidagi joylashuvi: Dashboard -> Context & Cache -> Compression Combos.

API interfeysi

Marshrut Maqsad
/api/settings/compression Global siqish sozlamalari (mcpAccessibility konfiguratsiyasini oz ichiga oladi)
/api/compression/preview Istalgan siqish rejimini oldindan korish
/api/compression/language-packs Mavjud Caveman til paketlarini royxatlash
/api/context/caveman/config Caveman sozlamalari uchun muqobil nom
/api/context/rtk/config RTK standart qiymatlari va sozlamalari
/api/context/rtk/filters RTK filtrlari katalogi
/api/context/rtk/test RTK oldindan korish/sinov endpointi
/api/context/rtk/raw-output/[id] Autentifikatsiyalangan, maxfiy qismlari olib tashlangan xom natijani tiklash
/api/context/combos Siqish kombinatsiyalari uchun CRUD
/api/context/combos/[id]/assignments Marshrutlash kombinatsiyasi tayinlovlari uchun CRUD
/api/context/analytics Siqish tahlillari uchun muqobil nom

Boshqaruv marshrutlari boshqaruv autentifikatsiyasi yoki API kaliti siyosati tekshiruvlarini talab qiladi.

MCP vositalari

Siqish beshta MCP vositasini taqdim etadi:

Vosita Qamrov Maqsad
omniroute_compression_status read:compression Sozlamalar, tahlillar, kesh statistikasi
omniroute_compression_configure write:compression Global sozlamalarni yangilash
omniroute_set_compression_engine write:compression Rejim va ixtiyoriy konveyerni belgilash
omniroute_list_compression_combos read:compression Siqish kombinatsiyalarini royxatlash
omniroute_compression_combo_stats read:compression Kombinatsiya/dvigatel tahlillarini oqish

Qamrov va istisnolar

Embeddinglar hech qachon siqilmaydi. open-sse/handlers/embeddings.ts hech qachon hech qanday siqish dvigatelini chaqirmaydi — sorov/javob tanalari ozgartirilmagan holda togridan-togri ijrochiga uzatiladi. Hozirda bu tuzilmaviy xususiyatdir (embeddinglar va chat yakunlashlari alohida ishlov beruvchilarga ega), bajarilish vaqtidagi tekshiruv emas, ammo bu #8034 dagi vektor buzilishi bilan bogliq xavotirning embeddinglar yolida tasir yuzasi yoqligini anglatadi.

Har bir model/endpoint uchun istisno filtri (#8034). Chat yakunlashlari uchun operator hech qachon siqilmasligi kerak bolgan model idlari / provider/model maqsadlarini korsatishi mumkin — bu keyinchalik siqish embeddinglarga yaqin yolga ulansa foydali boladigan himoya chorasi bolib, aniq baytma-bayt prompti muhim bolgan har qanday model uchun ham foydalidir (deterministik baholashlar, keshga sezgir prefikslar va hokazo).

  • Sozlamalar maydoni: global siqish konfiguratsiyasidagi exclusions?: string[] (GET/PUT /api/settings/compression), mavjud key_value siqish nomlar fazosi orqali saqlanadi (src/lib/db/compression.ts) — yangi jadval yoq.
  • Boshqaruv paneli varagi: Dashboard → Compression → Exclusions (/dashboard/compression/exclusions).
  • Andoza sintaksisi: * yagona joker belgidir. Andozadagi boshqa barcha regex meta-belgilari moslashtirishdan oldin ekranlanadi, shuning uchun gpt-5.6 faqat aynan shu literal satrga mos keladi, gpt-5x6ga esa hech qachon mos kelmaydi (ReDoS xavfsiz, chegaralangan, ichma-ich kvantifikatorlarsiz). Andozalar registrni hisobga olmagan holda ham model idining oziga, ham provider/model kompozitiga moslashtiriladi — gpt-5-6, openai/gpt-5-6 va openai/*ning barchasi ishlaydi, *ning ozi esa barcha modellarni istisno qiladi.
  • Moslashtirish: open-sse/services/compression/exclusions.ts ichidagi isCompressionExcluded() / normalizeCompressionExclusions(). chatCore.ts siqish sozlamalarini aniqlagandan song, biror dvigatel ishga tushishidan oldin, istisno qilingan maqsadni tekshiradi va moslikni xuddi siqish global miqyosda ochirilgandek qayta ishlaydi — sorov tanasi isbotlanadigan darajada baytma-bayt aynan bir xil qoladi. Otkazib yuborish tahlillarda korinishi uchun writeCompressionSkip(..., "excluded") orqali qayd etiladi.
  • Standart holat (bosh/mavjud bolmagan royxat): #8034 dan oldingi xatti-harakat bilan bir xil — hech narsa istisno qilinmaydi.

Maʼlum cheklovlar

  • LLMLingua-2 (SLM) bir joyga joylashtirilgan ixtiyoriy bogʻliqliklarni talab qiladi. Worker production buildda faqat @atjsh/llmlingua-2 va uning peer bogʻliqliklari dist/node_modules ichiga bir joyga joylashtirilganida ishlaydi (scripts/build/colocateOptionals.mjs, #4286 ga qarang). Ularsiz engine xatoni chetlab oʻtadi (asl matnni qaytaradi). Worker rezolyutsiyasi endi import.meta.url ga bogʻliq emas (u mustaqil toʻplamda ishlamay qoladi) — u runtime cwd / argv[1] ga tayanadi.
  • Caveman til paketlari de / fr / ja qisman toʻliq. Ular context + filler + structural qoidalari bilan taqdim etiladi, ammo dedup / ultra paketlari mavjud emas, shu sababli bu tillar uchun ultra intensivligi full dan kuchliroq emas (ular faqat oʻz qoidalaridan foydalanadi — xorijiy matnni buzishi mumkin boʻlgan inglizcha dedup/ultra qoidalariga yashirin qaytish mavjud emas). en / es / id / pt-BR toʻliq. Qisman toʻliq paketlar uchun dedup.json + ultra.json hissalari mamnuniyat bilan qabul qilinadi.
  • Ketma-ket telemetriya faqat siqishni amalga oshirgan enginelarni koʻrsatadi. Engine ishga tushgan, ammo 0 % tejashni taʼminlagan ketma-ket pipeline bosqichi stats:null qaytaradi va shu sababli engineBreakdown ichida koʻrinmaydi — uni oʻtkazib yuborilgan bosqichdan ajratib boʻlmaydi. “Ishga tushdi, 0 %” holatini “oʻtkazib yuborildi” holatidan ajratish breakdown modelini oʻzgartirishni talab qiladi va keyinga qoldirilgan.

Tekshirish

Ushbu soha uchun yoʻnaltirilgan tekshiruvlar:

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