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

35 KiB
Raw Blame History

🗜️ Prompt Compression Guide — OmniRoute (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


Mos keluvchi kontekstni avtomatik ravishda 1595% tejang. Qisqacha tanishish uchun README faylidagi Siqish bolimiga qarang.

Umumiy korinish

OmniRoute sorovlar yuqori oqim provayderlariga yetib borishidan oldin faol ravishda ishga tushadigan modulli prompt siqish konveyerini amalga oshiradi. Bu tokenlaringiz shaffof tarzda tejalishini anglatadi — ish jarayoningizga hech qanday ozgartirish kiritish shart emas.

Mijoz sorovi
  → Siqish strategiyasini tanlash vositasi
    → Kombinatsiya ustuvor sozlamasi bormi? → Kombinatsiya sozlamasidan foydalanish
    → Avtomatik ishga tushirish chegarasiga yetildimi? → Avtomatik rejimdan foydalanish
    → Standart rejim bormi? → Global sozlamadan foydalanish
    → Ochirilganmi? → Siqishni otkazib yuborish
  → Tanlangan siqish rejimi
    → Off: Siqish yoq
    → Lite: Xavfsiz bosh joy/formatlashni tozalash (~15%)
    → Standard: Gor odami uslubida ortiqcha sozlarni olib tashlash (~30%)
    → Aggressive: Tarixni eskirtirish + umumlashtirish (~50%)
    → Ultra: Evristik qisqartirish + kod bloklarini siyraklashtirish (~75%)
    → RTK: Buyruqlardan xabardor terminal/vosita natijalarini filtrlash (yuqori oqimda 6090% diapazon)
    → Stacked: Tartiblangan kop dvigatelli konveyer, odatda avval RTK, song Caveman (mos kontentda 7895% diapazon)
  → Siqilgan sorov → Provayder

Siqish rejimlari

Off

Hech qanday siqish qollanmaydi. Barcha xabarlar ozgartirilmasdan uzatiladi.

Lite rejimi (~15% tejamkorlik, <1ms kechikish)

Eng xavfsiz rejim — semantik ozgarishlar yoq, faqat formatlash tozalanadi:

Usul Tavsif
collapseWhitespace Ketma-ket bosh satrlar va satr oxiridagi bosh joylarni birlashtiradi
dedupSystemPrompt Takroriy tizim xabarlarini olib tashlaydi
compressToolResults Batafsil vosita/funksiya natijalarini siqadi
removeRedundantContent Takrorlangan korsatmalarni olib tashlaydi
replaceImageUrls Base64 rasm malumotlari URI manzillarini qisqartiradi

Eng mos holatlar: Doimiy foydalanish, xavfsizlik muhim bolgan ish jarayonlari.

Standard rejimi (~30% tejamkorlik)

Cavemandan ilhomlangan — manoni saqlagan holda ortiqcha sozlar va chozib ifodalangan jumlalarni olib tashlaydi:

  • Ortiqcha sozlarni olib tashlaydi ("iltimos", "menimcha", "asosan", "aslida")
  • Chozib ifodalangan iboralarni ixchamlashtiradi ("... qilish maqsadida" → "... uchun", "... natijasida" → "... sababli")
  • Muloyim ehtiyotkor iboralarni olib tashlaydi ("Qarshi bolmasangiz...", "Agar iloji bolsa...")
  • Dasturlash promptlari uchun sozlangan 30 dan ortiq regex qoidalari

Eng mos holatlar: Kundalik dasturlash jarayonlari, xarajatlarni nazorat qiluvchi jamoalar.

Aggressive rejimi (~50% tejamkorlik)

Uzoq seanslar uchun aqlli tarix boshqaruvi:

  • Xabarlarni eskirtirish — eski xabarlar bosqichma-bosqich siqiladi
  • Vosita natijalarini umumlashtirish — uzun vosita natijalari qisqacha mazmun bilan almashtiriladi
  • Strukturaviy yaxlitlik himoyasitool_use + tool_result juftliklarining muvofiqligini taminlaydi
  • Kontekst oynasini hisobga olish — har bir model uchun token cheklovlariga rioya qiladi

Eng mos holatlar: Uzoq davom etuvchi nosozliklarni tuzatish seanslari, katta kod bazalari.

Ultra rejimi (~75% tejamkorlik)

Tokenlar juda muhim bolgan holatlar uchun maksimal siqish:

  • Evristik qisqartirish — dolzarblik chegarasidan past bolgan xabarlarni olib tashlaydi
  • Kod bloklarini siyraklashtirish — takroriy kod misollarini siqadi
  • Ikkilik qidiruv orqali kesish — kontekst oynasi uchun optimal kesish nuqtasini topadi
  • Aggressive rejimining barcha imkoniyatlari kiritilgan

Eng mos holatlar: Kontekst cheklovlariga qayta-qayta duch kelganingizda.

RTK rejimi (yuqori oqimda 6090% diapazon)

RTK rejimi dasturlash agenti seanslarida uchraydigan batafsil vosita natijalari uchun optimallashtirilgan:

  • git status, git diff, git log, test bajaruvchilari, TypeScript/Vite/Webpack yigishlari, ESLint/Biome/Prettier, npm audit/ornatishlari, Docker jurnallari, infratuzilma natijalari va umumiy qobiq natijalari kabi buyruq/natija sinflarini aniqlaydi
  • open-sse/services/compression/engines/rtk/filters/ manzilidagi JSON filtr toplamlarini qollaydi
  • Loyiha yoki global filters.toml fayllaridan RTK TOML schema v1 filtrlarini import qiladi, bunda ichki test tekshiruvi va loyiha fayllari uchun ishonch nazorati qollanadi
  • Ichki tekshirish namunalari bilan 49 ta ornatilgan filtrni taqdim etadi
  • ANSI boshqaruv ketma-ketliklari, jarayon korsatkichlari, takroriy satrlar va amaliy ahamiyatga ega bolmagan shovqinni olib tashlaydi
  • Nosozliklar, xatolar, ogohlantirishlar, ozgartirilgan fayllar, xulosalar va uzun natijalarning oxirgi qismini saqlab qoladi
  • Ishonch nazoratidan otuvchi loyiha filtrlari, global filtrlar va ixtiyoriy tarzda tahrirlangan xom natijalarni tiklashni qollab-quvvatlaydi

Eng mos holatlar: Qobiq, yigish, test, git, grep va fayl natijalari transkriptlariga ega agent seanslari.

Stacked rejimi (mos kontentda 7895% diapazon)

Stacked rejimi bir nechta siqish dvigatellarini deterministik tartibda ishga tushiradi. Standart konveyer:

RTK -> Caveman

Bu tartib avval terminal/vosita natijalarini ixchamlaydi, song qolgan tabiiy tildagi promptga Caveman semantik ixchamlashtirishini qollaydi. Stacked konveyerlarini global miqyosda yoki marshrutlash kombinatsiyalariga tayinlangan siqish kombinatsiyalari orqali sozlash mumkin.

Eng mos holatlar: Katta vosita jurnallari hamda inson korsatmalari yoki yordamchi xulosalaridan iborat aralash kontekst.


Yuqori oqimdagi tejash hisob-kitobi

OmniRoute siqish orqali tejalishni ikki manba asosida hujjatlashtiradi: yuqori oqimdagi loyihalarning benchmarklari va OmniRoutening oz dvigatellar kombinatsiyasi.

Manba Bu yerda ishlatilgan yuqori oqim README raqami
Caveman chiqish tokenlari ~75% kamroq, benchmark boyicha ortacha chiqish tejalishi 65%, diapazon 22-87% va kirishni ~46% siquvchi vosita
RTK buyruq chiqishida 60-90% tejalish; namunaviy sessiya ~118,000 -> ~23,900 token yoki 79.7% tejalgan (~80%)

Bir-birini qoplaydigan vosita/kontekst foydali yuklari uchun standart OmniRoute kombinatsiyasi dvigatellarni ketma-ket qollaydi:

RTK -> Caveman

Birgalikdagi tejalish qoshiluvchi emas, balki kopaytiriluvchidir:

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%

Bu 78-95% korsatkichi RTK va Caveman bir xil kirish/kontekst foydali yukini kamaytira olganda amal qiladi. Caveman javob chiqishi rejimi alohida: u yoqilganda Cavemanning oz chiqish tejalishidan foydalaning (ortacha 65%, asosiy korsatkich ~75%, diapazon 22-87%). Umumiy billing tejalishi prompt/chiqish nisbatiga bogliq.

“Mos keluvchi” aslida nimani anglatadi

15-95% asosiy diapazoni haqiqiy, ammo u faqat takroriy yoki ortiqcha batafsil kontentga — takrorlangan xato satrlariga, bir xil ogohlantirishni tinimsiz chiqaradigan build jurnaliga, haddan tashqari katta grep/fayl oqish chiqishiga nisbatan qollanadi. Bu har bir sorov shuncha tejaydi degani emas.

Empirik tarzda tasdiqlangan (tests/unit/compression/stacked-compression-tool-result-savings.test.ts): 300 ta bir xil xato satrini oz ichiga olgan Anthropic shaklidagi tool_result blokiga nisbatan stacked (RTK + Caveman) ishga tushirilganda 95.93% token tejalishi / 96.26% belgi tejalishi kuzatildi — bu elon qilingan diapazonga toliq mos keladi. Ammo xuddi shu pipeline oddiy, takrorlanmaydigan vosita chiqishiga (toza grep mosliklari royxati, qisqa fayl oqilishi, oddiy suhbat matni) nisbatan ishga tushirilganda togri ravishda deyarli nol tejalish hosil qiladi, chunki olib tashlash uchun takroriy kontent yoq va validateCompression() (validation.ts) kod bloklari, URL manzillari, sarlavhalar, versiyalar yoki FAQAT-KATTA-HARFLI konstanta identifikatorlarini olib tashlaydigan yoxud ozgartiradigan qayta yozuvni yuborishni rad etadi.

Bu kutilgan xavfsiz xatti-harakatdir, xato emas: asosan toza fayllarni oqiydigan yoki grep orqali qidiradigan dasturlash sessiyasi siqish toliq yoqilgan bolsa ham umumiy tejalish kamtarona ekanini koradi, muvaffaqiyatsiz siklga yoki haddan tashqari kop xabar chiqaradigan linterga duch kelgan sessiya esa osha trafikda toliq 78-95% diapazonni koradi. Bitta sessiyadagi past umumiy tejalish foizini siqish notogri sozlanganining dalili sifatida ishlatmang — avval asosiy vosita chiqishi haqiqatan ham takroriy bolgan-bolmaganini tekshiring.


Token tejalishi vizualizatsiyasi

Siqishsiz:             LLMga 47K token yuborildi
Lite bilan:            40K token yuborildi          (15% tejandi — xavfsiz, doimo faol)
Standard bilan:        33K token yuborildi          (30% tejandi — caveman-uslubidagi qoidalar)
Aggressive bilan:      24K token yuborildi          (50% tejandi — eskirish + umumlashtirish)
Ultra bilan:           12K token yuborildi          (75% tejandi — evristik qisqartirish)
RTK bilan:             19K-5K token yuborildi       (buyruq/vosita chiqishida 60-90% tejandi)
Stacked bilan:         10K-2.5K token yuborildi     (mos keluvchi RTK+Caveman diapazonida 78-95%)

Konfiguratsiya

Boshqaruv paneli

Dashboard → Context & Cache bolimiga oting:

  • Caveman — rejimni tanlash, til paketlari, oldindan korish va global standart sozlamalar
  • RTK — buyruq filtri natijasini oldindan korish, RTK xavfsizlik sozlamalari va filtrlar katalogi
  • Compression Combos — marshrutlash kombinatsiyalariga biriktiriladigan nomlangan mexanizm konveyerlari
  • Auto-Trigger Threshold — tokenlar soni chegaradan oshganda siqishni avtomatik ravishda ishga tushiradi

Har bir kombinatsiya uchun alohida sozlama

Dashboard → Context & Cache → Compression Combos bolimida marshrutlash kombinatsiyasiga siqish kombinatsiyasini biriktiring:

Kombinatsiya: "free-tier-fallback"
  Siqish kombinatsiyasi: "coding-agent-stack"
  Konveyer: RTK -> Caveman
  Maqsadlar:
    1. if/kimi-k2.7-code
    2. if/qwen3.8-max-preview

Bu pulli obunalarda yengil rejimni saqlagan holda bepul/dasturlash provayderlarida ketma-ket siqishdan foydalanish imkonini beradi.

Ushbu “Har bir kombinatsiya uchun alohida sozlama” biriktirishi marshrutlash kombinatsiyasining siqish rejimi (Default/Off/Lite/Standard/Aggressive/Ultra) ustuvor sozlamasidan farqli boshqaruv vositasidir — bu sozlama nomlangan siqish kombinatsiyasi konveyerini tanlamaydi; u faqat resolveCompressionPlan tomonidan tekshiriladigan compressionMode maydonini ornatadi. Uni kombinatsiya kartasida (Dashboard → Combos) yoki #6760 versiyasidan boshlab, yuqorida hujjatlashtirilgan konveyerni biriktirish katakchasi yonidagi Dashboard → Context & Cache → Compression Combos bolimining “Assign to routing” royxatida har bir marshrutlash kombinatsiyasi uchun alohida ornatish mumkin. Har ikkala interfeysdagi ozgarishlar bir xil PUT /api/combos/{id} oxirgi nuqtasi orqali saqlanadi.

Har bir sorov uchun alohida sozlama

Bitta sorov uchun siqish rejasini almashtirish maqsadida x-omniroute-compression sorov sarlavhasini yuboring. U eng yuqori ustuvorlikka ega — marshrutlash kombinatsiyasi sozlamasi, faol profil, avtomatik ishga tushirish va paneldagi standart sozlamadan ustun turadi. Nomalum qiymatlar etiborsiz qoldiriladi (sorov hech qachon rad etilmaydi), global asosiy kalit esa barcha holatlarni boshqarishda davom etadi: siqish global miqyosda ochirilgan bolsa, sarlavha uni yoqa olmaydi. Qiymatlar:

Qiymat Tasiri
off Ushbu sorov uchun siqish qollanmaydi.
default Paneldan olingan standart profil (faol profilni etiborsiz qoldiradi).
engine:<id> Yoqilgan bolsa, bitta mexanizm, masalan, engine:rtk.
<combo> Avval nomi boyicha (katta-kichik harflarni farqlamasdan), keyin identifikatori boyicha moslashtiriladigan nomlangan kombinatsiya.

Qollangan reja X-OmniRoute-Compression: <mode>; source=<source> javob sarlavhasida qaytariladi, bunda <source> qiymati request-header, routing-override, active-profile, auto-trigger, default yoki off qiymatlaridan biri boladi.

API

# Siqish sozlamalarini olish
curl http://localhost:20128/api/settings/compression

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

# Muayyan RTK/ketma-ket siqish foydali yuklamasini oldindan korish
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"}]}'

# RTK filtr paketlarini royxatlash
curl http://localhost:20128/api/context/rtk/filters

# RTKni ixtiyoriy buyruq metamalumotlari bilan bevosita sinash
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"}'

Nimalar himoyalanadi

Siqish mexanizmi har doim quyidagilarni saqlab qoladi:

  • Kod bloklari (ajratilgan va satr ichidagi)
  • URL manzillar va fayl yoʻllari
  • JSON tuzilmalari va tuzilmaviy maʼlumotlar
  • Identifikatorlar va himoyalangan texnik tokenlar
  • Matematik ifodalar
  • Vosita/funksiya chaqiruvi taʼriflari
  • Tizim promptlari (lite rejimida)

RTK xom chiqishni tiklash funksiyasi biror narsa saqlanishidan oldin keng tarqalgan API kalitlari, bearer tokenlari, Slack tokenlari, AWS kirish kalitlari, parollar, tokenlar va sirlarni yashiradi.


Siqish statistikasi

Har bir siqilgan soʻrov server jurnallarida statistikani oʻz ichiga oladi:

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

Bosqichlar rejasi

Bosqich Rejimlar Holat
1-bosqich Oʻchirilgan, Lite Chiqarilgan
2-bosqich Standard, Aggressive, Ultra Chiqarilgan
3-bosqich RTK, Stacked, siqish kombinatsiyalari Chiqarilgan
4-bosqich Chiqish uslublari, SLM darajasidagi Ultra, baholash vositalari Chiqarilgan
4C-bosqich Moslashuvchan kontekst byudjeti ("regulyator") — hisoblash mexanizmi + API (PUT /api/settings/compression dagi contextBudget) + boshqaruv panelidagi rejim/siyosat boshqaruvlari Chiqarilgan

Minnatdorchilik

Standard rejimidagi siqish qoidalari JuliusBrussee tomonidan yaratilgan Caveman ( 51K+) — ommalashgan „koʻp token ishlatishning nima keragi bor, kam token ishni bajarsa“ loyihasidan ilhomlangan. Caveman chiqish tokenlari ~75% ga kamayishi, testlarda oʻrtacha 65% chiqish tejalishi, chiqish natijalarida 22-87% oraligʻi va ~46% kirishni siqish vositasi haqida maʼlum qiladi.

RTK rejimi RTK AI tomonidan yaratilgan RTK - Rust Token Killer — terminal, qurish, sinov, git va vosita chiqishlarini filtrlash uchun moʻljallangan yuqori unumli buyruq chiqishini siqish loyihasidan ilhomlangan. RTK 60-90% tejash haqida maʼlum qiladi, uning README faylidagi namunaviy seans esa ~80% tejalganini koʻrsatadi.


Ilgʻor siqish tizimlari

7 ta standart rejimdan tashqari, OmniRoute kontekstga qarab avtomatik ishlaydigan bir nechta ilgʻor siqish tizimlarini ham oʻz ichiga oladi.

Keshni hisobga oluvchi siqish

Ayrim provayderlar (masalan, promptlarni keshlash funksiyasiga ega Anthropic) promptlarni keshlashni qoʻllab-quvvatlaydi, bu ularga xarajatlar va kechikishni kamaytirish uchun prompt qismlarini keshlash imkonini beradi. Keshlash yoqilganda, agressiv siqish unumdorlikka aslida zarar yetkazishi mumkin, chunki u keshlangan tokenlarni oʻzgartirib, keshni yaroqsiz holga keltiradi.

cachingAware.ts moduli buni keshlash kontekstini aniqlash va siqish strategiyasini mos ravishda sozlash orqali hal qiladi.

U qanday ishlaydi

  1. Keshlash kontekstini aniqlash — Soʻrov tanasida cache_control markerlarini qidiradi
  2. Keshlash provayderlarini aniqlash — Maqsadli provayder keshlashni qoʻllab-quvvatlashini tekshiradi
  3. Strategiyani sozlash — Keshlash provayderlari uchun aggressive/ultra rejimini standard rejimiga pasaytiradi
  4. Tizim promptini oʻtkazib yuborish — Tizim promptlari odatda keshlanadi, shuning uchun ularni siqmang
  5. Deterministik oʻzgartirishlardan foydalanish — Faqat izchil chiqish hosil qiladigan oʻzgartirishlardan foydalanadi

Kod namunasi

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" }, // ← Kesh markeri
};

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

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

