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

56 KiB
Raw Blame History

🗜️ Prompt Compression Guide — OmniRoute (සිංහල)

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


සුදුසුකම් ලබන සන්දර්භයෙන් 15-95%ක් ස්වයංක්රීයව ඉතිරි කරගන්න. ඉක්මන් දළ විශ්ලේෂණයක් සඳහා, README සම්පීඩන කොටස බලන්න.

දළ විශ්ලේෂණය

OmniRoute විසින් ඉහළ මට්ටමේ සැපයුම්කරුවන් වෙත ඉල්ලීම් ළඟා වීමට පෙර ක්රියාශීලීව ධාවනය වන මොඩියුලර් ප්රොම්ප්ට් සම්පීඩන නළ මාර්ගයක් ක්රියාත්මක කරයි. මෙයින් අදහස් වන්නේ ඔබේ ටෝකන ඉතිරිය විනිවිද පෙනෙන ලෙස සිදුවන බවයි — ඔබේ කාර්ය ප්රවාහයට කිසිදු වෙනසක් අවශ්ය නොවේ.

සේවාලාභී ඉල්ලීම
  → සම්පීඩන උපායමාර්ග තේරීම
    → Combo අභිබවා යාමක්ද? → Combo සැකසුම භාවිත කරන්න
    → ස්වයංක්රීය-ප්රේරක සීමාවද? → ස්වයංක්රීය ප්රකාරය භාවිත කරන්න
    → පෙරනිමි ප්රකාරයද? → ගෝලීය සැකසුම භාවිත කරන්න
    → අක්රියද? → සම්පීඩනය මඟහරින්න
  → තෝරාගත් සම්පීඩන ප්රකාරය
    → අක්රිය: සම්පීඩනයක් නැත
    → සැහැල්ලු: ආරක්ෂිත හිස්තැන්/ආකෘතිකරණ පිරිසිදු කිරීම (~15%)
    → සම්මත: Caveman-ශෛලියේ පිරවුම් වචන ඉවත් කිරීම (~30%)
    → ආක්රමණශීලී: ඉතිහාසය වියපත් කිරීම + සාරාංශකරණය (~50%)
    → අතිශය: හියුරිස්ටික් කප්පාදුව + කේත-කොටස් තුනී කිරීම (~75%)
    → RTK: විධාන-දැනුවත් ටර්මිනල්/මෙවලම්-ප්රතිදාන පෙරීම (ඉහළ මට්ටමේ 60-90% පරාසය)
    → ස්තරගත: අනුපිළිවෙළට සැකසූ බහු-එන්ජින් නළ මාර්ගය, සාමාන්යයෙන් RTK පසුව Caveman (සුදුසුකම් ලබන 78-95% පරාසය)
  → සම්පීඩිත ඉල්ලීම → සැපයුම්කරු

සම්පීඩන ප්රකාර

අක්රිය

කිසිදු සම්පීඩනයක් යොදනු නොලැබේ. සියලුම පණිවිඩ වෙනස් නොවී හුවමාරු වේ.

සැහැල්ලු ප්රකාරය (~15% ඉතිරිය, <1ms ප්රමාදය)

ආරක්ෂිතම ප්රකාරය — අර්ථයට කිසිදු වෙනසක් නොකර, ආකෘතිකරණය පමණක් පිරිසිදු කරයි:

ශිල්පීය ක්රමය විස්තරය
collapseWhitespace අඛණ්ඩ හිස් පේළි සහ පේළි අග හිස්තැන් ඒකාබද්ධ කරයි
dedupSystemPrompt අනුපිටපත් පද්ධති පණිවිඩ ඉවත් කරයි
compressToolResults විස්තීර්ණ මෙවලම්/ශ්රිත ප්රතිදාන සම්පීඩනය කරයි
removeRedundantContent නැවත නැවත ඇති උපදෙස් ඉවත් කරයි
replaceImageUrls base64 රූප දත්ත URI කෙටි කරයි

වඩාත් සුදුසු: සැමවිටම සක්රිය භාවිතය, ආරක්ෂාව තීරණාත්මක වන කාර්ය ප්රවාහ.

සම්මත ප්රකාරය (~30% ඉතිරිය)

Caveman වෙතින් ආභාසය ලබා ඇත — අර්ථය රැකගනිමින් පිරවුම් වචන සහ අනවශ්ය ලෙස දිගු වාක්ය ඛණ්ඩ ඉවත් කරයි:

  • පිරවුම් වචන ඉවත් කරයි ("කරුණාකර", "මම හිතන්නේ", "මූලික වශයෙන්", "ඇත්ත වශයෙන්ම")
  • අනවශ්ය ලෙස දිගු වාක්ය ඛණ්ඩ සංක්ෂිප්ත කරයි ("කිරීම සඳහා" → "කිරීමට", "ප්රතිඵලයක් ලෙස" → "නිසා")
  • විනීත දෙගිඩියාව ඉවත් කරයි ("ඔබට අපහසු නැත්නම්...", "ඔබට හැකි නම්...")
  • කේතකරණ ප්රොම්ප්ට් සඳහා සකස් කළ regex රීති 30කට වැඩි ගණනක්

වඩාත් සුදුසු: දෛනික කේතකරණ කාර්ය ප්රවාහ, පිරිවැය ගැන සැලකිලිමත් කණ්ඩායම්.

