* 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.
39 KiB
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: 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ን ይመልከቱ። የ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/ውስጥ ቋንቋን የሚያገናዝቡ የፋይል ደንብ ጥቅሎችን ይደግፋል - በቀድሞዎቹ
standard፣aggressiveእናultraሁነታዎች በኩል መጠቀም ይቻላል
የዳሽቦርዱ መገኛ Dashboard -> Context & Cache -> Caveman ነው።
የCaveman ዋና ፕሮጀክት ~75% ያነሱ የውጤት ቶከኖች፣ በቤንችማርኮች በአማካይ 65% የውጤት ቁጠባ፣
ከ22-87% ክልል ጋር፣ እንዲሁም ~46% የግብዓት መጭመቂያ መሣሪያ እንዳለው ዘግቧል። OmniRoute የተደራረቡ የፕሮምፕት/ዐውድ ቁጠባዎችን ሲመዘግብ የCaveman የግብዓት-ወገን ቁጥርን ይጠቀማል፤ የCaveman የውጤት ሁነታ ግን የተለየ የምላሽ-ባህሪ ባህሪ ሆኖ ይቆያል።
RTK
RTK ሁነታ በትዕዛዝ እና በመሣሪያ ውጤት ላይ ያተኩራል፦
- እንደ
git status፣git branch፣git diff፣ Vitest/Jest/Pytest፣ Cargo/Go ሙከራዎች፣ TypeScript/Vite/Webpack ግንባታዎች፣ ESLint፣ npm audit/installs፣ Docker ምዝግቦች፣ የshellfind/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-2backendን (ONNX በ@huggingface/transformersበኩል) በworker thread ውስጥ ያስኬዳል፤ ስለዚህ የሞዴል inference የጥያቄ event loopን ፈጽሞ አያግድም - ሊደራረብ ይችላል (
stackPriority35)፦ በተደራረበ የሂደት ቧንቧ ውስጥ ከመዋቅራዊ ሞተሮች (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 በኋላ በpostbuildnpm 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 አገልጋዮች ባሉ መሣሪያዎች የሚመለሱትን ዝርዝር የተደራሽነት ዛፍ እና የአሳሽ ቅጽበታዊ ምስል የውሂብ ጭነቶችን ያነጣጥራል።
የሚያከናውነው
- ጫጫታን ማስወገድ — ባዶ አጠቃላይ/የጽሑፍ ግቤቶችን (
- generic:፣- text: "") ያስወግዳል - ተመሳሳይ ደረጃ ያላቸውን ማጠቃለል — ≥
collapseThreshold(ነባሪ 30) ተከታታይ መስመሮች የመዋቅር ድግግሞሾች ሲሆኑ፣ ወደ መጀመሪያዎቹcollapseKeepHead(ነባሪ 10) መስመሮች + የብዛት ማጠቃለያ + የመጨረሻዎቹcollapseKeepTail(ነባሪ 5) መስመሮች ያጠቃልላቸዋል - የማጣቀሻ ጥበቃ — በPlaywright/computer-use የሚፈለጉ
[ref=eXX]መልሕቆች ፈጽሞ አይነኩም - ጠንካራ መቁረጥ — ጽሑፉ ከተጠቃለለ በኋላ አሁንም
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ን በሚያልፍ የመሣሪያ ውጤት የውሂብ ጭነቶች ላይ ብቻ ነው። የመጠየቂያ መጭመቂያን ወይም የጥያቄ የውሂብ ጭነቶችን አይነካም።
የሚጠበቁ ቁጠባዎች
እንደ ገጹ ውስብስብነት፣ በአሳሽ ቅጽበታዊ ምስል መሣሪያ ውጤቶች ላይ 60–80%። የማጠቃለያ ስልተ ቀመሩ በመስመር ብዛት 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/modelcomposite ሁለቱም ጋር case-insensitive በሆነ መንገድ ይዛመዳሉ —gpt-5-6፣openai/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/ultrapacks የላቸውም፤ ስለዚህultraintensity ለእነዚያ ቋንቋዎች ከ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