Qachon foydalanish kerak

Keshni hisobga oluvchi siqish doimo yoqilgan — hech qanday sozlash talab qilinmaydi. U faqat quyidagi hollarda ishga tushadi:

  • Soʻrovda cache_control markerlari mavjud boʻlsa
  • Maqsadli provayder promptlarni keshlashni qoʻllab-quvvatlasa (Anthropic, OpenAI va boshqalar)

Progressiv eskirish

Uzoq suhbatlarda koʻplab xabar almashinuvi toʻplanadi, ammo eski almashinuvlar kamroq ahamiyatli boʻlib boradi. progressiveAging.ts moduli xabarlarni almashinuv masofasiga qarab soddalashtiradi:

  • Soʻnggi almashinuvlar (0-3): Soʻzma-soʻz saqlanadi (toʻliq tafsilotlar)
  • Oʻrtacha eski almashinuvlar (4-8): Lite siqish (boʻshliqlar va formatlashni tozalash)
  • Eski almashinuvlar (9+): Caveman siqishi (toʻldiruvchi soʻzlarni olib tashlash, umumlashtirish)
  • Juda eski almashinuvlar (20+): Kuchli umumlashtiriladi yoki olib tashlanadi

Kod namunasi

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" },
  // ... yana 50 ta almashinuv ...
];