ආක්රමණශීලී ප්රකාරය (~50% ඉතිරිය)

දිගු සැසි සඳහා බුද්ධිමත් ඉතිහාස කළමනාකරණය:

  • පණිවිඩ වියපත් කිරීම — පැරණි පණිවිඩ ක්රමයෙන් වැඩි වශයෙන් සම්පීඩනය කරයි
  • මෙවලම් ප්රතිඵල සාරාංශකරණය — දිගු මෙවලම් ප්රතිදාන සාරාංශවලින් ප්රතිස්ථාපනය කරයි
  • ව්යුහාත්මක අඛණ්ඩතා ආරක්ෂකtool_use + tool_result යුගල සංගතව පවතින බව සහතික කරයි
  • සන්දර්භ කවුළු පිළිබඳ අවබෝධය — එක් එක් මාදිලියේ ටෝකන සීමාවලට ගරු කරයි

වඩාත් සුදුසු: දීර්ඝ දෝෂහරණ සැසි, විශාල කේත පදනම්.

අතිශය ප්රකාරය (~75% ඉතිරිය)

ටෝකන තීරණාත්මක වන අවස්ථා සඳහා උපරිම සම්පීඩනය:

  • හියුරිස්ටික් කප්පාදුව — අදාළතා සීමාවට පහළ පණිවිඩ ඉවත් කරයි
  • කේත කොටස් තුනී කිරීම — පුනරාවර්තන කේත උදාහරණ සම්පීඩනය කරයි
  • ද්විමය සෙවුම් කප්පාදුව — සන්දර්භ කවුළුව සඳහා ප්රශස්ත කැපුම් ලක්ෂ්යය සොයයි
  • ආක්රමණශීලී ප්රකාරයේ සියලුම විශේෂාංග ඇතුළත් වේ

වඩාත් සුදුසු: ඔබ නැවත නැවතත් සන්දර්භ සීමාවලට ළඟා වන විට.

RTK ප්රකාරය (ඉහළ මට්ටමේ 60-90% පරාසය)

RTK ප්රකාරය කේතකරණ නියෝජිත සැසිවල දිස්වන විස්තීර්ණ මෙවලම් ප්රතිදාන සඳහා ප්රශස්ත කර ඇත:

  • git status, git diff, git log, පරීක්ෂණ ධාවක, TypeScript/Vite/Webpack ගොඩනැගීම්, ESLint/Biome/Prettier, npm විගණන/ස්ථාපන, Docker ලොග්, යටිතල පහසුකම් ප්රතිදාන සහ සාමාන්ය shell ප්රතිදාන වැනි විධාන/ප්රතිදාන පන්ති හඳුනාගනී
  • open-sse/services/compression/engines/rtk/filters/ වෙතින් JSON පෙරහන් කට්ටල යොදයි
  • පේළිගත-පරීක්ෂණ වලංගුකරණය සහ ව්යාපෘති ගොනු සඳහා විශ්වාස-පාලනය සමඟින්, ව්යාපෘති හෝ ගෝලීය filters.toml ගොනුවලින් RTK TOML schema v1 පෙරහන් ආයාත කරයි
  • පේළිගත සත්යාපන සාම්පල සමඟ ඇතුළත් පෙරහන් 49ක් සපයයි
  • ANSI පාලන අනුක්රම, ප්රගති තීරු, පුනරාවර්තන පේළි සහ ක්රියාමාර්ග ගත නොහැකි අනවශ්ය දත්ත ඉවත් කරයි
  • අසමත්වීම්, දෝෂ, අනතුරු ඇඟවීම්, වෙනස් කළ ගොනු, සාරාංශ සහ දිගු ප්රතිදානයේ අවසාන කොටස රැකගනී
  • විශ්වාස-පාලිත ව්යාපෘති පෙරහන්, ගෝලීය පෙරහන් සහ විකල්ප සංවේදී තොරතුරු ඉවත් කළ අමු-ප්රතිදාන ප්රතිසාධනය සඳහා සහාය දක්වයි

වඩාත් සුදුසු: shell, build, test, git, grep සහ ගොනු-ප්රතිදාන පිටපත් සහිත නියෝජිත සැසි.

ස්තරගත ප්රකාරය (සුදුසුකම් ලබන 78-95% පරාසය)

ස්තරගත ප්රකාරය සම්පීඩන එන්ජින් කිහිපයක් නියත අනුපිළිවෙළකට ධාවනය කරයි. පෙරනිමි නළ මාර්ගය වන්නේ:

RTK -> Caveman

එම අනුපිළිවෙළ පළමුව ටර්මිනල්/මෙවලම් ප්රතිදානය සංක්ෂිප්තව තබා, ඉන් පසුව ඉතිරි ස්වාභාවික-භාෂා ප්රොම්ප්ට් වෙත Caveman අර්ථාන්විත සංක්ෂිප්තකරණය යොදයි. ස්තරගත නළ මාර්ග ගෝලීයව හෝ මාර්ගගත කිරීමේ combo වෙත පවරන ලද සම්පීඩන combo හරහා වින්යාස කළ හැකිය.

වඩාත් සුදුසු: විශාල මෙවලම් ලොග් සමඟ මානව උපදෙස් හෝ සහායක සාරාංශ අඩංගු මිශ්ර සන්දර්භ.


Upstream ඉතුරුම් ගණනය

