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

39 KiB
Raw Blame History

Compression Engines (አማርኛ)

🌐 Languages: 🇺🇸 English · 🇸🇦 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 · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW


OmniRoute መጭመቅ በሞተር ውሎች ዙሪያ የተገነባ ነው። አንድ ሁነታ አንድን ሞተር በቀጥታ (caveman ወይም rtk) ወይም ብዙ ሞተሮችን በቅደም ተከተል የሚያስኬድ ቆራጥ የተደራረበ የማስኬጃ መስመር ሊያስኬድ ይችላል።

ሁነታዎች

ሁነታ የሞተር መንገድ የታሰበ ግብዓት
off የለም የጥያቄውን ትክክለኛ ቅርጽ መጠበቅ
lite Caveman lite ረዳቶች ዝቅተኛ ስጋት ያለው ሁልጊዜ ንቁ ማጽዳት
standard Caveman በተፈጥሯዊ ቋንቋ የተጻፈ ጥያቄን ማጠቃለል
aggressive Caveman + የታሪክ/መሣሪያ ማጠቃለያዎች ረጅም የውይይት ክፍለ ጊዜዎች
ultra Caveman + የመከርከሚያ ረዳቶች ከአውድ ገደብ ማገገም
rtk RTK የተርሚናል፣ shell፣ build፣ test እና git ውጤት
omniglyph OmniGlyph በቤተኛው የአቅራቢ ግንኙነት ላይ አውድን እንደ ምስል መጠቀም
stacked የማስኬጃ መስመር፣ ነባሩ rtk -> caveman የተቀላቀሉ የመሣሪያ ምዝግቦች እና ስድ ጽሑፍ፣ ከፍተኛ ቁጠባ

OmniGlyph የመጭመቂያ መገለጫዎች

omniglyph ሞተር (ጥቅል omniglyph፣ 1.4.0+) በመጭመቂያ ቅንብሮች ውስጥ በomniglyph.profile አማካይነት በአጠቃላይ፣ ወይም በተደራረበው የማስኬጃ መስመር የደረጃ ውቅር አማካይነት ለእያንዳንዱ ደረጃ የሚዘጋጅ በስም የተሰየመ የፍቺ መገለጫ ይቀበላል፦

መገለጫ ወሰን
aggressive ነባሪ። የታተሙት ደረሰኞች የለኩት መመሪያ — የስርዓት፣ የመሣሪያ ሰነዶች እና ጥቅጥቅ ያለ ታሪክ ምስሎች
balanced ንቁ ሁኔታን በቤተኛ ቅርጹ ያቆያል፣ የመጨረሻዎቹን 8 ዙሮች ይጠብቃል፣ የቆየ የተዘጋ ታሪክን ይሰብስባል
coding-safe ሥልጣንን፣ የመሣሪያ ንድፎችን እና ንቁ የመሣሪያ ውጤትን በቤተኛ ቅርጻቸው ያቆያል፣ የመጨረሻዎቹን 12 ዙሮች ይጠብቃል
passthrough ሳይለውጥ ያስተላልፋል፤ ሞተሩ ይዘለላል

መገለጫው ጣሪያ እንጂ ወለል አይደለም፦ በጥቅሉ ውስጥ ያለው mergeCompressionProfileOptions የጠሪው ሽረዛ መገለጫው የዘጋውን መረጃ-አጥፊ መስመር እንደገና እንዲከፍት አይፈቅድም፤ ስለዚህ የእያንዳንዱ ደረጃ preserveSystemPrompt: falsecoding-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ን ይመልከቱ። የCaveman ደንቦችን እንደገና ይጠቀማል፣ ነገር ግን የሚሠራው በመሣሪያ ሜታዳታ ላይ እንጂ በጥያቄ ፔይሎዶች ላይ አይደለም።

ተጨማሪ አብረው የተካተቱ ኤንጂኖች