const { messages: aged, saved } = applyAging(messages, {
  verbatim: 3, // Dastlabki 3 ta almashinuv: soʻzma-soʻz
  light: 8, // 4-8-almashinuvlar: lite siqish
  moderate: 20, // 9-20-almashinuvlar: caveman siqishi
  // 21-almashinuvdan keyin: kuchli umumlashtirish
});

// saved = tejalgan tokenlar soni

Qachon foydalanish kerak

Progressiv eskirish aggressive va ultra rejimlari uchun doimo yoqilgan. U ayniqsa quyidagilar uchun samarali:

  • Uzoq davom etadigan kod yozish seanslari
  • Bir necha kunlik suhbatlar
  • Koʻp vosita chaqiruvlariga ega agentli ish jarayonlari

Caveman chiqish rejimi

outputMode.ts moduli modelning oʻzi siqilgan, qisqa chiqish matnini ("caveman" uslubida) yaratishi uchun tizim prompti koʻrsatmalarini kiritadi.

U qanday ishlaydi

Kirish maʼlumotini siqish oʻrniga, bu rejim quyidagiga oʻxshash tizim promptini qoʻshadi:

"Minimal soʻzlar bilan javob bering. Xushmuomalalik iboralarini tashlab keting. Qisqa gaplardan foydalaning."