OmniRoute සම්පීඩන ඉතුරුම් මූලාශ්ර දෙකක් මත පදනම්ව ලේඛනගත කරයි: upstream ව්යාපෘති මිණුම් සලකුණු සහ OmniRoute හිම engine සංයෝජනය.

මූලාශ්රය මෙහි භාවිත කරන Upstream README අගය
Caveman ප්රතිදාන tokens ~75%ක් අඩුය, මිණුම් සලකුණු සාමාන්ය ප්රතිදාන ඉතුරුම 65%කි, පරාසය 22-87%කි, සහ ආදාන සම්පීඩන මෙවලම ~46%කි
RTK විධාන-ප්රතිදාන ඉතුරුම් 60-90%කි; නියැදි සැසියක tokens ~118,000 -> ~23,900, හෝ 79.7%ක ඉතුරුමක් (~80%)

එකිනෙක අතිච්ඡාදනය වන මෙවලම්/සන්දර්භ payload සඳහා, පෙරනිමි OmniRoute සංයෝජනය engines එක මත එක යොදයි:

RTK -> Caveman

ඒකාබද්ධ ඉතුරුම් ආකලනීය නොව, ගුණාකාර වේ:

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%

RTK සහ Caveman යන දෙකටම එකම ආදාන/සන්දර්භ payload එක අඩු කළ හැකි විට එම 78-95% අගය අදාළ වේ. Caveman ප්රතිචාර ප්රතිදාන මාදිලිය වෙනම එකකි: එය සක්රීය කළ විට, Caveman හිම ප්රතිදාන ඉතුරුම් (සාමාන්යය 65%, ප්රධාන අගය ~75%, පරාසය 22-87%) භාවිත කරන්න. මුළු බිල්පත් ඉතුරුම් ඔබගේ prompt/ප්රතිදාන මිශ්රණය මත රඳා පවතී.

"eligible" යන්නෙන් සැබවින්ම අදහස් වන්නේ කුමක්ද

15-95% ප්රධාන පරාසය සැබෑ එකක් වුවත්, එය අදාළ වන්නේ අතිරික්ත හෝ අනවශ්ය ලෙස දීර්ඝ අන්තර්ගතයට පමණි — නැවත නැවත එන දෝෂ පේළි, එකම අනතුරු ඇඟවීම අධික ලෙස නැවත දක්වන build log එකක්, ප්රමාණය ඉක්මවූ grep/ගොනු-කියවීම් dump එකක්. එයින් සෑම ඉල්ලීමක්ම එතරම් ප්රමාණයකින් ඉතිරි කරන බව අදහස් නොවේ.

ප්රායෝගිකව සත්යාපනය කර ඇත (tests/unit/compression/stacked-compression-tool-result-savings.test.ts): සමාන දෝෂ පේළි 300ක් අඩංගු Anthropic-හැඩැති tool_result block එකකට එරෙහිව ක්රියාත්මක කළ stacked (RTK + Caveman) ධාවනයක් 95.93% token ඉතුරුම් / 96.26% අක්ෂර ඉතුරුම් ලබා දුන්නේය — එය ප්රචාරණය කළ පරාසය තුළම පිහිටයි. නමුත් සාමාන්ය, අතිරික්ත නොවන මෙවලම් ප්රතිදානයකට (පිරිසිදු grep ගැළපුම් ලැයිස්තුවක්, කෙටි ගොනු කියවීමක්, සාමාන්ය සංවාද පෙළක්) එරෙහිව එම pipeline එකම ධාවනය කළ විට නිවැරදිව ශුන්යයට ආසන්න ඉතුරුම් ලැබේ, මන්ද ඉවත් කිරීමට පුනරාවර්තන කිසිවක් නොමැති අතර code blocks, URLs, headings, versions, හෝ ALL-CAPS නියත identifiers මකා දැමීමට හෝ වෙනස් කිරීමට ඉඩ ඇති නැවත ලිවීමක් නිකුත් කිරීම validateCompression() (validation.ts) විසින් ප්රතික්ෂේප කරන බැවිනි.

මෙය අපේක්ෂිත, ආරක්ෂිත හැසිරීමක් මිස bug එකක් නොවේ: බොහෝ දුරට පිරිසිදු ගොනු කියවන/grep කරන coding සැසියක්, සම්පීඩනය සම්පූර්ණයෙන් සක්රීය කර තිබුණද, මධ්යස්ථ මුළු ඉතුරුමක් පෙන්වනු ඇත; එහෙත් අසාර්ථක වන loop එකකට හෝ අධික ප්රතිදානයක් ලබා දෙන linter එකකට මුහුණ දෙන සැසියක් එම traffic සඳහා සම්පූර්ණ 78-95% පරාසය දකිනු ඇත. එක් සැසියක අඩු සමස්ත ඉතුරුම් ප්රතිශතය, සම්පීඩනය වැරදි ලෙස වින්යාස කර ඇති බවට සාක්ෂියක් ලෙස භාවිත නොකරන්න — පළමුව යටින් පවතින මෙවලම් ප්රතිදානය සැබවින්ම අතිරික්තදැයි පරීක්ෂා කරන්න.


Token ඉතුරුම් දෘශ්යකරණය