ከCaveman፣ RTK እና LLMLingua-2 በተጨማሪ፣ ሬጅስትሪው በርካታ ልዩ መረጃ-አልባ ያልሆኑ / መዋቅራዊ ኤንጂኖችን ይዞ ይመጣል (በተደራራቢ ፓይፕላይኖች፣ በመሞከሪያ ስፍራው እና በሙከራዎች ጥቅም ላይ የሚውሉ)፦

ኤንጂን መለያ የሚሠራው
CCR ccr Content-Compress-Retrieve (H4)፦ ትላልቅ ተከታታይ የጽሑፍ ብሎኮችን በይዘት-አድራሻ ማጣቀሻዎች ይተካል፤ ስለዚህ ተደጋጋሚ/ትላልቅ ብሎኮች አንድ ጊዜ ብቻ ተልከው ከዚያ በኋላ በማጣቀሻ ይጠቀሳሉ።
headroom headroom SmartCrusher (H3 + N5)፦ ተመሳሳይ-አይነት የJSON-ድርድር ፔይሎዶችን ወደ አምዳዊ [N rows] ቅርጽ መረጃ-አልባ ሳይሆን በሰንጠረዥ መጠቅለል።
ionizer ionizer በጣም ትላልቅ ተመሳሳይ-አይነት ብሎኮችን ከመጀመሪያ/መሃል/መጨረሻ የረድፍ ናሙና መውሰድ፣ የተወገደውን መሃል እንደ CCR ይዘት-አድራሻ ማጣቀሻ በማከማቸት።
session-dedup session-dedup ይዘት-አድራሻ ያለው ተራ-አቋራጭ ድግግሞሽ ማስወገድ (በTokenMizer የተነሳሳ)፦ በተመሳሳይ ክፍለ ጊዜ ቀደምት ተራዎች ላይ አስቀድሞ የታየን ጽሑፍ ያስቀራል።