Bu ayniqsa quyidagilar uchun yaxshi ishlaydi:

  • Kod generatsiyasi (qisqaroq chiqish = kamroq token)
  • Tezkor savol-javob (batafsil tushuntirishlarga ehtiyoj yoʻq)
  • Ommaviy qayta ishlash (oʻtkazuvchanlikni maksimal darajaga oshirish)

Qachon foydalanish kerak

Caveman chiqish rejimi ixtiyoriy ravishda yoqiladi — uni kombinatsiyalangan konfiguratsiya orqali sozlang:

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

Chiqish uslublari (katalog)

Yuqoridagi Caveman chiqish rejimi — eski yagona uslubli yoʻl. Phase 4 uni birlashtiriladigan chiqish uslublari katalogiga umumlashtirdi: open-sse/services/compression/outputStyles/catalog.ts faylidagi OUTPUT_STYLE_CATALOG. Har bir uslub modelning oʻzi tejamkorroq chiqish yaratishini taʼminlaydigan tizim prompti koʻrsatmasidir; uslublarni birgalikda yoqish mumkin va ular katalog tartibida kiritiladi.

Uslub id Nima qiladi Koʻrsatma tillari
Qisqa bayon terse-prose Ortiqcha soʻzlar/artikllar/ikkilanishlarni olib tashlaydi; texnik mazmunni aniq saqlaydi. Eski caveman chiqish rejimi bilan bir xil matn (qayta yozilmaydi, unga havola qilinadi). en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi
Kamroq kod less-code YAGNI pogʻonasi: ishlaydigan eng kichik oʻzgarish, soʻralmagan abstraksiyalarsiz. en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi
Ponytail (erinchoq katta dasturchi) ponytail "Eng yaxshi kod — hech qachon yozilmagan kod": qayta foydalanish > qayta yozish, asosiy sabab > alomat, ishlaydigan eng qisqa diff. en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi
Menda ADHD bor (avval harakat) i-have-adhd Avval harakat (bayondan oldin buyruq/yoʻl/parcha), raqamlangan va cheklangan qadamlar, BITTA aniq keyingi qadam, kirish/qayta xulosa/yakuniy iboralarsiz. ayghri/i-have-adhd (MIT) asosida moslashtirilgan. en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi
Qisqa CJK (文言) terse-cjk Klassik xitoycha oʻta qisqa uslub. zh (lokal bilan cheklangan: faqat aniqlangan til zh boʻlganda taklif qilinadi)