සම්පීඩනය නොමැතිව: 47K tokens LLM වෙත යවා ඇත
Lite සමඟ:          40K tokens යවා ඇත          (15% ඉතිරියි — ආරක්ෂිතයි, සැමවිටම සක්රීයයි)
Standard සමඟ:      33K tokens යවා ඇත          (30% ඉතිරියි — caveman-speak නීති)
Aggressive සමඟ:    24K tokens යවා ඇත          (50% ඉතිරියි — වයස්ගත කිරීම + සාරාංශකරණය)
Ultra සමඟ:         12K tokens යවා ඇත          (75% ඉතිරියි — heuristic කප්පාදුව)
RTK සමඟ:           19K-5K tokens යවා ඇත       (විධාන/මෙවලම් ප්රතිදානයෙන් 60-90% ඉතිරියි)
Stacked සමඟ:       10K-2.5K tokens යවා ඇත     (සුදුසු RTK+Caveman පරාසයෙන් 78-95% ඉතිරියි)

වින්යාසය

උපකරණ පුවරුව

Dashboard → Context & Cache වෙත යන්න:

  • Caveman — මාදිලි තේරීම, භාෂා ඇසුරුම්, පෙරදසුන සහ ගෝලීය පෙරනිමි
  • RTK — විධාන-පෙරහන් පෙරදසුන, RTK ආරක්ෂණ සැකසුම් සහ පෙරහන් නාමාවලිය
  • Compression Combos — මාර්ගගත කිරීමේ සංයෝජනවලට පවරා ඇති නම් කළ එන්ජින් නලමාර්ග
  • Auto-Trigger Threshold — ටෝකන ගණන සීමාව ඉක්මවන විට සම්පීඩනය ස්වයංක්රීයව සක්රිය කරයි

එක් එක් සංයෝජනය සඳහා අභිභවා යාම

Dashboard → Context & Cache → Compression Combos තුළ, මාර්ගගත කිරීමේ සංයෝජනයකට සම්පීඩන සංයෝජනයක් පවරන්න:

Combo: "free-tier-fallback"
  Compression Combo: "coding-agent-stack"
  Pipeline: RTK -> Caveman
  Targets:
    1. if/kimi-k2.7-code
    2. if/qwen3.8-max-preview

මෙය ගෙවුම් දායකත්ව සඳහා ලයිට් මාදිලිය තබා ගනිමින්, නොමිලේ/කේතකරණ සපයන්නන් සඳහා ස්තරගත සම්පීඩනය භාවිත කිරීමට ඔබට ඉඩ දෙයි.

මෙම "Per-Combo Override" පැවරීම routing-combo compression mode අභිභවා යාමෙන් (Default/Off/Lite/Standard/Aggressive/Ultra) වෙනස් පාලකයකි — එම අභිභවා යාම නම් කළ සම්පීඩන-සංයෝජන නලමාර්ගයක් තෝරා නොගනී; එය හුදෙක් resolveCompressionPlan විසින් පරීක්ෂා කරන compressionMode ක්ෂේත්රය සකසයි. එය සංයෝජන කාඩ්පතේ (Dashboard → Combos) හෝ, #6760 සිට, ඉහත ලේඛනගත කර ඇති නලමාර්ග-පැවරුම් සලකුණු කොටුව අසලම ඇති Dashboard → Context & Cache → Compression Combos හි "Assign to routing" ලැයිස්තුව තුළ එක් එක් මාර්ගගත කිරීමේ සංයෝජනය සඳහා සැකසිය හැක. අතුරුමුහුණත් දෙකම එකම PUT /api/combos/{id} අන්ත ලක්ෂ්යය හරහා දත්ත ස්ථිරව සුරකියි.

එක් එක් ඉල්ලීම සඳහා අභිභවා යාම

තනි ඉල්ලීමක් සඳහා සම්පීඩන සැලැස්ම අභිභවා යාමට x-omniroute-compression ඉල්ලීම් ශීර්ෂකය යවන්න. එයට ඉහළම ප්රමුඛතාව ඇත — එය මාර්ගගත කිරීමේ සංයෝජන අභිභවා යාම, සක්රිය පැතිකඩ, ස්වයංක්රීය ප්රේරකය සහ පැනලයේ Default යන සියල්ල අභිබවයි. නොදන්නා අගයන් නොසලකා හරිනු ලැබේ (ඉල්ලීම කිසිවිටෙක ප්රතික්ෂේප නොකෙරේ) සහ ගෝලීය ප්රධාන ස්විචය තවමත් සියල්ල පාලනය කරයි: සම්පීඩනය ගෝලීයව අක්රිය කර ඇති විට, ශීර්ෂකයට එය සක්රිය කළ නොහැක. අගයන්:

අගය බලපෑම
off මෙම ඉල්ලීම සඳහා සම්පීඩනයක් නොමැත.
default පැනලයෙන් ලබාගත් Default පැතිකඩ (සක්රිය පැතිකඩ නොසලකා හරියි).
engine:<id> සක්රිය කර ඇති විට තනි එන්ජිමක්, උදා. engine:rtk.
<combo> පළමුව නම අනුව (අකුරු විශාලත්වය නොසලකා), පසුව id අනුව ගැළපෙන නම් කළ සංයෝජනයක්.

යොදන ලද සැලැස්ම X-OmniRoute-Compression: <mode>; source=<source> ප්රතිචාර ශීර්ෂකය තුළ නැවත දක්වනු ලැබේ. මෙහි <source> යනු request-header, routing-override, active-profile, auto-trigger, default, හෝ off යන අගයන්ගෙන් එකකි.

