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

361 lines
62 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Compression Engines (മലയാളം)
🌐 **Languages:** 🇺🇸 [English](../../../../compression/COMPRESSION_ENGINES.md) · 🇪🇹 [am](../../../am/docs/compression/COMPRESSION_ENGINES.md) · 🇸🇦 [ar](../../../ar/docs/compression/COMPRESSION_ENGINES.md) · 🇦🇿 [az](../../../az/docs/compression/COMPRESSION_ENGINES.md) · 🇧🇬 [bg](../../../bg/docs/compression/COMPRESSION_ENGINES.md) · 🇧🇩 [bn](../../../bn/docs/compression/COMPRESSION_ENGINES.md) · 🇨🇿 [cs](../../../cs/docs/compression/COMPRESSION_ENGINES.md) · 🇩🇰 [da](../../../da/docs/compression/COMPRESSION_ENGINES.md) · 🇩🇪 [de](../../../de/docs/compression/COMPRESSION_ENGINES.md) · 🇬🇷 [el](../../../el/docs/compression/COMPRESSION_ENGINES.md) · 🇪🇸 [es](../../../es/docs/compression/COMPRESSION_ENGINES.md) · 🇪🇪 [et](../../../et/docs/compression/COMPRESSION_ENGINES.md) · 🇮🇷 [fa](../../../fa/docs/compression/COMPRESSION_ENGINES.md) · 🇫🇮 [fi](../../../fi/docs/compression/COMPRESSION_ENGINES.md) · 🇫🇷 [fr](../../../fr/docs/compression/COMPRESSION_ENGINES.md) · 🇮🇪 [ga](../../../ga/docs/compression/COMPRESSION_ENGINES.md) · 🇮🇳 [gu](../../../gu/docs/compression/COMPRESSION_ENGINES.md) · 🇳🇬 [ha](../../../ha/docs/compression/COMPRESSION_ENGINES.md) · 🇮🇱 [he](../../../he/docs/compression/COMPRESSION_ENGINES.md) · 🇮🇳 [hi](../../../hi/docs/compression/COMPRESSION_ENGINES.md) · 🇭🇷 [hr](../../../hr/docs/compression/COMPRESSION_ENGINES.md) · 🇭🇺 [hu](../../../hu/docs/compression/COMPRESSION_ENGINES.md) · 🇦🇲 [hy](../../../hy/docs/compression/COMPRESSION_ENGINES.md) · 🇮🇩 [id](../../../id/docs/compression/COMPRESSION_ENGINES.md) · 🇳🇬 [ig](../../../ig/docs/compression/COMPRESSION_ENGINES.md) · 🇮🇹 [it](../../../it/docs/compression/COMPRESSION_ENGINES.md) · 🇯🇵 [ja](../../../ja/docs/compression/COMPRESSION_ENGINES.md) · 🇬🇪 [ka](../../../ka/docs/compression/COMPRESSION_ENGINES.md) · 🇰🇭 [km](../../../km/docs/compression/COMPRESSION_ENGINES.md) · 🇮🇳 [kn](../../../kn/docs/compression/COMPRESSION_ENGINES.md) · 🇰🇷 [ko](../../../ko/docs/compression/COMPRESSION_ENGINES.md) · 🇱🇹 [lt](../../../lt/docs/compression/COMPRESSION_ENGINES.md) · 🇱🇻 [lv](../../../lv/docs/compression/COMPRESSION_ENGINES.md) · 🇮🇳 [mr](../../../mr/docs/compression/COMPRESSION_ENGINES.md) · 🇲🇾 [ms](../../../ms/docs/compression/COMPRESSION_ENGINES.md) · 🇲🇹 [mt](../../../mt/docs/compression/COMPRESSION_ENGINES.md) · 🇲🇲 [my](../../../my/docs/compression/COMPRESSION_ENGINES.md) · 🇳🇵 [ne](../../../ne/docs/compression/COMPRESSION_ENGINES.md) · 🇳🇱 [nl](../../../nl/docs/compression/COMPRESSION_ENGINES.md) · 🇳🇴 [no](../../../no/docs/compression/COMPRESSION_ENGINES.md) · 🇮🇳 [or](../../../or/docs/compression/COMPRESSION_ENGINES.md) · 🇮🇳 [pa](../../../pa/docs/compression/COMPRESSION_ENGINES.md) · 🇵🇭 [phi](../../../phi/docs/compression/COMPRESSION_ENGINES.md) · 🇵🇱 [pl](../../../pl/docs/compression/COMPRESSION_ENGINES.md) · 🇵🇹 [pt](../../../pt/docs/compression/COMPRESSION_ENGINES.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/compression/COMPRESSION_ENGINES.md) · 🇷🇴 [ro](../../../ro/docs/compression/COMPRESSION_ENGINES.md) · 🇷🇺 [ru](../../../ru/docs/compression/COMPRESSION_ENGINES.md) · 🇱🇰 [si](../../../si/docs/compression/COMPRESSION_ENGINES.md) · 🇸🇰 [sk](../../../sk/docs/compression/COMPRESSION_ENGINES.md) · 🇸🇮 [sl](../../../sl/docs/compression/COMPRESSION_ENGINES.md) · 🇷🇸 [sr](../../../sr/docs/compression/COMPRESSION_ENGINES.md) · 🇸🇪 [sv](../../../sv/docs/compression/COMPRESSION_ENGINES.md) · 🇰🇪 [sw](../../../sw/docs/compression/COMPRESSION_ENGINES.md) · 🇮🇳 [ta](../../../ta/docs/compression/COMPRESSION_ENGINES.md) · 🇮🇳 [te](../../../te/docs/compression/COMPRESSION_ENGINES.md) · 🇹🇭 [th](../../../th/docs/compression/COMPRESSION_ENGINES.md) · 🇹🇷 [tr](../../../tr/docs/compression/COMPRESSION_ENGINES.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/compression/COMPRESSION_ENGINES.md) · 🇵🇰 [ur](../../../ur/docs/compression/COMPRESSION_ENGINES.md) · 🇺🇿 [uz](../../../uz/docs/compression/COMPRESSION_ENGINES.md) · 🇻🇳 [vi](../../../vi/docs/compression/COMPRESSION_ENGINES.md) · 🇳🇬 [yo](../../../yo/docs/compression/COMPRESSION_ENGINES.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/compression/COMPRESSION_ENGINES.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/compression/COMPRESSION_ENGINES.md)
---
OmniRoute കംപ്രഷൻ എഞ്ചിൻ കരാറുകളെ അടിസ്ഥാനമാക്കിയാണ് നിർമ്മിച്ചിരിക്കുന്നത്. ഒരു മോഡിന് ഒരു എഞ്ചിൻ നേരിട്ട് പ്രവർത്തിപ്പിക്കാം
(`caveman` അല്ലെങ്കിൽ `rtk`), അല്ലെങ്കിൽ ഒന്നിലധികം എഞ്ചിനുകൾ ക്രമത്തിൽ പ്രവർത്തിപ്പിക്കുന്ന നിർണ്ണായകമായ ഒരു സ്റ്റാക്ക്ഡ് പൈപ്പ്ലൈൻ ഉപയോഗിക്കാം.
## മോഡുകൾ
| മോഡ് | എഞ്ചിൻ പാത | ഉദ്ദേശിച്ച ഇൻപുട്ട് |
| ------------ | ------------------------------------- | ---------------------------------------------------------- |
| `off` | ഒന്നുമില്ല | പ്രോംപ്റ്റ് അതേപടി സംരക്ഷിക്കൽ |
| `lite` | Caveman lite സഹായികൾ | കുറഞ്ഞ അപകടസാധ്യതയുള്ള, എപ്പോഴും പ്രവർത്തിക്കുന്ന ശുചീകരണം |
| `standard` | Caveman | സ്വാഭാവിക ഭാഷയിലുള്ള പ്രോംപ്റ്റിന്റെ സംക്ഷേപണം |
| `aggressive` | Caveman + ഹിസ്റ്ററി/ടൂൾ സംഗ്രാഹകർ | ദൈർഘ്യമേറിയ ചാറ്റ് സെഷനുകൾ |
| `ultra` | Caveman + പ്രൂണിംഗ് സഹായികൾ | കോൺടെക്സ്റ്റ് പരിധിയിൽനിന്നുള്ള വീണ്ടെടുക്കൽ |
| `rtk` | RTK | ടെർമിനൽ, ഷെൽ, ബിൽഡ്, ടെസ്റ്റ്, git ഔട്ട്പുട്ട് |
| `omniglyph` | OmniGlyph | നേറ്റീവ് പ്രൊവൈഡർ വയറിലെ ഇമേജ് രൂപത്തിലുള്ള കോൺടെക്സ്റ്റ് |
| `stacked` | പൈപ്പ്ലൈൻ, ഡിഫോൾട്ട് `rtk -> caveman` | സമ്മിശ്ര ടൂൾ ലോഗുകളും ഗദ്യവും, പരമാവധി ലാഭം |
### OmniGlyph കംപ്രഷൻ പ്രൊഫൈലുകൾ
`omniglyph` എഞ്ചിൻ (`omniglyph` പാക്കേജ്, 1.4.0+) പേരിട്ട ഒരു സെമാന്റിക് പ്രൊഫൈൽ സ്വീകരിക്കുന്നു; ഇത്
കംപ്രഷൻ ക്രമീകരണങ്ങളിലെ `omniglyph.profile` വഴി ആഗോളമായോ, സ്റ്റാക്ക്ഡ് പൈപ്പ്ലൈന്റെ ഘട്ട കോൺഫിഗിലൂടെ ഓരോ ഘട്ടത്തിനായോ സജ്ജീകരിക്കാം:
| പ്രൊഫൈൽ | പരിധി |
| ------------- | ------------------------------------------------------------------------------------------------------------------------ |
| `aggressive` | ഡിഫോൾട്ട്. പ്രസിദ്ധീകരിച്ച രസീതുകൾ അളന്ന പോളിസി — സിസ്റ്റം, ടൂൾ ഡോക്സ്, സാന്ദ്രമായ ഹിസ്റ്ററി എന്നിവയെ ചിത്രങ്ങളാക്കുന്നു |
| `balanced` | ലൈവ് സ്റ്റേറ്റ് നേറ്റീവായി നിലനിർത്തുന്നു, അവസാന 8 ടേണുകൾ സംരക്ഷിക്കുന്നു, പഴയ അടച്ച ഹിസ്റ്ററി ചുരുക്കുന്നു |
| `coding-safe` | അതോറിറ്റി, ടൂൾ സ്കീമകൾ, ലൈവ് ടൂൾ ഔട്ട്പുട്ട് എന്നിവ നേറ്റീവായി നിലനിർത്തുന്നു, അവസാന 12 ടേണുകൾ സംരക്ഷിക്കുന്നു |
| `passthrough` | രൂപാന്തരപ്പെടുത്താതെ റൂട്ട് ചെയ്യുന്നു; എഞ്ചിൻ ഒഴിവാക്കപ്പെടുന്നു |
പ്രൊഫൈൽ ഒരു **പരമാവധി പരിധിയാണ്, കുറഞ്ഞ പരിധിയല്ല**: പാക്കേജിലെ `mergeCompressionProfileOptions`
ഒരു കോളർ ഓവർറൈഡിലൂടെ പ്രൊഫൈൽ അടച്ച ഒരു നഷ്ടസാധ്യതയുള്ള ലെയിൻ വീണ്ടും തുറക്കാൻ അനുവദിക്കില്ല. അതിനാൽ ഓരോ ഘട്ടത്തിലെയും
`preserveSystemPrompt: false` എന്ന ക്രമീകരണത്തിന് `coding-safe`-ന്റെ കീഴിൽ സിസ്റ്റം കംപ്രഷൻ വീണ്ടും പ്രവർത്തനക്ഷമമാക്കാനാവില്ല.
ഈ കോഡ്ബേസിൽ നടത്തിയ അളവെടുപ്പനുസരിച്ച്: `coding-safe`, `balanced` എന്നിവ `minCompressChars`-നെ അതിന്റെ
പരമാവധി മൂല്യത്തിലേക്ക് ഉയർത്തുകയും സിസ്റ്റം, ടൂൾ സ്കീമകൾ, ടൂൾ ഫലങ്ങൾ എന്നിവ നേറ്റീവായി നിലനിർത്തുകയും ചെയ്യുന്നു. അതിനാൽ ഇതുവരെ
ഹിസ്റ്ററി ശേഖരിക്കാത്ത ഒരു സെഷൻ `below_min_chars`-ൽ നിൽക്കുകയും എഞ്ചിൻ ഒന്നും രൂപാന്തരപ്പെടുത്താതിരിക്കുകയും ചെയ്യും. അതുകൊണ്ടാണ്
ഏറ്റവും സുരക്ഷിതമായ പ്രൊഫൈലിന് പകരം `aggressive` ഡിഫോൾട്ടായിരിക്കുന്നത്.
പാക്കേജ് അതിന്റെ എൻവയോൺമെന്റ് കോൺഫിഗറേഷനിൽ നിന്ന് സ്വന്തം മോഡൽ സ്കോപ്പും പ്രൊഫൈലും നിർണ്ണയിക്കുന്നു.
OmniRoute ഒരിക്കലും ഈ തീരുമാനം മറ്റൊന്നിന് ഏൽപ്പിക്കില്ല: അഡാപ്റ്റർ മോഡൽ ഗേറ്റിനെ പാക്കേജിന്റെ
ഏറ്റവും നിയന്ത്രിതമായ സ്കോപ്പിലേക്ക് പിൻ ചെയ്യുന്നു. അതിനാൽ ഹോസ്റ്റ് എൻവയോൺമെന്റ് ക്രമീകരണങ്ങൾക്ക് അനുവദനീയ പട്ടിക ചുരുക്കാൻ മാത്രമേ കഴിയൂ; OmniRoute അളന്ന രസീതുകൾക്കപ്പുറം അതിനെ ഒരിക്കലും വിപുലീകരിക്കാനാവില്ല.
## എഞ്ചിൻ രജിസ്ട്രി
രജിസ്ട്രി `open-sse/services/compression/engines/registry.ts`-ലാണ് സ്ഥിതിചെയ്യുന്നത്. എഞ്ചിനുകൾ ഒരു പൊതുവായ
കരാർ ലഭ്യമാക്കുന്നു:
- `id`: `caveman` അല്ലെങ്കിൽ `rtk` പോലുള്ള സ്ഥിരതയുള്ള എഞ്ചിൻ ഐഡി
- `apply(text, config)`: സ്റ്റാക്ക് ചെയ്ത പൈപ്പ്ലൈനുകൾ ഉപയോഗിക്കുന്ന പഴയ നിർവഹണ പാത
- `compress(input, config)`: ടെക്സ്റ്റും സ്ഥിതിവിവരക്കണക്കുകളും തിരികെ നൽകുന്ന പ്രാഥമിക നിർവഹണ പാത
- `getConfigSchema()`: സാധുവായ കോൺഫിഗിന്റെ JSON-Schema-സമാനമായ ഘടന തിരികെ നൽകുന്നു
- `validateConfig(config)`: `{ valid, errors[] }` തിരികെ നൽകുന്നു
രജിസ്ട്രേഷനായി `registerCompressionEngine(engine)` (അല്ലെങ്കിൽ വിപുലമായ സാഹചര്യങ്ങളിൽ `registerEngine`)
ഉപയോഗിക്കുന്നു; സ്വീകരിക്കുന്നതിന് മുമ്പ് ഇത് `assertValidEngine()`-ഉം `validateConfig(defaultConfig)`-ഉം വിളിക്കുന്നു.
റൺടൈമിൽ ഒരു എഞ്ചിൻ നീക്കംചെയ്യാൻ `unregisterCompressionEngine(id)` ഉപയോഗിക്കുക.
കംപ്രഷൻ പ്രവർത്തിക്കുന്നതിന് മുമ്പ് `strategySelector.ts` ബിൽറ്റ്-ഇൻ എഞ്ചിനുകൾ രജിസ്റ്റർ ചെയ്യുന്നു. ഇതിലൂടെ പ്രിവ്യൂ,
റൺടൈം കംപ്രഷൻ, സ്റ്റാക്ക് ചെയ്ത മോഡ്, ടെസ്റ്റുകൾ, ഭാവിയിലെ എഞ്ചിനുകൾ എന്നിവയ്ക്ക് ഒരേ നിർവഹണ പാത ഉപയോഗിക്കാനാകും.
### MCP വിവരണ കംപ്രഷൻ (ബന്ധപ്പെട്ടത്)
ഒരു പ്രത്യേക രജിസ്ട്രി, രജിസ്ട്രി തലത്തിൽ MCP ടൂൾ വിവരണ മെറ്റാഡാറ്റ കംപ്രസ് ചെയ്യുന്നു — കാണുക
`open-sse/mcp-server/descriptionCompressor.ts`, [MCP-SERVER.md](../frameworks/MCP-SERVER.md). ഇത്
Caveman നിയമങ്ങൾ പുനരുപയോഗിക്കുന്നുവെങ്കിലും റിക്വസ്റ്റ് പേലോഡുകളിലല്ല, ടൂൾ മെറ്റാഡാറ്റയിലാണ് പ്രവർത്തിക്കുന്നത്.
### അധിക ബിൽറ്റ്-ഇൻ എഞ്ചിനുകൾ
Caveman, RTK, LLMLingua-2 എന്നിവയ്ക്കുപുറമേ, രജിസ്ട്രിയിൽ നിരവധി പ്രത്യേക നഷ്ടരഹിത /
ഘടനാപരമായ എഞ്ചിനുകളും ഉൾപ്പെടുത്തിയിട്ടുണ്ട് (സ്റ്റാക്ക് ചെയ്ത പൈപ്പ്ലൈനുകൾ, പ്ലേഗ്രൗണ്ട്, ടെസ്റ്റുകൾ എന്നിവയിൽ ഉപയോഗിക്കുന്നു):
| എഞ്ചിൻ | ഐഡി | ഇത് ചെയ്യുന്നത് |
| ------------- | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CCR | `ccr` | Content-Compress-Retrieve (H4): തുടർച്ചയായ വലിയ ടെക്സ്റ്റ് ബ്ലോക്കുകൾക്ക് പകരം ഉള്ളടക്ക-അഡ്രസ് ചെയ്ത റഫറൻസുകൾ നൽകുന്നു; അതുവഴി ആവർത്തിക്കുന്ന/വലിയ ബ്ലോക്കുകൾ ഒരിക്കൽ മാത്രം അയയ്ക്കുകയും പിന്നീട് അവയെ റഫർ ചെയ്യുകയും ചെയ്യുന്നു. |
| headroom | `headroom` | SmartCrusher (H3 + N5): ഏകജാതീയമായ JSON-array പേലോഡുകളെ കോളമ്നാർ `[N rows]` രൂപത്തിലേക്ക് നഷ്ടരഹിതമായി പട്ടികാരൂപത്തിൽ ചുരുക്കുന്നു. |
| ionizer | `ionizer` | വളരെ വലിയ ഏകജാതീയ ബ്ലോക്കുകളിൽ നിന്ന് ആദ്യ/മധ്യ/അവസാന വരികൾ സാമ്പിൾ ചെയ്യുകയും ഒഴിവാക്കിയ മധ്യഭാഗം CCR ഉള്ളടക്ക-അഡ്രസ് ചെയ്ത റഫറൻസായി സംഭരിക്കുകയും ചെയ്യുന്നു. |
| session-dedup | `session-dedup` | ഉള്ളടക്ക-അഡ്രസ് ചെയ്ത ക്രോസ്-ടേൺ ഡീഡ്യൂപ്ലിക്കേഷൻ (TokenMizer-ൽ നിന്ന് പ്രചോദനം ഉൾക്കൊണ്ടത്): അതേ സെഷന്റെ മുൻ ടേണുകളിൽ ഇതിനകം കണ്ട ടെക്സ്റ്റ് ഒഴിവാക്കുന്നു. |
**CCR റിട്രീവ്-പ്രോട്ടോക്കോൾ നിർദ്ദേശം (#8033):** ഒരു റിക്വസ്റ്റിൽ CCR ആദ്യമായി ≥1 ബ്ലോക്ക്
മാറ്റിസ്ഥാപിക്കുമ്പോൾ, എഞ്ചിൻ ഒറ്റത്തവണ മാത്രം ചേർക്കപ്പെടുന്ന, ഐഡംപോട്ടന്റ് ആയ ഒരു `system` സന്ദേശം (`[CCR protocol]`
സെന്റിനലിൽ ആരംഭിക്കുന്നത്) മുൻവശത്ത് ചേർക്കുന്നു. മാർക്കർ → ടൂൾ കരാർ ഇത് കോളറെ പഠിപ്പിക്കുന്നു: ഒരു
`[CCR retrieve hash=<24hex> chars=N]` മാർക്കർ എന്താണ് അർത്ഥമാക്കുന്നത്, ഹാഷ് അതേപടി പകർത്തണം
(എല്ലാ 24 ഹെക്സ് പ്രതീകങ്ങളും — തെറ്റായി പകർത്തിയ ഹാഷുകളാണ് "ബ്ലോക്ക് കണ്ടെത്തിയില്ല"
എന്ന പിഴവുകളുടെ സാധ്യതയേറിയ കാരണം), കൂടാതെ `[dedup:ref sha=...]` മാർക്കർ എന്നത് "ഹിസ്റ്ററിയിൽ പിന്നോട്ട് നോക്കുക"
എന്നാണ് അർത്ഥമാക്കുന്നത്, "ടൂൾ വിളിക്കുക" എന്നല്ല. കോളർ പരസ്യപ്പെടുത്തിയ `tools[]`-ന്
യഥാർത്ഥത്തിൽ `omniroute_ccr_retrieve` ആക്സസ് ചെയ്യാനാകുമെന്ന് തെളിയിക്കുമ്പോൾ **മാത്രമാണ് കുറിപ്പ് ചേർക്കുന്നത്**
(`open-sse/services/compression/engines/ccr/protocolInstruction.ts`-ലെ `callerSupportsCcrRetrieve()`) — ആ ടൂൾ
ഇല്ലാത്ത ഒരു സാധാരണ OpenAI-അനുയോജ്യ കോളറിന്, അതിന് ആക്സസ് ചെയ്യാനാകാത്ത ഒന്നിനെ വിളിക്കാനുള്ള നിർദ്ദേശം ഒരിക്കലും
ലഭിക്കില്ല. ചേർക്കുന്നതിന് മുമ്പ് സന്ദേശ ഹിസ്റ്ററിയിൽ സെന്റിനൽ ഉണ്ടോയെന്ന് സ്കാൻ ചെയ്താണ് ഐഡംപോട്ടൻസി
ഉറപ്പാക്കുന്നത്; അതിനാൽ മുൻ സന്ദേശങ്ങൾ വീണ്ടും പ്ലേ ചെയ്യുന്ന മൾട്ടി-ടേൺ റിക്വസ്റ്റുകളിൽ ഓരോ ടേണിലും
കുറിപ്പ് വീണ്ടും അടുക്കപ്പെടുന്നില്ല.
## Caveman
സാധാരണ ഗദ്യത്തിന്റെ അർത്ഥസാന്ദ്രീകരണത്തിലാണ് Caveman മോഡ് ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നത്:
- കോഡ് ബ്ലോക്കുകൾ, URLs, JSON, പാത്തുകൾ, ഘടനാപരമായ ഡാറ്റ എന്നിവ സംരക്ഷിക്കുന്നു
- അനാവശ്യ പൂരകങ്ങൾ, സന്ദിഗ്ധത പ്രകടിപ്പിക്കുന്ന പ്രയോഗങ്ങൾ, ആവർത്തിക്കുന്ന സന്ദർഭം, ദീർഘമായ ബന്ധക പ്രയോഗങ്ങൾ എന്നിവ നീക്കം ചെയ്യുന്നു
- `open-sse/services/compression/rules/`-ൽ ഭാഷയെ പരിഗണിക്കുന്ന ഫയൽ റൂൾ പാക്കുകളെ പിന്തുണയ്ക്കുന്നു
- പഴയ `standard`, `aggressive`, `ultra` മോഡുകളിലൂടെയും തുടർന്നും ലഭ്യമാണ്
ഡാഷ്ബോർഡിൽ ഇത് `Dashboard -> Context & Cache -> Caveman` എന്നിടത്താണ്.
Caveman അപ്സ്ട്രീം, ഔട്ട്പുട്ട് ടോക്കണുകളിൽ `~75%` കുറവും, ബെഞ്ച്മാർക്കുകളിൽ `22-87%` പരിധിയോടെ ശരാശരി `65%` ഔട്ട്പുട്ട് ലാഭവും, `~46%` ഇൻപുട്ട്-കംപ്രഷൻ ടൂളും റിപ്പോർട്ട് ചെയ്യുന്നു. സ്റ്റാക്ക് ചെയ്ത പ്രോംപ്റ്റ്/കോൺടെക്സ്റ്റ് ലാഭം രേഖപ്പെടുത്തുമ്പോൾ OmniRoute, Caveman-ന്റെ ഇൻപുട്ട്-സൈഡ് കണക്ക് ഉപയോഗിക്കുന്നു; Caveman ഔട്ട്പുട്ട് മോഡ് ഒരു പ്രത്യേക പ്രതികരണ-പെരുമാറ്റ സവിശേഷതയായി തുടരുന്നു.
## RTK
കമാൻഡ്, ടൂൾ ഔട്ട്പുട്ടുകളിലാണ് RTK മോഡ് ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നത്:
- `git status`, `git branch`, `git diff`, Vitest/Jest/Pytest, Cargo/Go ടെസ്റ്റുകൾ, TypeScript/Vite/Webpack ബിൽഡുകൾ, ESLint, npm ഓഡിറ്റ്/ഇൻസ്റ്റാളുകൾ, Docker ലോഗുകൾ, shell `find`/`grep`, സ്റ്റാക്ക് ട്രേസുകൾ, പൊതുവായ ലോഗുകൾ തുടങ്ങിയ ഔട്ട്പുട്ട് വിഭാഗങ്ങൾ കണ്ടെത്തുന്നു
- `open-sse/services/compression/engines/rtk/filters/`-ൽ നിന്നുള്ള 49 JSON ഫിൽട്ടറുകൾ പ്രയോഗിക്കുന്നു
- RTK-ശൈലിയിലുള്ള ഡിക്ലറേറ്റീവ് പൈപ്പ്ലൈനിനെ പിന്തുണയ്ക്കുന്നു: ANSI നീക്കംചെയ്യൽ, പകരംവയ്ക്കൽ, match-output ഷോർട്ട് സർക്യൂട്ട്, വരികൾ നീക്കംചെയ്യൽ/നിലനിർത്തൽ, ഓരോ വരിയുടെയും ചുരുക്കൽ, head/tail/max-line ചുരുക്കൽ, ശൂന്യമായിരിക്കുമ്പോഴുള്ള ഫാൾബാക്ക്
- `.rtk/filters.json`-ലെ ട്രസ്റ്റ്-ഗേറ്റഡ് പ്രോജക്റ്റ് ഫിൽട്ടറുകളെയും `DATA_DIR/rtk/filters.json`-ലെ ഗ്ലോബൽ ഫിൽട്ടറുകളെയും പിന്തുണയ്ക്കുന്നു
- ANSI സീക്വൻസുകൾ, പുരോഗതി സംബന്ധിച്ച അനാവശ്യ വിവരങ്ങൾ, ആവർത്തിക്കുന്ന വരികൾ, പ്രയോജനകരമല്ലാത്ത ബോയിലർപ്ലേറ്റ് എന്നിവ നീക്കം ചെയ്യുന്നു
- നടപടിയെടുക്കാൻ സഹായിക്കുന്ന പരാജയങ്ങൾ, മുന്നറിയിപ്പുകൾ, സംഗ്രഹങ്ങൾ, മാറിയ ഫയലുകൾ, അവസാന ഭാഗത്തെ സന്ദർഭം എന്നിവ സംരക്ഷിക്കുന്നു
- പ്രാമാണീകരിച്ച മാനേജ്മെന്റ് റൂട്ടുകളിലൂടെ വീണ്ടെടുക്കലിനോ ഡീബഗ്ഗിംഗിനോ വേണ്ടി തിരുത്തിമറച്ച അസംസ്കൃത ഔട്ട്പുട്ട് ഐച്ഛികമായി നിലനിർത്താൻ കഴിയും
ഡാഷ്ബോർഡിൽ ഇത് `Dashboard -> Context & Cache -> RTK` എന്നിടത്താണ്.
കസ്റ്റം ഫിൽട്ടറുകൾ, ട്രസ്റ്റ്, പരിശോധന, അസംസ്കൃത ഔട്ട്പുട്ട് വീണ്ടെടുക്കൽ എന്നിവയുടെ പ്രവർത്തന വിശദാംശങ്ങൾ [`RTK_COMPRESSION.md`](./RTK_COMPRESSION.md)-ൽ ലഭ്യമാണ്.
കമാൻഡ്-ഔട്ട്പുട്ട് കംപ്രഷനിൽ `60-90%` ലാഭം RTK അപ്സ്ട്രീം റിപ്പോർട്ട് ചെയ്യുന്നു. അതിന്റെ README ഉദാഹരണത്തിൽ, 30 മിനിറ്റ് ദൈർഘ്യമുള്ള Claude Code സെഷൻ `~118,000` ടോക്കണുകളിൽ നിന്ന് `~23,900` ആയി കുറയുന്നു, അഥവാ `79.7%` ലാഭിക്കുന്നു.
## LLMLingua-2 (അർത്ഥാധിഷ്ഠിത വെട്ടിച്ചുരുക്കൽ)
നിയമാധിഷ്ഠിതമായ Caveman, RTK എഞ്ചിനുകൾക്ക് പൂരകമായി, ചെറിയ ONNX ടോക്കൺ ക്ലാസിഫയർ ഉപയോഗിച്ച് ഗദ്യത്തിൽ **അർത്ഥാധിഷ്ഠിത ടോക്കൺ വെട്ടിച്ചുരുക്കൽ** LLMLingua-2 മോഡ് നിർവഹിക്കുന്നു:
- സിസ്റ്റം സന്ദേശങ്ങളല്ലാത്തവയിലെ ഗദ്യം മാത്രം കംപ്രസ് ചെയ്യുന്നു; ഫെൻസ് ചെയ്ത കോഡ് ബ്ലോക്കുകളും സംരക്ഷിക്കപ്പെടുന്ന മറ്റ് ഘടകങ്ങളും ഒരിക്കലും മാറ്റില്ല
- `@atjsh/llmlingua-2` ബാക്കെൻഡ് (`@huggingface/transformers` വഴിയുള്ള ONNX) ഒരു വർക്കർ ത്രെഡിൽ പ്രവർത്തിപ്പിക്കുന്നതിനാൽ, മോഡൽ ഇൻഫറൻസ് റിക്വസ്റ്റ് ഇവന്റ് ലൂപ്പിനെ ഒരിക്കലും തടയില്ല
- ഇത് **സ്റ്റാക്ക് ചെയ്യാവുന്നതാണ്** (`stackPriority` 35): സ്റ്റാക്ക് ചെയ്ത പൈപ്പ്ലൈനിൽ, ഘടനാപരമായ എഞ്ചിനുകൾക്ക് (CCR, session-dedup, headroom, Caveman) ശേഷവും `ultra`-യ്ക്ക് മുമ്പുമായി ഇത് പ്രവർത്തിക്കുന്നു; കാരണം, ഘടനാപരമായി ഇതിനകം കംപ്രസ് ചെയ്ത ടെക്സ്റ്റിലാണ് അർത്ഥാധിഷ്ഠിത വെട്ടിച്ചുരുക്കൽ ഏറ്റവും ഫലപ്രദമാകുന്നത് — ഉദാ. `rtk -> caveman -> llmlingua`
- **ഏത് പിശകുണ്ടായാലും ഫെയിൽ-ഓപ്പൺ ചെയ്യുന്നു** (നഷ്ടപ്പെട്ട ഐച്ഛിക ഡിപെൻഡൻസികൾ, വർക്കർ സ്പോൺ, മോഡൽ ലോഡ്, ഇൻഫറൻസ്, അല്ലെങ്കിൽ ടൈംഔട്ട്) → പിശകിന് പകരം യഥാർത്ഥ ടെക്സ്റ്റ് മാറ്റമില്ലാതെ തിരികെ നൽകുന്നു
എഞ്ചിൻ സ്ഥാനം: `open-sse/services/compression/engines/llmlingua/`. ഡാഷ്ബോർഡിൽ ഇത് `Dashboard -> Context & Cache -> LLMLingua` എന്നിടത്താണ്.
### മോഡലുകൾ
ഡിഫോൾട്ട് മോഡൽ **TinyBERT** (`atjsh/llmlingua-2-js-tinybert-meetingbank`, ~57 MB, വേഗതയേറിയത്) ആണ്. കൂടുതൽ കൃത്യതയുള്ള **BERT-base** മോഡൽ (`Arcoldd/llmlingua4j-bert-base-onnx`, ~710 MB), എഞ്ചിൻ കോൺഫിഗിലെ `model` ഫീൽഡ് വഴി ലഭ്യമാണ്. ആദ്യ കോളിൽ (`modelStore.ts`), തിരഞ്ഞെടുത്ത മോഡൽ HuggingFace Hub-ൽ നിന്ന് `${DATA_DIR}/models/llmlingua`-ലേക്ക് `@huggingface/transformers` ആവശ്യാനുസരണം ഡൗൺലോഡ് ചെയ്യുന്നു; പകരം, `modelPath` കോൺഫിഗ് ഓവർറൈഡ് അതിനെ ഒരു ലോക്കൽ പകർപ്പിലേക്ക് ചൂണ്ടിക്കാണിക്കുന്നു (ഓഫ്ലൈൻ / എയർ-ഗ്യാപ്ഡ് ഇൻസ്റ്റാളുകൾ).
### ഐച്ഛിക ഡിപെൻഡൻസികളും ആവശ്യാനുസൃത ഇൻസ്റ്റാളേഷനും
വെട്ടിമാറ്റാവുന്ന LLMLingua റൺടൈം പിയർ സ്റ്റാക്ക് **ഐച്ഛികമാണ്**. രണ്ട് പാക്കേജുകൾ `package.json`-ൽ `optionalDependencies` ആയി പ്രഖ്യാപിക്കുകയും പ്രൊഡക്ഷൻ ബിൽഡ് അവയെ **ബാഹ്യമായി** നിലനിർത്തുകയും ചെയ്യുന്നു (`scripts/build/prepublish.ts` അവയെ ബണ്ടിൽ ചെയ്യുന്നില്ല):
| പാക്കേജ് | പതിപ്പ് (പിൻ) | കുറിപ്പുകൾ |
| -------------------- | ------------- | --------------------------------------------------------- |
| `@atjsh/llmlingua-2` | `2.0.5` | എൻട്രി പാക്കേജ്; മറ്റുള്ളവയെ പിയറുകളായി പ്രഖ്യാപിക്കുന്നു |
| `js-tiktoken` | `^1.0.20` | ടോക്കണൈസർ |
`@huggingface/transformers` പതിപ്പ് `^4.2.0`-ൽ പിൻ ചെയ്തിരിക്കുന്നു (ലോക്കൽ എംബെഡ്ഡിങ്സ് പാത്തുമായി പങ്കിടുകയും സ്റ്റാൻഡലോൺ ബണ്ടിലിൽ ട്രേസ് ചെയ്യപ്പെടുകയും ചെയ്യുന്നു); `@atjsh/llmlingua-2@2.0.5`, `"^3.5.2 || ^4.0.0"` ഉപയോഗിച്ച് അതിനെ പിയർ ചെയ്യുന്നതിനാൽ Transformers.js v3, v4 എന്നിവ രണ്ടും പിന്തുണയ്ക്കുന്നു. 2.0.4 മുതൽ, `@atjsh/llmlingua-2`-ന് ഇനി `@tensorflow/tfjs` ആവശ്യമില്ല; ഇതിലൂടെ SLM സ്റ്റാക്കിലെ ഏറ്റവും വലിയ ഒറ്റ സംഭാവനയായ TensorFlow.js നീക്കംചെയ്യപ്പെട്ടു. മുകളിലെ രണ്ട് പാക്കേജുകൾ മാത്രമാണ് വെട്ടിമാറ്റാവുന്ന SLM പിയറുകൾ. ഐച്ഛിക ഡിപെൻഡൻസികൾ ഒഴിവാക്കിയിട്ടില്ലെങ്കിൽ, സാധാരണ `npm install` (dev) ഐച്ഛിക സ്റ്റാക്ക് സ്വയമേവ ഇൻസ്റ്റാൾ ചെയ്യുന്നു.
**ആവശ്യാനുസൃതമാകാനുള്ള കാരണം:** വലുപ്പം കുറവായി നിലനിർത്തുന്നതിന് npm-ൽ പ്രസിദ്ധീകരിക്കുന്ന പാക്കേജ്, സ്റ്റാൻഡലോൺ ബണ്ടിൽ, Docker ഇമേജ് എന്നിവ ഈ ഡിപെൻഡൻസികൾ **ഇല്ലാതെയാണ്** വിതരണം ചെയ്യുന്നത്. അവ ഇല്ലാതിരിക്കുമ്പോൾ, വർക്കറിന്റെ ഡിപെൻഡൻസി ഗേറ്റ് (`worker.ts`-ലെ ഒരു `@atjsh/llmlingua-2` റിസോൾവ് പ്രോബ്) പരാജയപ്പെടുകയും എഞ്ചിൻ **നിശ്ശബ്ദമായി ഫെയിൽ-ഓപ്പൺ ചെയ്യുകയും** ചെയ്യുന്നു — LLMLingua തിരഞ്ഞെടുക്കുന്നത് ഒന്നും ചെയ്യാത്ത പ്രവർത്തനമായി മാറുന്നു (ടെക്സ്റ്റ് മാറ്റമില്ലാതെ തിരികെ നൽകുന്നു, പിശക് ലോഗ് ചെയ്യുന്നില്ല). വെട്ടിമാറ്റിയ എൻവയോൺമെന്റിൽ ഇത് സജീവമാക്കാൻ, ഐച്ഛിക സ്റ്റാക്ക് ഇൻസ്റ്റാൾ ചെയ്യുക:
```bash
# package.json optionalDependencies-ൽ പ്രഖ്യാപിച്ച പതിപ്പുകളിലേക്ക് പിൻ ചെയ്യുക
npm install @atjsh/llmlingua-2@2.0.5 js-tiktoken
```
`@tensorflow/tfjs` നീക്കംചെയ്തത് (2.0.4+) മുമ്പ് ആധിപത്യം പുലർത്തിയിരുന്ന ~800 MB സംഭാവന ഒഴിവാക്കുന്നു — ശേഷിക്കുന്ന ഫുട്പ്രിന്റിൽ transformers.js + onnxruntime-node റൺടൈമുകളും, ആദ്യ ഉപയോഗത്തിൽ ഡൗൺലോഡ് ചെയ്യുന്ന TinyBERT മോഡലും (~57 MB) ഉൾപ്പെടുന്നു (npm വഴിയല്ല).
ഓരോ എൻവയോൺമെന്റിലും:
- **Dev / `npm install`** — നിങ്ങൾ `--omit=optional`
(അല്ലെങ്കിൽ `--no-optional`) നൽകിയിട്ടില്ലെങ്കിൽ സ്വയമേവ ഇൻസ്റ്റാൾ ചെയ്യപ്പെടും. നടപടിയൊന്നും ആവശ്യമില്ല.
- **Global npm (`npm i -g omniroute`) / standalone** — ഇൻസ്റ്റാൾ ചെയ്ത പാക്കേജ് ഡയറക്ടറിക്കുള്ളിൽ
മുകളിലുള്ള ഇൻസ്റ്റാൾ കമാൻഡ് പ്രവർത്തിപ്പിക്കുക, അല്ലെങ്കിൽ ഓപ്ഷണൽ ഡിപെൻഡൻസികൾ ഒഴിവാക്കാതെ വീണ്ടും ഇൻസ്റ്റാൾ ചെയ്യുക.
- **Docker** — ഡെറൈവ്ഡ് ഇമേജ് ലെയറിൽ ഇൻസ്റ്റാൾ കമാൻഡ് ചേർക്കുക; പ്രസിദ്ധീകരിച്ച ഇമേജ്
രൂപകൽപ്പനപ്രകാരം സ്ലിം ആയാണ് വിതരണം ചെയ്യുന്നത്.
- **VPS (PM2)** — ആപ്പിന്റെ `node_modules`-ലേക്ക് ഇൻസ്റ്റാൾ ചെയ്യുക, തുടർന്ന് വർക്കർ
ഗേറ്റ് വീണ്ടും പരിശോധിക്കുന്നതിനായി പ്രോസസ് പുനരാരംഭിക്കുക.
- **Raw Next standalone (`npm run build``.build/next/standalone/server.js`)** — സ്റ്റാൻഡ്എലോൺ
ട്രേസിൽ വർക്കറോ ഓപ്ഷണൽ ഡിപെൻഡൻസികളോ ഉൾപ്പെടുന്നില്ല, അതിനാൽ എൻജിൻ നിശ്ശബ്ദമായി ഫെയിൽ-ഓപ്പൺ ചെയ്യുന്നു.
`scripts/build/colocate-standalone.mjs` രണ്ടും വീണ്ടും പ്രയോഗിക്കുന്നു (worker esbuild +
ഓപ്ഷണൽ-ഡിപെൻഡൻസി ക്ലോഷർ സ്റ്റാൻഡ്എലോൺ ട്രീയിലേക്ക്); ഓരോ ബിൽഡിനും ശേഷം
`postbuild` npm ഹുക്ക് വഴി ഇത് സ്വയമേവ പ്രവർത്തിക്കുന്നു. ഐഡംപൊട്ടന്റ് ആണ്; ഡിപെൻഡൻസികൾ ഇല്ലെങ്കിൽ ഫെയിൽ-സോഫ്റ്റ് ചെയ്യുന്നു.
**ഇത് സജീവമാണെന്ന് സ്ഥിരീകരിക്കുക:** LLMLingua തിരഞ്ഞെടുത്തിരിക്കുമ്പോൾ, യഥാർത്ഥ ഗദ്യം വാസ്തവത്തിൽ ചുരുങ്ങുന്നു (എൻജിൻ
ഫെയിൽ-ഓപ്പൺ ചെയ്യുന്നത് നിർത്തുന്നു), കൂടാതെ ആദ്യ റിക്വസ്റ്റ് മോഡൽ
`${DATA_DIR}/models/llmlingua`-ലേക്ക് ഡൗൺലോഡ് ചെയ്യാൻ കാരണമാകുന്നു. ഗേറ്റ് മനഃപൂർവം `@atjsh/llmlingua-2` മാത്രം പരിശോധിക്കുന്നു —
മറ്റ് പിയറുകൾ ESM-only ആയതിനാൽ അവ നിലവിലുണ്ടെങ്കിലും `require.resolve` അവയിൽ എറർ ത്രോ ചെയ്യുന്നു — അതിനാൽ
`import()` സമയത്ത് ഏതെങ്കിലും പിയർ യഥാർത്ഥത്തിൽ ഇല്ലെങ്കിൽ വർക്കർ തുടർന്നും ഫെയിൽ-ഓപ്പൺ ചെയ്യുന്നു.
## സ്റ്റാക്ക് ചെയ്ത പൈപ്പ്ലൈനുകൾ
സ്റ്റാക്ക് ചെയ്ത മോഡ് പൈപ്പ്ലൈൻ ഘട്ടങ്ങൾ ക്രമത്തിൽ പ്രവർത്തിപ്പിക്കുന്നു. ഡിഫോൾട്ട് ഇതാണ്:
```txt
rtk -> caveman
```
ഒരു പ്രോംപ്റ്റ് കമാൻഡ് ഔട്ട്പുട്ടിനൊപ്പം മനുഷ്യന്റെയോ അസിസ്റ്റന്റിന്റെയോ ഗദ്യവും സംയോജിപ്പിക്കുന്ന കോഡിംഗ്-ഏജന്റ് സെഷനുകൾക്കായി ഇത് ഉപയോഗിക്കുക. ആദ്യം RTK അനാവശ്യമായി ബഹളമുള്ള ടൂൾ ലോഗുകൾ കുറയ്ക്കുന്നു, തുടർന്ന് Caveman ശേഷിക്കുന്ന സ്വാഭാവിക ഭാഷ കംപ്രസ് ചെയ്യുന്നു.
കംപ്രഷൻ ക്രമീകരണങ്ങളിലെ `stackedPipeline` ഉപയോഗിച്ചോ കംപ്രഷൻ കോംബോകൾ വഴിയോ പൈപ്പ്ലൈൻ ഘട്ടങ്ങൾ കോൺഫിഗർ ചെയ്യാം.
രണ്ട് എൻജിനുകളും യോഗ്യമായ ഒരേ പേലോഡ് കുറയ്ക്കുമ്പോൾ, ലാഭം സംയുക്തമായി വർധിക്കുന്നു:
```txt
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 ആക്സസിബിലിറ്റി ട്രീ ഫിൽട്ടർ
MCP ആക്സസിബിലിറ്റി-ട്രീ സ്മാർട്ട് ഫിൽട്ടർ പ്രോംപ്റ്റുകളിലോ കോൺടെക്സ്റ്റിലോ അല്ല, MCP **ടൂൾ ഫലങ്ങളിൽ** പ്രവർത്തിക്കുന്ന ഒരു പോസ്റ്റ്-എക്സിക്യൂഷൻ കംപ്രഷൻ ലെയറാണ്. Playwright, computer-use, ബ്രൗസർ-ഓട്ടോമേഷൻ MCP സെർവറുകൾ തുടങ്ങിയ ടൂളുകൾ തിരികെ നൽകുന്ന വിശദമായ ആക്സസിബിലിറ്റി-ട്രീ, ബ്രൗസർ സ്നാപ്പ്ഷോട്ട് പേലോഡുകളെയാണ് ഇത് ലക്ഷ്യമിടുന്നത്.
### ഇത് ചെയ്യുന്നത്
1. **അനാവശ്യ ഉള്ളടക്കം നീക്കംചെയ്യൽ** — ശൂന്യമായ പൊതുവായ/ടെക്സ്റ്റ് എൻട്രികൾ (`- generic:`, `- text: ""`) നീക്കംചെയ്യുന്നു
2. **സിബ്ലിങ് ചുരുക്കൽ** — തുടർച്ചയായ ≥ `collapseThreshold` (ഡിഫോൾട്ട് 30) വരികൾ ഘടനാപരമായ ആവർത്തനങ്ങളാണെങ്കിൽ, അവയെ ആദ്യത്തെ `collapseKeepHead` (ഡിഫോൾട്ട് 10) വരികൾ + എണ്ണത്തിന്റെ സംഗ്രഹം + അവസാനത്തെ `collapseKeepTail` (ഡിഫോൾട്ട് 5) വരികൾ എന്ന രീതിയിൽ ചുരുക്കുന്നു
3. **റെഫ് സംരക്ഷണം** — Playwright/computer-use-ന് ആവശ്യമായ `[ref=eXX]` ആങ്കറുകളിൽ ഒരിക്കലും മാറ്റം വരുത്തുന്നില്ല
4. **കർശനമായ വെട്ടിച്ചുരുക്കൽ** — ചുരുക്കിയതിനുശേഷവും ടെക്സ്റ്റ് `maxTextChars` (ഡിഫോൾട്ട് 50,000) കവിയുകയാണെങ്കിൽ, ഏജന്റിന് പ്രവർത്തനം തുടരാനാകുന്നവിധം ഒരു നാവിഗേഷൻ സൂചനയോടെ അത് വെട്ടിച്ചുരുക്കുന്നു
### എൻജിന്റെ സ്ഥാനം
```txt
open-sse/services/compression/engines/mcpAccessibility/
index.ts ← smartFilterText() എൻട്രി പോയിന്റ്
collapseRepeated.ts ← സിബ്ലിങ്-ചുരുക്കൽ അൽഗോരിതം
constants.ts ← DEFAULT_MCP_ACCESSIBILITY_CONFIG
```
### കോൺഫിഗറേഷൻ
ഗ്ലോബൽ ക്രമീകരണങ്ങളിലെ `compression.mcpAccessibility` (മൈഗ്രേഷൻ 056) ആണ് ഇത് നിയന്ത്രിക്കുന്നത്. ഡിഫോൾട്ട് കോൺഫിഗറേഷൻ:
```json
{
"enabled": true,
"maxTextChars": 50000,
"collapseThreshold": 30,
"collapseKeepHead": 10,
"collapseKeepTail": 5,
"minLengthToProcess": 2000
}
```
`type` `"text"` ആയതും ദൈർഘ്യം `minLengthToProcess` കവിയുന്നതുമായ ടൂൾ-ഫല പേലോഡുകൾക്ക് മാത്രമാണ് ഫിൽട്ടർ പ്രയോഗിക്കുന്നത്. ഇത് പ്രോംപ്റ്റ് കംപ്രഷനെയോ അഭ്യർത്ഥനാ പേലോഡുകളെയോ ബാധിക്കുന്നില്ല.
### പ്രതീക്ഷിക്കുന്ന ലാഭം
പേജിന്റെ സങ്കീർണ്ണതയെ ആശ്രയിച്ച് ബ്രൗസർ സ്നാപ്പ്ഷോട്ട് ടൂൾ ഫലങ്ങളിൽ 6080% ലാഭം. ചുരുക്കൽ അൽഗോരിതത്തിന് വരികളുടെ എണ്ണത്തെ അടിസ്ഥാനമാക്കി O(n) സങ്കീർണ്ണതയുണ്ട്, കൂടാതെ അവഗണിക്കാവുന്നത്ര കുറഞ്ഞ ലേറ്റൻസി മാത്രമേ ഇത് ചേർക്കുന്നുള്ളൂ.
### ഈ ഫിൽട്ടറും മുകളിലെ കംപ്രഷൻ എൻജിനുകളും തമ്മിലുള്ള വ്യത്യാസം
| വശം | Caveman / RTK / Stacked | MCP ആക്സസിബിലിറ്റി ഫിൽട്ടർ |
| ------------- | ---------------------------------------- | -------------------------------------- |
| ലക്ഷ്യം | അഭ്യർത്ഥനാ പ്രോംപ്റ്റുകൾ / കോൺടെക്സ്റ്റ് | MCP ടൂൾ ഫലങ്ങൾ |
| ട്രിഗർ | കംപ്രഷൻ മോഡ് ക്രമീകരണം | `compression.mcpAccessibility.enabled` |
| വ്യാപ്തി | എല്ലാ SSE സന്ദേശങ്ങളും | ടൂൾ ഫലങ്ങൾ മാത്രം |
| റെഫ് ആങ്കറുകൾ | ബാധകമല്ല | നിബന്ധനകളില്ലാതെ സംരക്ഷിക്കുന്നു |
---
## കംപ്രഷൻ കോംബോകൾ
കംപ്രഷൻ കോംബോകൾ എന്നത് റൂട്ടിംഗ് കോംബോകൾക്ക് അസൈൻ ചെയ്യാവുന്ന പേരുള്ള കംപ്രഷൻ പ്രൊഫൈലുകളാണ്:
- `compression_combos`: മോഡ്, പൈപ്പ്ലൈൻ, RTK കോൺഫിഗറേഷൻ, ഭാഷാ കോൺഫിഗറേഷൻ, ഡിഫോൾട്ട് മാർക്കർ എന്നിവ സംഭരിക്കുന്നു
- `compression_combo_assignments`: ഒരു കംപ്രഷൻ കോംബോയെ ഒരു റൂട്ടിംഗ് കോംബോയുമായി മാപ്പ് ചെയ്യുന്നു
- പൊതുവായ കോംബോ ഓവർറൈഡുകൾക്ക് മുമ്പ്, അസൈൻ ചെയ്ത ഒരു കംപ്രഷൻ കോംബോയെ റൺടൈം ഇന്റഗ്രേഷൻ പരിഹരിക്കുന്നു
- അനലിറ്റിക്സിൽ `compression_combo_id`, `engine` എന്നിവ ഉൾപ്പെടുന്നു
ഡാഷ്ബോർഡ് സ്ഥാനം: `Dashboard -> Context & Cache -> Compression Combos`.
## API ഉപരിതലം
| റൂട്ട് | ഉദ്ദേശ്യം |
| -------------------------------------- | ------------------------------------------------------------------ |
| `/api/settings/compression` | ആഗോള കംപ്രഷൻ ക്രമീകരണങ്ങൾ (`mcpAccessibility` കോൺഫിഗറേഷൻ ഉൾപ്പെടെ) |
| `/api/compression/preview` | ഏത് കംപ്രഷൻ മോഡും പ്രിവ്യൂ ചെയ്യുക |
| `/api/compression/language-packs` | ലഭ്യമായ Caveman ഭാഷാ പാക്കുകൾ പട്ടികപ്പെടുത്തുക |
| `/api/context/caveman/config` | Caveman ക്രമീകരണങ്ങളുടെ അപരനാമം |
| `/api/context/rtk/config` | RTK ഡിഫോൾട്ടുകളും ക്രമീകരണങ്ങളും |
| `/api/context/rtk/filters` | RTK ഫിൽട്ടർ കാറ്റലോഗ് |
| `/api/context/rtk/test` | RTK പ്രിവ്യൂ/ടെസ്റ്റ് എൻഡ്പോയിന്റ് |
| `/api/context/rtk/raw-output/[id]` | ഓതന്റിക്കേഷൻ ആവശ്യമായ, തിരുത്തി മറച്ച റോ-ഔട്ട്പുട്ട് വീണ്ടെടുക്കൽ |
| `/api/context/combos` | കംപ്രഷൻ കോംബോ CRUD |
| `/api/context/combos/[id]/assignments` | റൂട്ടിംഗ്-കോംബോ അസൈൻമെന്റ് CRUD |
| `/api/context/analytics` | കംപ്രഷൻ അനലിറ്റിക്സ് അപരനാമം |
മാനേജ്മെന്റ് റൂട്ടുകൾക്ക് മാനേജ്മെന്റ് ഓതന്റിക്കേഷനോ API-key നയ പരിശോധനകളോ ആവശ്യമാണ്.
## MCP ടൂളുകൾ
കംപ്രഷൻ അഞ്ച് MCP ടൂളുകൾ ലഭ്യമാക്കുന്നു:
| ടൂൾ | സ്കോപ്പ് | ഉദ്ദേശ്യം |
| ----------------------------------- | ------------------- | ----------------------------------------------------- |
| `omniroute_compression_status` | `read:compression` | ക്രമീകരണങ്ങൾ, അനലിറ്റിക്സ്, കാഷ് സ്ഥിതിവിവരക്കണക്കുകൾ |
| `omniroute_compression_configure` | `write:compression` | ആഗോള ക്രമീകരണങ്ങൾ അപ്ഡേറ്റ് ചെയ്യുക |
| `omniroute_set_compression_engine` | `write:compression` | മോഡും ഐച്ഛിക പൈപ്പ്ലൈനും സജ്ജമാക്കുക |
| `omniroute_list_compression_combos` | `read:compression` | കംപ്രഷൻ കോംബോകൾ പട്ടികപ്പെടുത്തുക |
| `omniroute_compression_combo_stats` | `read:compression` | കോംബോ/എഞ്ചിൻ അനലിറ്റിക്സ് വായിക്കുക |
## വ്യാപ്തിയും ഒഴിവാക്കലുകളും
**എംബെഡ്ഡിങ്ങുകൾ ഒരിക്കലും കംപ്രസ് ചെയ്യപ്പെടുന്നില്ല.** `open-sse/handlers/embeddings.ts` ഒരിക്കലും ഒരു
കംപ്രഷൻ എഞ്ചിനെയും വിളിക്കുന്നില്ല — അഭ്യർത്ഥന/പ്രതികരണ ബോഡികൾ മാറ്റമൊന്നുമില്ലാതെ നേരിട്ട് എക്സിക്യൂട്ടറിലേക്ക് കടന്നുപോകുന്നു.
ഇന്ന് ഇത് ഘടനാപരമാണ് (എംബെഡ്ഡിങ്ങുകൾക്കും ചാറ്റ് കംപ്ലീഷനുകൾക്കും വ്യത്യസ്ത ഹാൻഡ്ലറുകളാണ് ഉള്ളത്), ഒരു
റൺടൈം പരിശോധനയല്ല; എന്നിരുന്നാലും, #8034-ലെ വെക്റ്റർ-ഡിസ്റ്റോർഷൻ ആശങ്കയ്ക്ക്
എംബെഡ്ഡിങ്ങുകളുടെ പാതയിൽ ബാധിക്കാവുന്ന ഉപരിതലമൊന്നുമില്ലെന്നാണ് ഇതിനർത്ഥം.
**ഓരോ മോഡലിനും/എൻഡ്പോയിന്റിനുമുള്ള ഒഴിവാക്കൽ ഫിൽട്ടർ (#8034).** ചാറ്റ് കംപ്ലീഷനുകൾക്കായി, ഒരിക്കലും
കംപ്രസ് ചെയ്യാൻ പാടില്ലാത്ത മോഡൽ ids / `provider/model` ടാർഗെറ്റുകൾ ഒരു ഓപ്പറേറ്റർക്ക് നിർദ്ദേശിക്കാം — ഭാവിയിൽ
എംബെഡ്ഡിങ്ങുകളോട് ചേർന്നുള്ള ഒരു പാതയിലേക്ക് കംപ്രഷൻ കൂടുതൽ അടുത്തായി ബന്ധിപ്പിക്കപ്പെടുകയാണെങ്കിൽ പ്രയോജനപ്പെടുന്ന
ഒരു സുരക്ഷാ നിയന്ത്രണമാണിത്; കൂടാതെ, ബൈറ്റ്-ഫോർ-ബൈറ്റ് കൃത്യമായ പ്രോംപ്റ്റ് നിർണായകമായ ഏത് മോഡലിനും ഇത്
പൊതുവായി ഉപയോഗപ്രദമാണ് (ഡിറ്റർമിനിസ്റ്റിക് ഇവാലുകൾ, കാഷ്-സെൻസിറ്റീവ് പ്രിഫിക്സുകൾ തുടങ്ങിയവ).
- ക്രമീകരണ ഫീൽഡ്: ആഗോള കംപ്രഷൻ കോൺഫിഗറേഷനിലെ `exclusions?: string[]`
(`GET`/`PUT /api/settings/compression`), നിലവിലുള്ള `key_value` കംപ്രഷൻ
നെയിംസ്പേസ് (`src/lib/db/compression.ts`) വഴി നിലനിർത്തുന്നു — പുതിയ പട്ടികയൊന്നുമില്ല.
- ഡാഷ്ബോർഡ് ടാബ്: **Dashboard → Compression → Exclusions**
(`/dashboard/compression/exclusions`).
- പാറ്റേൺ സിന്റാക്സ്: `*` മാത്രമാണ് വൈൽഡ്കാർഡ്. ഒരു പാറ്റേണിലുള്ള മറ്റെല്ലാ regex മെറ്റാക്യാരക്ടറുകളും
മാച്ച് ചെയ്യുന്നതിന് മുമ്പ് എസ്കേപ്പ് ചെയ്യപ്പെടുന്നു; അതിനാൽ `gpt-5.6` ലിറ്ററൽ സ്ട്രിങ്ങിനെ മാത്രമേ മാച്ച് ചെയ്യൂ,
ഒരിക്കലും `gpt-5x6`-നെ മാച്ച് ചെയ്യില്ല (ReDoS-സുരക്ഷിതം, പരിധിയുള്ളത്, നെസ്റ്റഡ് ക്വാണ്ടിഫയറുകളില്ല). പാറ്റേണുകൾ
മോഡൽ id-നോടും `provider/model` കോമ്പോസിറ്റിനോടും കേസ് പരിഗണിക്കാതെ മാച്ച് ചെയ്യുന്നു — `gpt-5-6`,
`openai/gpt-5-6`, `openai/*` എന്നിവയെല്ലാം പ്രവർത്തിക്കും; `*` മാത്രം നൽകിയാൽ എല്ലാ മോഡലുകളും ഒഴിവാക്കപ്പെടും.
- മാച്ചിംഗ്: `open-sse/services/compression/exclusions.ts`-ലെ `isCompressionExcluded()` /
`normalizeCompressionExclusions()`. കംപ്രഷൻ ക്രമീകരണങ്ങൾ പരിഹരിച്ചതിന് തൊട്ടുപിന്നാലെ,
**ഏതെങ്കിലും എഞ്ചിൻ പ്രവർത്തിക്കുന്നതിന് മുമ്പ്**, `chatCore.ts` ഒഴിവാക്കപ്പെട്ട ടാർഗെറ്റ് പരിശോധിക്കുകയും ഒരു മാച്ചിനെ
കംപ്രഷൻ ആഗോളമായി പ്രവർത്തനരഹിതമാക്കിയതുപോലെ തന്നെ പരിഗണിക്കുകയും ചെയ്യുന്നു — അഭ്യർത്ഥന ബോഡി ബൈറ്റ് തലത്തിൽ
സമാനമാണെന്ന് തെളിയിക്കാനാകും. അനലിറ്റിക്സിൽ ദൃശ്യമാക്കുന്നതിനായി ഈ ഒഴിവാക്കൽ
`writeCompressionSkip(..., "excluded")` വഴി രേഖപ്പെടുത്തുന്നു.
- ഡിഫോൾട്ട് (ശൂന്യമായ/ഇല്ലാത്ത പട്ടിക): #8034-ന് മുമ്പുള്ള പെരുമാറ്റത്തിന് സമാനം — ഒന്നും ഒഴിവാക്കപ്പെടുന്നില്ല.
## അറിയപ്പെടുന്ന പരിമിതികൾ
- **LLMLingua-2 (SLM)-ന് ഒരേ സ്ഥലത്ത് വിന്യസിച്ച optional deps ആവശ്യമാണ്.** `@atjsh/llmlingua-2` + peers എന്നിവ
`dist/node_modules`-ലേക്ക് ഒരുമിച്ച് വിന്യസിച്ചാൽ മാത്രമേ worker ഒരു production build-ൽ പ്രവർത്തിക്കൂ
(`scripts/build/colocateOptionals.mjs`, #4286 കാണുക). അവ ഇല്ലെങ്കിൽ
engine fail-open ആകുന്നു (യഥാർത്ഥ ടെക്സ്റ്റ് തന്നെ തിരികെ നൽകുന്നു). Worker resolution ഇനി
`import.meta.url`-നെ ആശ്രയിക്കുന്നില്ല (standalone bundle-ൽ അത് പ്രവർത്തനരഹിതമാകുന്നു) — പകരം runtime
cwd / `argv[1]` അടിസ്ഥാനമാക്കുന്നു.
- **Caveman language packs ആയ `de` / `fr` / `ja` ഭാഗികമാണ്.** അവയിൽ `context` +
`filler` + `structural` നിയമങ്ങൾ ഉൾപ്പെടുന്നുണ്ടെങ്കിലും `dedup` / `ultra` packs ഇല്ല; അതിനാൽ ആ ഭാഷകളിൽ
`ultra` intensity, `full`-നേക്കാൾ ശക്തമല്ല (അവ സ്വന്തം നിയമങ്ങൾ മാത്രമാണ് ഉപയോഗിക്കുന്നത് —
വിദേശഭാഷാ ടെക്സ്റ്റ് വികൃതമാക്കാനിടയുള്ള ഇംഗ്ലീഷ് `dedup`/`ultra` നിയമങ്ങളിലേക്കുള്ള നിശ്ശബ്ദ
fall-back ഇല്ല). `en` / `es` / `id` / `pt-BR` പൂർണ്ണമാണ്. ഭാഗികമായ packs-ലേക്ക്
`dedup.json` + `ultra.json` സംഭാവനകൾ സ്വാഗതം ചെയ്യുന്നു.
- **Stacked telemetry, compression നടത്തിയ engines മാത്രമാണ് പട്ടികപ്പെടുത്തുന്നത്.** Engine പ്രവർത്തിച്ചെങ്കിലും
0 % ലാഭം മാത്രം നൽകിയ stacked-pipeline ഘട്ടം `stats:null` തിരികെ നൽകുന്നതിനാൽ
`engineBreakdown`-ൽ പ്രത്യക്ഷപ്പെടില്ല — ഒഴിവാക്കിയ ഒരു ഘട്ടത്തിൽ നിന്ന് ഇതിനെ വേർതിരിച്ചറിയാനാവില്ല.
"പ്രവർത്തിച്ചു, 0 %" എന്നതും "ഒഴിവാക്കി" എന്നതും വേർതിരിച്ചറിയാൻ breakdown-model-ൽ മാറ്റം
ആവശ്യമായതിനാൽ അത് പിന്നീട് പരിഗണിക്കുന്നതിനായി മാറ്റിവെച്ചിരിക്കുന്നു.
## സാധൂകരണം
ഈ മേഖലയ്ക്കായുള്ള കേന്ദ്രീകൃത gates ഇവയാണ്:
```bash
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
```