Har bir uslub uchta intensivlik darajasida taqdim etiladi — lite, full, ultra — va har bir daraja kod bloklari, fayl yoʻllari, buyruqlar, xato satrlari, URL manzillari va identifikatorlarni aynan oʻz holicha saqlaydigan umumiy chegaralar bandi bilan tugaydi.

Kiritish qanday ishlaydi

applyOutputStyles() (open-sse/services/compression/outputStyles/apply.ts) tanlovni katalog bilan muvofiqlashtiradi (nomaʼlum id lar va lokalga mos kelmaydigan uslublar olib tashlanadi, bu hech qachon xato hisoblanmaydi), tanlangan koʻrsatmalarni katalog tartibida birlashtiradi, chegaralar bandini bir marta qoʻshadi va natijani yagona idempotentlik belgisi ([OmniRoute Output Styles]) ortidan tizim promptining boshiga joylashtiradi — qayta qoʻllash hech qanday taʼsir koʻrsatmaydi. Aniqlangan soʻrov tili uchun tarjima mavjud boʻlsa, inglizcha koʻrsatma oʻrniga mahalliylashtirilgan koʻrsatma kiritiladi.

Qanday yoqiladi

Boshqaruv panelida: Context → Settings → Compression — har bir uslub uchun yoqish/oʻchirish tugmasi va daraja tanlagichi boʻlgan alohida qator. Dasturiy tarzda siqish konfiguratsiyasi tanlovni quyidagicha saqlaydi:

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