API

# සම්පීඩන සැකසුම් ලබාගන්න
curl http://localhost:20128/api/settings/compression

# සම්පීඩන සැකසුම් යාවත්කාලීන කරන්න
curl -X PUT http://localhost:20128/api/settings/compression \
  -H "Content-Type: application/json" \
  -d '{"defaultMode":"stacked","autoTriggerMode":"stacked","autoTriggerTokens":32000}'

# නිශ්චිත RTK/ස්තරගත payload එකක පෙරදසුනක් බලන්න
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 පෙරහන් ඇසුරුම් ලැයිස්තුගත කරන්න
curl http://localhost:20128/api/context/rtk/filters

# විකල්ප විධාන පාරදත්ත සමඟ RTK සෘජුවම පරීක්ෂා කරන්න
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"}'

ආරක්ෂා කෙරෙන දේවල්

සම්පීඩන එන්ජිම සැමවිටම පහත දෑ සංරක්ෂණය කරයි:

  • කේත කොටස් (වැටකින් වෙන් කළ සහ පේළිය තුළ ඇති)
  • URL සහ ගොනු මාර්ග
  • JSON ව්යුහ සහ ව්යුහගත දත්ත
  • හඳුනාගැනීම් සහ ආරක්ෂිත තාක්ෂණික ටෝකන
  • ගණිතමය ප්රකාශන
  • මෙවලම්/ශ්රිත ඇමතුම් නිර්වචන
  • පද්ධති ප්රේරක (lite ප්රකාරයේදී)

කිසිවක් ස්ථිරව ගබඩා කිරීමට පෙර, RTK අමු-ප්රතිදාන ප්රතිසාධනය පොදු API යතුරු, bearer ටෝකන, Slack ටෝකන, AWS ප්රවේශ යතුරු, මුරපද, ටෝකන සහ රහස් සංස්කරණය කර සඟවයි.


සම්පීඩන සංඛ්යාලේඛන

සෑම සම්පීඩිත ඉල්ලීමකම සේවාදායක ලොග් තුළ සංඛ්යාලේඛන ඇතුළත් වේ:

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

අදියර මාර්ග සිතියම

අදියර ප්රකාර තත්ත්වය
අදියර 1 අක්රිය, Lite නිකුත් කර ඇත
අදියර 2 Standard, Aggressive, Ultra නිකුත් කර ඇත
අදියර 3 RTK, Stacked, සම්පීඩන සංයෝජන නිකුත් කර ඇත
අදියර 4 ප්රතිදාන ශෛලීන්, SLM-මට්ටමේ Ultra, ඇගයීම් පද්ධතිය නිකුත් කර ඇත
අදියර 4C අනුවර්තී සන්දර්භ අයවැය ("ඩයලය") — ගණනය කිරීමේ එන්ජිම + API (contextBudget on PUT /api/settings/compression) + උපකරණ පුවරු ප්රකාර/ප්රතිපත්ති පාලන නිකුත් කර ඇත

කෘතඥතා

Standard ප්රකාරයේ සම්පීඩන රීති, JuliusBrussee විසින් නිර්මාණය කළ Caveman ( 51K+) — වෛරල් වූ "ටෝකන කිහිපයකින් කාර්යය කළ හැකි විට ටෝකන බොහොමයක් භාවිත කරන්නේ ඇයි" ව්යාපෘතියෙන් ආභාෂය ලබා ඇත. Caveman විසින් ~75% කින් අඩු ප්රතිදාන ටෝකන, මිණුම් ලකුණු හරහා සාමාන්යයෙන් 65% ප්රතිදාන ඉතිරියක්, 22-87% ප්රතිදාන පරාසයක් සහ ~46% ආදාන-සම්පීඩන මෙවලමක් වාර්තා කරයි.

RTK ප්රකාරය, RTK AI විසින් නිර්මාණය කළ RTK - Rust Token Killer — ටර්මිනල්, build, test, git සහ මෙවලම්-ප්රතිදාන පෙරීම සඳහා වන ඉහළ කාර්යසාධන විධාන-ප්රතිදාන සම්පීඩන ව්යාපෘතියෙන් ආභාෂය ලබා ඇත. RTK විසින් 60-90% ඉතිරියක් වාර්තා කරන අතර, එහි README නියැදි සැසිය ~80% ක් ඉතිරි වූ බව පෙන්වයි.


උසස් සම්පීඩන පද්ධති

සම්මත ප්රකාර 7 ට අමතරව, OmniRoute හි සන්දර්භය මත පදනම්ව ස්වයංක්රීයව ක්රියා කරන උසස් සම්පීඩන පද්ධති කිහිපයක් ඇතුළත් වේ.

හැඹිලි-දැනුවත් සම්පීඩනය

සමහර සැපයුම්කරුවන් (ප්රේරක හැඹිලිකරණය සහිත Anthropic වැනි) ප්රේරක හැඹිලිකරණයට සහාය දක්වයි, එමඟින් පිරිවැය සහ ප්රමාදය අඩු කිරීමට ප්රේරකයේ කොටස් හැඹිලිගත කිරීමට ඔවුන්ට හැකි වේ. හැඹිලිකරණය සක්රීය කර ඇති විට, ආක්රමණශීලී සම්පීඩනය මඟින් හැඹිලිගත ටෝකන වෙනස් කර හැඹිලිය අවලංගු කරන නිසා, එය සැබවින්ම කාර්යසාධනයට හානි කළ හැක.