የCCR መልሶ-ማግኛ-ፕሮቶኮል መመሪያ (#8033)፦ CCR በአንድ ጥያቄ ውስጥ ≥1 ብሎክን ለመጀመሪያ ጊዜ ሲተካ፣ ኤንጂኑ ምልክት → መሣሪያ ውልን ለጠሪው የሚያስተምር፣ አንድ ብቻ የሆነ እና በድጋሚ ሲተገበር ውጤቱ የማይለወጥ system መልዕክትን (በ [CCR protocol] መለያ የሚጀምር) ከፊት ያክላል፦ የ [CCR retrieve hash=<24hex> chars=N] ምልክት ምን ማለት እንደሆነ፣ hash እንዳለ መገልበጥ እንዳለበት (ሁሉም 24 ሄክስ ቁምፊዎች — በተሳሳተ መንገድ የተገለበጡ hash-ዎች የ"block not found" ስህተቶች መንስኤ የመሆን እድላቸው ከፍተኛ ነው)፣ እንዲሁም የ[dedup:ref sha=...] ምልክት "ወደ ታሪክ ተመልሰህ ተመልከት" ማለት እንጂ "መሣሪያውን ጥራ" ማለት እንዳልሆነ። ማስታወሻው የሚገባው ጠሪው ያስታወቀው tools[] በእርግጥ omniroute_ccr_retrieveን ማግኘት እንደሚችል ሲያረጋግጥ ብቻ ነው (callerSupportsCcrRetrieve()open-sse/services/compression/engines/ccr/protocolInstruction.ts) — ያ መሣሪያ የሌለው መደበኛ OpenAI-ተኳሃኝ ጠሪ ሊያገኘው የማይችለውን ነገር እንዲጠራ የሚነግር መመሪያ ፈጽሞ አይደርሰውም። የድጋሚ ተግባር ውጤት እንዳይለወጥ የሚደረገው ከማስገባት በፊት የመልዕክት ታሪኩን ለመለያው በመቃኘት ነው፤ ስለዚህ ባለብዙ-ተራ ጥያቄዎች (የቀደሙ መልዕክቶችን ደግመው የሚያቀርቡ) በእያንዳንዱ ተራ ማስታወሻውን ደራርበው አያስገቡም።

Caveman

Caveman ሁነታ መደበኛ ጽሑፍን በትርጉም ላይ ተመስርቶ በማጠቃለል ላይ ያተኩራል፦

  • የኮድ ብሎኮችን፣ URLs፣ JSON፣ ዱካዎችን እና የተዋቀረ ውሂብን ይጠብቃል
  • አላስፈላጊ ቃላትን፣ ማመንታትን፣ የተደጋገመ ዐውድን እና የተንዛዛ አያያዥ አገላለጽን ያስወግዳል
  • open-sse/services/compression/rules/ ውስጥ ቋንቋን የሚያገናዝቡ የፋይል ደንብ ጥቅሎችን ይደግፋል
  • በቀድሞዎቹ standardaggressive እና ultra ሁነታዎች በኩል መጠቀም ይቻላል

የዳሽቦርዱ መገኛ Dashboard -> Context & Cache -> Caveman ነው።

የCaveman ዋና ፕሮጀክት ~75% ያነሱ የውጤት ቶከኖች፣ በቤንችማርኮች በአማካይ 65% የውጤት ቁጠባ፣ ከ22-87% ክልል ጋር፣ እንዲሁም ~46% የግብዓት መጭመቂያ መሣሪያ እንዳለው ዘግቧል። OmniRoute የተደራረቡ የፕሮምፕት/ዐውድ ቁጠባዎችን ሲመዘግብ የCaveman የግብዓት-ወገን ቁጥርን ይጠቀማል፤ የCaveman የውጤት ሁነታ ግን የተለየ የምላሽ-ባህሪ ባህሪ ሆኖ ይቆያል።

RTK

RTK ሁነታ በትዕዛዝ እና በመሣሪያ ውጤት ላይ ያተኩራል፦

  • እንደ git statusgit branchgit diff፣ Vitest/Jest/Pytest፣ Cargo/Go ሙከራዎች፣ TypeScript/Vite/Webpack ግንባታዎች፣ ESLint፣ npm audit/installs፣ Docker ምዝግቦች፣ የshell find/grep፣ stack traces እና አጠቃላይ ምዝግቦች ያሉ የውጤት ምድቦችን ይለያል
  • open-sse/services/compression/engines/rtk/filters/ 49 JSON ማጣሪያዎችን ይተገብራል
  • የRTK-ዘይቤ መግለጫዊ የሂደት ቧንቧን ይደግፋል፦ ANSI ማስወገድ፣ መተካት፣ ውጤትን ሲዛመድ አጭር-ዙር ማድረግ፣ መስመሮችን ማስወገድ/ማቆየት፣ በእያንዳንዱ መስመር መቁረጥ፣ የመጀመሪያ/የመጨረሻ/ከፍተኛ-መስመር መቁረጥ እና ባዶ ሲሆን አማራጭ ውጤት
  • .rtk/filters.json ውስጥ በእምነት ቁጥጥር የተገደቡ የፕሮጀክት ማጣሪያዎችን እና በ DATA_DIR/rtk/filters.json ውስጥ ዓለም አቀፍ ማጣሪያዎችን ይደግፋል
  • ANSI ቅደም ተከተሎችን፣ የሂደት ጫጫታን፣ የተደጋገሙ መስመሮችን እና የማይጠቅም ተደጋጋሚ ጽሑፍን ያስወግዳል
  • እርምጃ ሊወሰድባቸው የሚችሉ ውድቀቶችን፣ ማስጠንቀቂያዎችን፣ ማጠቃለያዎችን፣ የተቀየሩ ፋይሎችን እና የመጨረሻ ዐውድን ይጠብቃል
  • በማረጋገጫ በተጠበቁ የአስተዳደር መስመሮች በኩል ለመልሶ ማግኘት/ማረም የተሸፈነ ጥሬ ውጤትን በአማራጭ ማቆየት ይችላል

የዳሽቦርዱ መገኛ Dashboard -> Context & Cache -> RTK ነው።

ለብጁ ማጣሪያዎች፣ እምነት፣ ማረጋገጥ እና ጥሬ-ውጤት መልሶ ማግኘት የሚያስፈልጉ የአሠራር ዝርዝሮች በ RTK_COMPRESSION.md ውስጥ ይገኛሉ።

የRTK ዋና ፕሮጀክት ለትዕዛዝ-ውጤት መጭመቅ 60-90% ቁጠባ እንዳለ ዘግቧል። የREADME ምሳሌው የ30-ደቂቃ Claude Code ክፍለ ጊዜ ከ~118,000 ቶከኖች ወደ ~23,900 ሲቀንስ፣ ወይም 79.7% ሲቆጠብ ያሳያል።

LLMLingua-2 (የትርጉም መከርከም)

LLMLingua-2 ሁነታ አነስተኛ ONNX የቶከን መደብ አውጪን በመጠቀም በጽሑፍ ላይ የትርጉም ቶከን መከርከም ያከናውናል፣ በዚህም በደንብ ላይ የተመሠረቱትን Caveman እና RTK ሞተሮች ያሟላል፦

  • በsystem ያልሆኑ መልዕክቶች ውስጥ ያለ ጽሑፍን ብቻ ይጭመቃል፤ fenced የኮድ ብሎኮች እና ሌሎች የሚጠበቁ አወቃቀሮች ፈጽሞ አይቀየሩም
  • @atjsh/llmlingua-2 backendን (ONNX በ@huggingface/transformers በኩል) በworker thread ውስጥ ያስኬዳል፤ ስለዚህ የሞዴል inference የጥያቄ event loopን ፈጽሞ አያግድም
  • ሊደራረብ ይችላል (stackPriority 35)፦ በተደራረበ የሂደት ቧንቧ ውስጥ ከመዋቅራዊ ሞተሮች (CCR፣ session-dedup፣ headroom፣ Caveman) በኋላ ነገር ግን ከultra በፊት ይሰራል፤ ምክንያቱም የትርጉም መከርከም አስቀድሞ በመዋቅር በተጨመቀ ጽሑፍ ላይ የበለጠ ውጤታማ ነው — ለምሳሌ rtk -> caveman -> llmlingua
  • በማንኛውም ስህተት ጊዜ ክፍት ሆኖ ይቀጥላል (የጎደሉ optional deps፣ worker spawn፣ model load፣ inference፣ ወይም timeout) → የመጀመሪያው ጽሑፍ ሳይቀየር ይመለሳል፣ ስህተት ፈጽሞ አይመለስም

የሞተሩ መገኛ፦ 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 መስክ በኩል ይገኛል። @huggingface/transformers የተመረጠውን ሞዴል በመጀመሪያው ጥሪ (modelStore.ts) ጊዜ ከHuggingFace Hub ወደ ${DATA_DIR}/models/llmlingua በሚያስፈልግበት ጊዜ ያወርዳል፤ የmodelPath ውቅር መሻር በምትኩ ወደ አካባቢያዊ ቅጂ ይጠቁማል (ከመስመር ውጭ / ከአውታረ መረብ የተነጠሉ ጭነቶች)።

አማራጭ ጥገኞች እና በፍላጎት ጊዜ መጫን

ሊከረከም የሚችለው የLLMLingua runtime peer stack አማራጭ ነው። ሁለት ጥቅሎች በ package.json ውስጥ እንደ optionalDependencies ተገልጸዋል፣ እና በproduction build በውጭ ተይዘዋል (scripts/build/prepublish.ts አያጠቃልላቸውም)፦

ጥቅል ስሪት (የተቆለፈ) ማስታወሻዎች
@atjsh/llmlingua-2 2.0.5 ዋና ጥቅል፤ ሌሎቹን እንደ peers ይገልጻል
js-tiktoken ^1.0.20 ቶከን አውጪ

@huggingface/transformers^4.2.0 ላይ ተቆልፏል (ከአካባቢያዊው embeddings ዱካ ጋር የሚጋራ እና ወደ standalone bundleም የሚካተት)፤ @atjsh/llmlingua-2@2.0.5"^3.5.2 || ^4.0.0" ላይ peer ጥገኝነት አለው፣ ስለዚህ ሁለቱም Transformers.js v3 እና v4 ይደገፋሉ። ከ2.0.4 ጀምሮ፣ @atjsh/llmlingua-2 ከእንግዲህ @tensorflow/tfjsን አይፈልግም፤ ይህም ከSLM stack ውስጥ ትልቁን ነጠላ አስተዋጽኦ አድራጊ (TensorFlow.js) አስወግዷል። ከላይ ያሉት ሁለት ጥቅሎች ብቻ ሊከረከሙ የሚችሉ SLM peers ናቸው። መደበኛ npm install (dev)፣ አማራጭ ጥገኞች ካልተወገዱ በስተቀር፣ አማራጭ stackን በራስ-ሰር ይጭናል።

ለምን በፍላጎት ጊዜ፦ በnpm የታተመው ጥቅል፣ standalone bundle እና Docker image መጠናቸውን አነስተኛ ለማድረግ እነዚህን deps ሳያካትቱ ይላካሉ። እነሱ በማይኖሩበት ጊዜ፣ የworker ጥገኝነት በር (@atjsh/llmlingua-2 resolve probe በworker.ts ውስጥ) ይወድቃል እና ሞተሩ ያለምንም ድምፅ ክፍት ሆኖ ይቀጥላል — LLMLinguaን መምረጥ ምንም ተግባር አይኖረውም (ጽሑፉ ሳይቀየር ይመለሳል፣ ምንም ስህተት አይመዘገብም)። በተከረከመ አካባቢ ውስጥ ለማግበር፣ አማራጭ stackን ይጫኑ፦

# በpackage.json optionalDependencies ውስጥ የተገለጹትን ስሪቶች ይጠቀሙ
npm install @atjsh/llmlingua-2@2.0.5 js-tiktoken

@tensorflow/tfjs መወገድ (2.0.4+) ከዚህ ቀደም አብዛኛውን የያዘውን ~800 MB አስተዋጽኦ ያስወግዳል — የቀረው መጠን transformers.js + onnxruntime-node runtimes፣ በመጀመሪያ አጠቃቀም ጊዜ የሚወርደው TinyBERT ሞዴል (~57 MB) ጋር ነው (በnpm በኩል አይደለም)።

በእያንዳንዱ አካባቢ፦

  • Dev / npm install--omit=optional ካላስተላለፉ በስተቀር በራስ-ሰር ይጫናል (ወይም --no-optional)። ምንም እርምጃ አያስፈልግም።
  • Global npm (npm i -g omniroute) / ራሱን የቻለ — ከላይ ያለውን የመጫኛ ትዕዛዝ በተጫነው package ማውጫ ውስጥ ያስኪዱ፣ ወይም አማራጭ dependenciesን ሳያስቀሩ እንደገና ይጫኑ።
  • Docker — የመጫኛ ትዕዛዙን ከእሱ በተዘጋጀ የimage ንብርብር ውስጥ ያክሉ፤ የታተመው image ሆን ተብሎ ቀለል ተደርጎ ይቀርባል።
  • VPS (PM2) — በመተግበሪያው node_modules ውስጥ ይጫኑ፣ ከዚያም worker የgateን ሁኔታ እንደገና እንዲፈትሽ ሂደቱን ዳግም ያስጀምሩ።
  • Raw Next standalone (npm run build.build/next/standalone/server.js) — የstandalone trace workerንም ሆነ አማራጭ dependenciesን አያካትትም፤ ስለዚህ engine ያለማስጠንቀቂያ ክፍት ሆኖ ውድቀቱን ያልፋል። scripts/build/colocate-standalone.mjs ሁለቱንም (worker esbuild + የአማራጭ dependency ሙሉ ስብስብን ወደ standalone tree) እንደገና ያክላል፤ ከእያንዳንዱ build በኋላ በ postbuild npm hook በኩል በራስ-ሰር ይሰራል። ደጋግሞ ሲሰራ ተመሳሳይ ውጤት ያለው ሲሆን፣ dependencies ከሌሉ ችግር ሳያስከትል ያልፋል።

ንቁ መሆኑን ያረጋግጡ: LLMLingua ሲመረጥ እውነተኛ ጽሑፍ በትክክል ያጥራል (engine ውድቀቱን ክፍት ሆኖ ማለፍ ያቆማል)፣ እና የመጀመሪያው ጥያቄ modelን ወደ ${DATA_DIR}/models/llmlingua እንዲወርድ ያደርጋል። gate ሆን ብሎ @atjsh/llmlingua-2ን ብቻ ይፈትሻል — ሌሎቹ peers ESM-only ናቸው፣ እና በሚገኙበት ጊዜም require.resolve በእነሱ ላይ ስህተት ይጥላል — ስለዚህ በimport() ጊዜ ከpeers መካከል አንዱ በእውነት ከጎደለ worker አሁንም ውድቀቱን ክፍት ሆኖ ያልፋል።

የተደራረቡ ፓይፕላይኖች

የተደራረበ ሁነታ የፓይፕላይን ደረጃዎችን በቅደም ተከተል ያስኬዳል። ነባሪው፦

rtk -> caveman

አንድ መጠየቂያ የትዕዛዝ ውጤትን ከሰው ወይም ከረዳት ስድ ንባብ ጋር ለሚያጣምርባቸው የኮድ አዘጋጅ ወኪል ክፍለ ጊዜዎች ይህን ይጠቀሙ። RTK በመጀመሪያ ጫጫታ የበዛባቸውን የመሣሪያ ምዝግቦች ይቀንሳል፣ ከዚያም Caveman የቀረውን ተፈጥሯዊ ቋንቋ ይጨምቃል።

የፓይፕላይን ደረጃዎች በመጭመቂያ ቅንብሮች ውስጥ ባለው stackedPipeline ወይም በመጭመቂያ ጥምረቶች በኩል ይዋቀራሉ።

ሁለቱም ሞተሮች ተመሳሳዩን ብቁ የውሂብ ጭነት ሲቀንሱ፣ ቁጠባዎቹ ይደራረባሉ፦

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 እና browser-automation MCP አገልጋዮች ባሉ መሣሪያዎች የሚመለሱትን ዝርዝር የተደራሽነት ዛፍ እና የአሳሽ ቅጽበታዊ ምስል የውሂብ ጭነቶችን ያነጣጥራል።

የሚያከናውነው

  1. ጫጫታን ማስወገድ — ባዶ አጠቃላይ/የጽሑፍ ግቤቶችን (- generic:- text: "") ያስወግዳል
  2. ተመሳሳይ ደረጃ ያላቸውን ማጠቃለል — ≥ collapseThreshold (ነባሪ 30) ተከታታይ መስመሮች የመዋቅር ድግግሞሾች ሲሆኑ፣ ወደ መጀመሪያዎቹ collapseKeepHead (ነባሪ 10) መስመሮች + የብዛት ማጠቃለያ + የመጨረሻዎቹ collapseKeepTail (ነባሪ 5) መስመሮች ያጠቃልላቸዋል
  3. የማጣቀሻ ጥበቃ — በPlaywright/computer-use የሚፈለጉ [ref=eXX] መልሕቆች ፈጽሞ አይነኩም
  4. ጠንካራ መቁረጥ — ጽሑፉ ከተጠቃለለ በኋላ አሁንም maxTextCharsን (ነባሪ 50,000) የሚያልፍ ከሆነ፣ ወኪሉ ሥራውን እንዲቀጥል በሚያስችል የዳሰሳ ፍንጭ ይቆርጠዋል

የሞተሩ አካባቢ

open-sse/services/compression/engines/mcpAccessibility/
  index.ts            ← የsmartFilterText() መግቢያ ነጥብ
  collapseRepeated.ts ← ተመሳሳይ ደረጃ ያላቸውን የማጠቃለል ስልተ ቀመር
  constants.ts        ← DEFAULT_MCP_ACCESSIBILITY_CONFIG

ውቅር

በዓለም አቀፍ ቅንብሮች (ፍልሰት 056) ውስጥ ባለው compression.mcpAccessibility ይቆጣጠራል። ነባሪ ውቅር፦

{
  "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፦ ሁነታን፣ pipelineን፣ የRTK ውቅርን፣ የቋንቋ ውቅርን እና ነባሪ ምልክትን ያከማቻል
  • compression_combo_assignments፦ የጨመቃ ጥምረትን ከማዘዋወሪያ ጥምረት ጋር ያዛምዳል
  • የruntime ውህደቱ ከአጠቃላይ የጥምረት ሽረቶች በፊት የተመደበውን የጨመቃ ጥምረት ይፈታል
  • analytics compression_combo_id እና engineን ያካትታል

የDashboard መገኛ፦ Dashboard -> Context & Cache -> Compression Combos

የAPI በይነገጽ

Route ዓላማ
/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 ቅድመ-እይታ/ሙከራ endpoint
/api/context/rtk/raw-output/[id] ማንነት የተረጋገጠ፣ ሚስጥራዊ መረጃው የተሰወረ raw-output መልሶ ማግኘት
/api/context/combos የጨመቃ ጥምረት CRUD
/api/context/combos/[id]/assignments የማዘዋወሪያ ጥምረት ምደባ CRUD
/api/context/analytics የጨመቃ analytics ተለዋጭ ስም

የአስተዳደር routes የአስተዳደር ማንነት ማረጋገጫ ወይም የAPI-key ፖሊሲ ፍተሻዎችን ይፈልጋሉ።

የMCP መሣሪያዎች

ጨመቃ አምስት የMCP መሣሪያዎችን ያቀርባል፦

Tool Scope ዓላማ
omniroute_compression_status read:compression ቅንብሮች፣ analytics፣ የcache ስታቲስቲክስ
omniroute_compression_configure write:compression ዓለም አቀፍ ቅንብሮችን ማዘመን
omniroute_set_compression_engine write:compression ሁነታን እና አማራጭ pipelineን ማዘጋጀት
omniroute_list_compression_combos read:compression የጨመቃ ጥምረቶችን መዘርዘር
omniroute_compression_combo_stats read:compression የጥምረት/engine analyticsን ማንበብ

ወሰን እና ማግለያዎች

Embeddings በፍጹም አይጨመቁም። open-sse/handlers/embeddings.ts ምንም የጨመቃ engine አይጠራም — የrequest/response bodies ሳይነኩ በቀጥታ ወደ executor ያልፋሉ። ይህ በአሁኑ ጊዜ መዋቅራዊ ነው (embeddings እና chat completions የተለያዩ handlers ናቸው)፣ የruntime ፍተሻ አይደለም፤ ነገር ግን ይህ በ#8034 ያለው የvector-distortion ስጋት በembeddings path ውስጥ የተጋላጭነት መገኛ እንደሌለው ያሳያል።

የእያንዳንዱ-model/endpoint ማግለያ ማጣሪያ (#8034)። ለchat completions፣ operator ፈጽሞ መጨመቅ የሌለባቸውን model ids / provider/model targets መጥቀስ ይችላል — ይህ ወደፊት ጨመቃ ከembeddings አጠገብ ካለ path ጋር ይበልጥ በቅርብ ቢገናኝ ጠቃሚ የሆነ guardrail ሲሆን፣ ትክክለኛው byte-for-byte prompt አስፈላጊ ለሆነበት ማንኛውም model (deterministic evals፣ cache-sensitive prefixes፣ ወዘተ) በአጠቃላይ ጠቃሚ ነው።

  • የቅንብሮች field፦ በዓለም አቀፍ የጨመቃ config ላይ exclusions?: string[] (GET/PUT /api/settings/compression)፣ ባለው key_value የጨመቃ namespace (src/lib/db/compression.ts) በኩል ይቀመጣል — አዲስ table የለም።
  • የDashboard tab፦ Dashboard → Compression → Exclusions (/dashboard/compression/exclusions)።
  • የpattern syntax፦ * ብቸኛው wildcard ነው። በpattern ውስጥ ያሉ ሌሎች ሁሉም regex metacharacters ከማዛመድ በፊት escaped ይደረጋሉ፤ ስለዚህ gpt-5.6 ከliteral string ጋር ብቻ ይዛመዳል፣ ከgpt-5x6 ጋር ፈጽሞ አይዛመድም (ReDoS-safe፣ bounded፣ nested quantifiers የሉም)። Patterns ከbare model id እና ከprovider/model composite ሁለቱም ጋር case-insensitive በሆነ መንገድ ይዛመዳሉ — gpt-5-6openai/gpt-5-6 እና openai/* ሁሉም ይሰራሉ፣ እንዲሁም * ብቻውን ሁሉንም model ያገላል።
  • ማዛመድ፦ open-sse/services/compression/exclusions.ts ውስጥ isCompressionExcluded() / normalizeCompressionExclusions()chatCore.ts የጨመቃ ቅንብሮችን ከፈታ በኋላ፣ ማንኛውም engine ከመስራቱ በፊት፣ የተገለለውን target ይፈትሻል፣ እና ማዛመድን ልክ ጨመቃ በዓለም አቀፍ ደረጃ disabled እንደሆነ ይይዘዋል — የrequest body በማስረጃ byte-identical ነው። መዝለሉ ለanalytics ታይነት በwriteCompressionSkip(..., "excluded") በኩል ይመዘገባል።
  • ነባሪ (ባዶ/የሌለ list)፦ ከ#8034 በፊት ከነበረው behavior ጋር ተመሳሳይ ነው — ምንም ነገር አይገለልም።

የታወቁ ገደቦች

  • LLMLingua-2 (SLM) አማራጭ ጥገኞች በአንድ ቦታ እንዲገኙ ይፈልጋል። worker-ው በ production build ውስጥ የሚሠራው @atjsh/llmlingua-2 + peers ወደ dist/node_modules በአንድ ቦታ ሲቀመጡ ብቻ ነው (scripts/build/colocateOptionals.mjsን፣ #4286ን ይመልከቱ)። እነዚህ ከሌሉ engine-ው በfail-open ሁኔታ ይሠራል (ዋናውን ጽሑፍ ይመልሳል)። የworker resolution ከእንግዲህ በ import.meta.url ላይ አይመሠረትም (በstandalone bundle ውስጥ አይሠራም) — በruntime cwd / argv[1] ላይ ይመሠረታል።
  • የCaveman ቋንቋ packs de / fr / ja ከፊል ናቸው። context + filler + structural ደንቦችን ይዘው ይመጣሉ፣ ነገር ግን dedup / ultra packs የላቸውም፤ ስለዚህ ultra intensity ለእነዚያ ቋንቋዎች ከfull የበለጠ ጠንካራ አይደለም (የራሳቸውን ደንቦች ብቻ ይጠቀማሉ — የውጭ ቋንቋ ጽሑፍን ሊያበላሹ የሚችሉትን የእንግሊዝኛ dedup/ultra ደንቦች በድብቅ አይጠቀሙም)። en / es / id / pt-BR የተሟሉ ናቸው። ለከፊል packs የdedup.json + ultra.json አስተዋጽኦዎች በደስታ ይቀበላሉ።
  • የተደራረበ telemetry የሚዘረዝረው ጨመቃ ያከናወኑ enginesን ብቻ ነው። engine-ው የሠራበት ነገር ግን 0 % ቅነሳ ያስገኘው የstacked-pipeline ደረጃ stats:nullን ይመልሳል፣ ስለዚህም በ engineBreakdown ውስጥ አይታይም — ከተዘለለ ደረጃ ለመለየት አይቻልም። "ሠርቷል፣ 0 %"ን ከ"ተዘሏል" መለየት የbreakdown-model ለውጥን የሚፈልግ ሲሆን ለወደፊት ተላልፏል።

ማረጋገጫ

ለዚህ ክፍል የተመረጡት gates እነዚህ ናቸው፦

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