Orqaga moslik: eski kombinatsiyalangan outputMode: "caveman" sozlamasi hamon ishlaydi va har bir eski tilda avvalgi kiritish bilan baytma-bayt bir xil boʻlgan terse-prose ga moslashtiriladi.

Til tanlash: languageConfig.enabled yoqilgan boʻlsa, autoDetect eng soʻnggi foydalanuvchi xabarining tilini tanlaydi (kirish mexanizmlaridagi detektor bilan bir xil); autoDetect ni oʻchirish defaultLanguage ni doimiy qiladi. Oʻchiq → Ingliz tili.

Uslub × til matritsasi tests/unit/compression/output-styles-i18n-matrix.test.ts orqali qatʼiy belgilanadi: yangi uslub kamida pt-BR tarjimasisiz (yoki aniq kuzatiladigan istisnosiz) chiqarilmaydi va mavjud uslub lokalni sezdirmasdan yoʻqota olmaydi. Uslub qoʻshish uchun EXTENDING_COMPRESSION.md ga qarang.

Vosita natijalarini siqish

toolResultCompressor.ts moduli vosita natijalari (funksiya chaqiruvlari, agent chiqishlari, qidiruv natijalari va boshqalar) uchun 5 ta ixtisoslashtirilgan siqish strategiyasini taqdim etadi:

  1. Qidiruv natijalarini siqish — Takroriy natijalarni olib tashlaydi, eng yaxshi N tasini saqlaydi
  2. Fayl oʻqishni siqish — Katta fayllarni qisqartiradi, sarlavhalar/importlarni saqlaydi
  3. Kod bajarilishini siqish — Faqat muhim stdout/stderr ni saqlaydi
  4. Maʼlumotlar bazasi soʻrovini siqish — Qatorlarni cheklaydi, batafsil metamaʼlumotlarni olib tashlaydi
  5. API javobini siqish — Null maydonlarni olib tashlaydi, massivlarni ixchamlashtiradi