cachingAware.ts මොඩියුලය මෙය විසඳන්නේ හැඹිලිකරණ සන්දර්භය හඳුනාගෙන ඒ අනුව සම්පීඩන උපායමාර්ගය සකස් කිරීමෙනි.

එය ක්රියා කරන ආකාරය

  1. හැඹිලිකරණ සන්දර්භය හඳුනාගැනීමcache_control සලකුණු සඳහා ඉල්ලීමේ අන්තර්ගතය පරිලෝකනය කරයි
  2. හැඹිලිකරණ සැපයුම්කරුවන් හඳුනාගැනීම — ඉලක්ක සැපයුම්කරු හැඹිලිකරණයට සහාය දක්වන්නේ දැයි පරීක්ෂා කරයි
  3. උපායමාර්ගය සකස් කිරීම — හැඹිලිකරණ සැපයුම්කරුවන් සඳහා aggressive/ultra, standard වෙත පහත හෙළයි
  4. පද්ධති ප්රේරකය මඟහැරීම — පද්ධති ප්රේරක සාමාන්යයෙන් හැඹිලිගත කර ඇති බැවින් ඒවා සම්පීඩනය නොකරයි
  5. නියතිවාදී පරිවර්තන භාවිත කිරීම — ස්ථාවර ප්රතිදානයක් නිපදවන පරිවර්තන පමණක් භාවිත කරයි

කේත උදාහරණය

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" }, // ← හැඹිලි සලකුණ
};

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

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

භාවිත කළ යුතු අවස්ථා

හැඹිලි-දැනුවත් සම්පීඩනය සැමවිටම සක්රීයයි — වින්යාස කිරීමක් අවශ්ය නොවේ. එය ක්රියාත්මක වන්නේ පහත අවස්ථාවලදී පමණි:

  • ඉල්ලීමෙහි cache_control සලකුණු ඇත
  • ඉලක්ක සැපයුම්කරු ප්රේරක හැඹිලිකරණයට සහාය දක්වයි (Anthropic, OpenAI ආදිය)

ප්රගතිශීලී වයස්ගත කිරීම

දිගු සංවාද තුළ බොහෝ පණිවිඩ වාර එකතු වන නමුත්, පැරණි වාරවල අදාළත්වය ක්රමයෙන් අඩු වේ. progressiveAging.ts මොඩියුලය වාර දුර අනුව පණිවිඩවල විස්තර මට්ටම අඩු කරයි:

  • මෑත වාර (0-3): වචනානුසාරයෙන් තබා ගනී (සම්පූර්ණ විස්තර)
  • මධ්යම වාර (4-8): Lite සම්පීඩනය (හිස් අවකාශ සහ හැඩතල පිරිසිදු කිරීම)
  • පැරණි වාර (9+): Caveman සම්පීඩනය (අනවශ්ය පිරවුම් ඉවත් කිරීම සහ සාරාංශකරණය)
  • ඉතා පැරණි වාර (20+): දැඩිව සාරාංශ කරයි හෝ ඉවත් කරයි

කේත උදාහරණය

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" },
  // ... තවත් වාර 50 ක් ...
];

const { messages: aged, saved } = applyAging(messages, {
  verbatim: 3, // පළමු වාර 3: වචනානුසාරයෙන්
  light: 8, // වාර 4-8: lite සම්පීඩනය
  moderate: 20, // වාර 9-20: caveman සම්පීඩනය
  // වාර 21+: දැඩි සාරාංශකරණය
});

// saved = ඉතිරි කළ ටෝකන ගණන

භාවිත කළ යුතු අවස්ථා

ප්රගතිශීලී වයස්ගත කිරීම aggressive සහ ultra ප්රකාර සඳහා සැමවිටම සක්රියයි. එය විශේෂයෙන් ඵලදායී වන්නේ:

  • දිගු කාලයක් පවතින කේතකරණ සැසි
  • දින කිහිපයක් පුරා පවතින සංවාද
  • මෙවලම් ඇමතුම් බොහොමයක් සහිත නියෝජිතමය කාර්ය ප්රවාහ

ගුහාමානව ප්රතිදාන ප්රකාරය

outputMode.ts මොඩියුලය, ආකෘතිය විසින්ම සම්පීඩිත සහ සංක්ෂිප්ත ප්රතිදානයක් ("ගුහාමානව" ශෛලියක්) නිපදවීමට සලස්වන පද්ධති ප්රේරක උපදෙස් ඇතුළු කරයි.

එය ක්රියා කරන ආකාරය

ආදානය සම්පීඩනය කිරීම වෙනුවට, මෙම ප්රකාරය පහත ආකාරයේ පද්ධති ප්රේරකයක් එක් කරයි:

"අවම වචනවලින් පිළිතුරු දෙන්න. ආචාරශීලී වාක්ය ඛණ්ඩ මඟ හරින්න. කෙටි වාක්ය භාවිත කරන්න."

මෙය විශේෂයෙන් හොඳින් ක්රියා කරන්නේ:

  • කේත උත්පාදනය (වඩා සංක්ෂිප්ත ප්රතිදානය = අඩු ටෝකන)
  • ඉක්මන් ප්රශ්නෝත්තර (විස්තරාත්මක පැහැදිලි කිරීම් අවශ්ය නොවේ)
  • කාණ්ඩ සැකසීම (ප්රතිදාන ධාරිතාව උපරිම කරයි)

භාවිත කළ යුතු අවස්ථා

ගුහාමානව ප්රතිදාන ප්රකාරය තෝරා සක්රිය කළ යුතුය — සංයුක්ත වින්යාසය හරහා එය සකසන්න:

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

ප්රතිදාන ශෛලීන් (නාමාවලිය)

ඉහත ගුහාමානව ප්රතිදාන ප්රකාරය පැරණි තනි-ශෛලී මාර්ගයයි. අදියර 4 එය සංයෝජනය කළ හැකි ප්රතිදාන ශෛලී නාමාවලියක් බවට සාමාන්යකරණය කළේය: open-sse/services/compression/outputStyles/catalog.ts හි OUTPUT_STYLE_CATALOG. සෑම ශෛලියක්ම, ආකෘතිය විසින්ම අඩු වියදම් ප්රතිදානයක් නිපදවීමට සලස්වන පද්ධති-ප්රේරක උපදෙසකි; ශෛලීන් එකට සක්රිය කළ හැකි අතර ඒවා නාමාවලි අනුපිළිවෙළට ඇතුළු කෙරේ.

ශෛලිය id එය කරන දේ උපදෙස් භාෂා
සංක්ෂිප්ත ගද්ය terse-prose අනවශ්ය පිරවුම්/නිපාත/අවිනිශ්චිත ප්රකාශ ඉවත් කරයි; තාක්ෂණික සාරය නිවැරදිව තබා ගනී. පැරණි ගුහාමානව ප්රතිදාන ප්රකාරයේ පෙළම වේ (නැවත ටයිප් නොකර යොමු කර ඇත). en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi
අඩු කේත less-code YAGNI පියගැටපෙළ: ක්රියා කරන කුඩාම වෙනස්කම, ඉල්ලා නොසිටි වියුක්තකරණ නොමැත. en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi
පෝනිටේල් (කම්මැලි ජ්යෙෂ්ඨ සංවර්ධක) ponytail "හොඳම කේතය යනු කිසිදා නොලියූ කේතයයි": නැවත භාවිතය > නැවත ලිවීම, මූලික හේතුව > රෝග ලක්ෂණය, ක්රියා කරන කෙටිම වෙනස්කම් කට්ටලය. en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi
මට ADHD ඇත (ක්රියාව-පළමුව) i-have-adhd ක්රියාව පළමුව (ගද්යයට පෙර විධානය/මාර්ගය/කේත කොටස), අංකිත සහ සීමිත පියවර, එක් නිශ්චිත ඊළඟ පියවරක්, පෙරවදන්/පුනරාවර්තන/අවසන් ප්රකාශ නොමැත. ayghri/i-have-adhd (MIT) වෙතින් අනුවර්තනය කර ඇත. en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi
සංක්ෂිප්ත CJK (文言) terse-cjk අතිශය සංක්ෂිප්ත සම්භාව්ය-චීන ශෛලිය. zh (ස්ථානීය-සීමිතයි: නිරාකරණය කළ භාෂාව zh වන විට පමණක් පිරිනමයි)

සෑම ශෛලියක්ම lite, full, ultra යන තීව්රතා මට්ටම් තුනකින් සපයනු ලැබේ — තවද සෑම මට්ටමක්ම හවුල් සීමා වගන්තියෙන් අවසන් වන අතර, එය කේත කුට්ටි, ගොනු මාර්ග, විධාන, දෝෂ තන්තු, URLs සහ හඳුන්වක ඒ ආකාරයෙන්ම තබා ගනී.

ඇතුළු කිරීම ක්රියා කරන ආකාරය

applyOutputStyles() (open-sse/services/compression/outputStyles/apply.ts) තේරීම නාමාවලියට සාපේක්ෂව නිරාකරණය කරයි (නොදන්නා ids සහ ස්ථානීය නොගැළපෙන ශෛලීන් ඉවත් කෙරෙන අතර, කිසිවිටෙක දෝෂයක් ඇති නොකරයි), තෝරාගත් උපදෙස් නාමාවලි අනුපිළිවෙළට සම්බන්ධ කරයි, සීමා වගන්තිය එක් වරක් අගට එක් කරයි, සහ ප්රතිඵලය තනි ඒකක්රියාකාරී සලකුණකට ([OmniRoute Output Styles]) පසුව පද්ධති ප්රේරකයේ මුලට ඇතුළු කරයි — නැවත යෙදීමෙන් කිසිවක් සිදු නොවේ. අනාවරණය කරගත් ඉල්ලීම් භාෂාව සඳහා පරිවර්තනයක් ඇති විට, ඉංග්රීසි වෙනුවට දේශීයකරණය කළ උපදෙස ඇතුළු කෙරේ.

සක්රිය කරන ආකාරය

උපකරණ පුවරුවේ: සන්දර්භය → සැකසුම් → සම්පීඩනය — එක් එක් ශෛලිය සඳහා සක්රිය/අක්රිය ටොගලයක් සහ මට්ටම් තේරීම්කාරකයක් සහිත එක් පේළියක් ඇත. ක්රමලේඛනමයව, සම්පීඩන වින්යාසය තේරීම පහත පරිදි සුරකියි:

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