Qachon foydalanish kerak

Vosita chaqiruvlari mavjud boʻlganda, vosita natijalarini siqish doimo yoqilgan. Hech qanday konfiguratsiya talab qilinmaydi.

Ketma-ket konveyer

Ketma-ket rejim bir nechta mexanizmni ketma-ket ishga tushiradi — odatda avval RTK (vosita chiqishida 60-90% tejash), soʻngra Caveman (qolgan matnda qoʻshimcha 30% tejash). Bu jami 78-95% tejash imkonini beradi.

U qanday ishlaydi

Kirish (1000 token)
  → RTK (buyruqlarni hisobga oluvchi filtr) → 200 token
    → Caveman (ortiqcha soʻzlarni olib tashlash) → 140 token
  → Chiqish (140 token, 86% tejash)

Qachon foydalanish kerak

Ketma-ket rejimdan quyidagilar uchun foydalaning:

  • Vositalarga boy ish jarayonlari (agentli kodlash, tadqiqot)
  • Xarajatlarga sezgir ommaviy qayta ishlash
  • Tokenlarni maksimal darajada tejash kerak boʻlganda

Kombinatsiyalangan konfiguratsiya orqali sozlang:

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

Kombinatsiya uchun siqishni bekor qilish sozlamalari

Turli foydalanish holatlari uchun ishlash tartibini aniq sozlash maqsadida global siqish rejimini har bir kombinatsiya uchun alohida bekor qilishingiz mumkin:

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

Bu quyidagilar uchun foydali:

  • Kodlash kombinatsiyalari: Uzoq seanslar uchun aggressive rejimidan foydalaning
  • Tezkor savol-javob kombinatsiyalari: Tezkor javoblar uchun lite rejimidan foydalaning
  • Vositalar kop ishlatiladigan kombinatsiyalar: Maksimal tejash uchun stacked rejimidan foydalaning
  • Ishlab chiqarish kombinatsiyalari: Keshlash provayderlari uchun cache-aware rejimidan foydalaning

Shuningdek qarang