පසුගැළපුම: පැරණි outputMode: "caveman" සංයුක්ත සැකසුම තවමත් ක්රියා කරන අතර terse-prose වෙත සිතියම්ගත වේ; සෑම පැරණි භාෂාවකදීම එය පැරණි ඇතුළු කිරීම සමඟ බයිටයෙන්-බයිටයට සමාන වේ.

භාෂා තේරීම: languageConfig.enabled සක්රියව ඇති විට, autoDetect නවතම පරිශීලක පණිවිඩයේ භාෂාව තෝරයි (ආදාන එන්ජින් භාවිත කරන අනාවරකයම); autoDetect අක්රිය කිරීමෙන් defaultLanguage ස්ථිර වේ. අක්රියයි → ඉංග්රීසි.

ශෛලිය × භාෂාව අනුකෘතිය tests/unit/compression/output-styles-i18n-matrix.test.ts මඟින් ස්ථිර කර ඇත: අවම වශයෙන් pt-BR පරිවර්තනයක් (හෝ පැහැදිලිව හඹායන ව්යතිරේකයක්) නොමැතිව නව ශෛලියක් නිකුත් කළ නොහැකි අතර, පවතින ශෛලියකට නිහඬව ස්ථානීය භාෂාවක් අහිමි කළ නොහැක. ශෛලියක් එක් කිරීමට, EXTENDING_COMPRESSION.md බලන්න.

මෙවලම් ප්රතිඵල සම්පීඩනය

toolResultCompressor.ts මොඩියුලය මෙවලම් ප්රතිඵල (ශ්රිත ඇමතුම්, නියෝජිත ප්රතිදාන, සෙවුම් ප්රතිඵල ආදිය) සඳහා විශේෂිත සම්පීඩන උපායමාර්ග 5ක් සපයයි:

  1. සෙවුම් ප්රතිඵල සම්පීඩනය — අතිරික්ත ප්රතිඵල ඉවත් කරයි, ඉහළම-N තබා ගනී
  2. ගොනු කියවීම් සම්පීඩනය — විශාල ගොනු කෙටි කරයි, ශීර්ෂක/ආයාත ආරක්ෂා කරයි
  3. කේත ක්රියාත්මක කිරීමේ සම්පීඩනය — අත්යවශ්ය stdout/stderr පමණක් තබා ගනී
  4. දත්ත සමුදා විමසුම් සම්පීඩනය — පේළි සීමා කරයි, වාචාල පාරදත්ත ඉවත් කරයි
  5. API ප්රතිචාර සම්පීඩනය — null ක්ෂේත්ර ඉවත් කරයි, අරාවන් සංක්ෂිප්ත කරයි

භාවිත කළ යුතු අවස්ථා

මෙවලම් ඇමතුම් පවතින විට මෙවලම් ප්රතිඵල සම්පීඩනය සැමවිටම සක්රියයි. වින්යාස කිරීමක් අවශ්ය නොවේ.

ස්තරගත නළ මාර්ගය

ස්තරගත ප්රකාරය එන්ජින් කිහිපයක් අනුපිළිවෙළින් ධාවනය කරයි — සාමාන්යයෙන් පළමුව RTK (මෙවලම් ප්රතිදානයේ 60-90% ඉතිරියක්), ඉන්පසු Caveman (ඉතිරි පෙළෙහි අමතර 30% ඉතිරියක්). මෙය සමස්ත 78-95% ඉතිරියක් ලබා දෙයි.

එය ක්රියා කරන ආකාරය

ආදානය (ටෝකන 1000)
  → RTK (විධාන-සංවේදී පෙරහන) → ටෝකන 200
    → Caveman (පිරවුම් ඉවත් කිරීම) → ටෝකන 140
  → ප්රතිදානය (ටෝකන 140, 86% ඉතිරියක්)

භාවිත කළ යුතු අවස්ථා

පහත අවස්ථා සඳහා ස්තරගත ප්රකාරය භාවිත කරන්න:

  • මෙවලම්-බහුල කාර්ය ප්රවාහ (නියෝජිතමය කේතකරණය, පර්යේෂණ)
  • පිරිවැයට සංවේදී කාණ්ඩ සැකසීම
  • ඔබට උපරිම ටෝකන ඉතිරියක් අවශ්ය විට

සංයුක්ත වින්යාසය හරහා වින්යාස කරන්න:

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

සම්පීඩන Combo අභිබවා යාම්

විවිධ භාවිත අවස්ථා සඳහා හැසිරීම සියුම්ව සකස් කිරීමට, ගෝලීය සම්පීඩන ප්රකාරය එක් එක් combo සඳහා අභිබවා යා හැක:

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

මෙය පහත අවස්ථා සඳහා ප්රයෝජනවත් වේ:

  • කේතකරණ combos: දිගු සැසි සඳහා aggressive ප්රකාරය භාවිත කරන්න
  • ඉක්මන් ප්රශ්නෝත්තර combos: වේගවත් ප්රතිචාර සඳහා lite ප්රකාරය භාවිත කරන්න
  • මෙවලම් බහුල combos: උපරිම ඉතිරිකිරීම් සඳහා stacked ප්රකාරය භාවිත කරන්න
  • නිෂ්පාදන combos: හැඹිලිගත කිරීමේ සේවා සපයන්නන් සඳහා cache-aware ප්රකාරය භාවිත කරන්න

තවද බලන්න