* 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.
61 KiB
Compression Engines (தமிழ்)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
OmniRoute சுருக்கம் எஞ்சின் ஒப்பந்தங்களை மையமாகக் கொண்டு உருவாக்கப்பட்டுள்ளது. ஒரு பயன்முறை ஓர் எஞ்சினை நேரடியாக
(caveman அல்லது rtk) இயக்கலாம் அல்லது பல எஞ்சின்களை வரிசையாக இயக்கும் நிர்ணயிக்கப்பட்ட அடுக்குக் குழாய்த்தொடரைப் பயன்படுத்தலாம்.
பயன்முறைகள்
| பயன்முறை | எஞ்சின் பாதை | நோக்கமிடப்பட்ட உள்ளீடு |
|---|---|---|
off |
எதுவுமில்லை | துல்லியமான prompt பாதுகாப்பு |
lite |
Caveman lite உதவிகள் | குறைந்த அபாயமுள்ள, எப்போதும் இயங்கும் தூய்மைப்படுத்தல் |
standard |
Caveman | இயல்புமொழி prompt சுருக்கம் |
aggressive |
Caveman + வரலாறு/கருவிச் சுருக்கிகள் | நீண்ட அரட்டை அமர்வுகள் |
ultra |
Caveman + கத்தரிப்பு உதவிகள் | சூழல் வரம்பிலிருந்து மீட்பு |
rtk |
RTK | முனையம், shell, build, test மற்றும் git வெளியீடு |
omniglyph |
OmniGlyph | சொந்த வழங்குநர் இணைப்பில் படமாகச் சூழல் |
stacked |
குழாய்த்தொடர், இயல்புநிலை rtk -> caveman |
கலப்பு கருவிப் பதிவுகள் மற்றும் உரைநடை, அதிகபட்சச் சேமிப்பு |
OmniGlyph சுருக்கச் சுயவிவரங்கள்
omniglyph எஞ்சின் (omniglyph தொகுப்பு, 1.4.0+) பெயரிடப்பட்ட பொருள்சார் சுயவிவரத்தை ஏற்கிறது; இது
சுருக்க அமைப்புகளில் omniglyph.profile வழியாக உலகளாவிய முறையிலோ அல்லது அடுக்குக் குழாய்த்தொடரின்
படிநிலைக் கட்டமைப்பு வழியாக ஒவ்வொரு படிக்கும் தனித்தனியாகவோ அமைக்கப்படுகிறது:
| சுயவிவரம் | வரம்பு |
|---|---|
aggressive |
இயல்புநிலை. வெளியிடப்பட்ட ரசீதுகள் அளவிட்ட கொள்கை — system, கருவி ஆவணங்கள் மற்றும் அடர்த்தியான வரலாற்றைப் படமாக்குகிறது |
balanced |
நிகழ்நிலை நிலையை மூல வடிவில் வைத்திருந்து, கடைசி 8 சுற்றுகளைப் பாதுகாத்து, பழைய முடிவடைந்த வரலாற்றைச் சுருக்குகிறது |
coding-safe |
அதிகாரம், கருவி schema-கள் மற்றும் நிகழ்நிலை கருவி வெளியீட்டை மூல வடிவில் வைத்திருந்து, கடைசி 12 சுற்றுகளைப் பாதுகாக்கிறது |
passthrough |
மாற்றாமல் வழிச்செலுத்துகிறது; எஞ்சின் தவிர்க்கப்படுகிறது |
இந்தச் சுயவிவரம் ஒரு உச்சவரம்பு, குறைந்தபட்ச வரம்பு அல்ல: தொகுப்பிலுள்ள mergeCompressionProfileOptions,
சுயவிவரம் மூடிய இழப்புடைய பாதையை அழைப்பாளர் override மீண்டும் திறக்க அனுமதிக்காது; எனவே ஒவ்வொரு படிக்குமான
preserveSystemPrompt: false, coding-safe கீழ் system சுருக்கத்தை மீண்டும் இயக்க முடியாது.
இந்த codebase-இல் அளவிடப்பட்டபடி: coding-safe மற்றும் balanced, minCompressChars-ஐ அதன்
அதிகபட்சத்திற்கு உயர்த்தி, system, கருவி schema-கள் மற்றும் கருவி முடிவுகளை மூல வடிவிலேயே வைத்திருக்கின்றன; ஆகவே இன்னும்
வரலாற்றைக் குவிக்காத ஓர் அமர்வு below_min_chars-இல் நிறுத்தப்பட்டு, எஞ்சின் எதையும் மாற்றாது. அதனால்தான்
பாதுகாப்பான சுயவிவரத்துக்குப் பதிலாக aggressive இயல்புநிலையாக உள்ளது.
தொகுப்பு அதன் சொந்த மாதிரி வரம்பையும் சுயவிவரத்தையும் அதன் சூழல் கட்டமைப்பிலிருந்து தீர்மானிக்கிறது. OmniRoute ஒருபோதும் அந்த முடிவை ஒப்படைப்பதில்லை: adapter, மாதிரி gate-ஐத் தொகுப்பின் மிகக் கட்டுப்பாடான வரம்புக்குப் பொருத்துகிறது; எனவே host சூழல் அமைப்புகள் allowlist-ஐக் குறுக்க மட்டுமே முடியும், OmniRoute-இன் அளவிடப்பட்ட ரசீதுகளைத் தாண்டி அதை விரிவுபடுத்த முடியாது.
எஞ்சின் பதிவகம்
பதிவகம் open-sse/services/compression/engines/registry.ts-இல் உள்ளது. எஞ்சின்கள் ஒரு பகிரப்பட்ட
ஒப்பந்தத்தை வழங்குகின்றன:
id:cavemanஅல்லதுrtkபோன்ற நிலையான எஞ்சின் IDapply(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 ஆகியவற்றுடன் சேர்த்து, பதிவகம் பல சிறப்புப் பயன்பாட்டுக்கான இழப்பற்ற / கட்டமைப்பு எஞ்சின்களையும் வழங்குகிறது (அடுக்கப்பட்ட பைப்லைன்கள், பிளேகிரவுண்ட் மற்றும் சோதனைகளால் பயன்படுத்தப்படுபவை):
| எஞ்சின் | ID | அது என்ன செய்கிறது |
|---|---|---|
| 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] குறியீட்டின் பொருள் என்ன, hash அப்படியே நகலெடுக்கப்பட வேண்டும்
(அனைத்து 24 hex எழுத்துகளும் — தவறாக நகலெடுக்கப்பட்ட hash-களே "block not found" தவறுகளுக்கான
சாத்தியமான காரணம்), மேலும் [dedup:ref sha=...] குறியீடு என்பது "வரலாற்றில் பின்னோக்கிப் பார்" என்பதைக்
குறிக்கிறது, "கருவியை அழை" என்பதை அல்ல. அழைப்பவர் அறிவித்த tools[], உண்மையில்
omniroute_ccr_retrieve-ஐ அணுக முடியும் என்பதை நிரூபிக்கும் போது மட்டுமே இந்தக் குறிப்பு செருகப்படும்
(open-sse/services/compression/engines/ccr/protocolInstruction.ts-இல் உள்ள
callerSupportsCcrRetrieve()) — அந்தக் கருவி இல்லாத சாதாரண OpenAI-இணக்கமான அழைப்பவர், தன்னால்
அணுக முடியாத ஒன்றை அழைக்கும்படி அறிவுறுத்தலை ஒருபோதும் பெறமாட்டார். செருகுவதற்கு முன் செய்தி வரலாற்றில்
சென்டினல் உள்ளதா என ஸ்கேன் செய்வதன் மூலம் மீள்செயல்பாட்டு மாற்றமின்மை உறுதிசெய்யப்படுகிறது; ஆகவே முந்தைய
செய்திகளை மீண்டும் அனுப்பும் பல-சுற்றுக் கோரிக்கைகள், ஒவ்வொரு சுற்றிலும் குறிப்பை அடுக்காது.
Caveman
Caveman பயன்முறை இயல்பான உரையின் சொற்பொருள் சுருக்கத்தில் கவனம் செலுத்துகிறது:
- குறியீட்டுத் தொகுதிகள், URL-கள், JSON, பாதைகள் மற்றும் கட்டமைக்கப்பட்ட தரவைப் பாதுகாக்கிறது
- தேவையற்ற நிரப்புச் சொற்கள், தயக்கமான சொற்றொடர்கள், மீண்டும் கூறப்படும் சூழல் மற்றும் அளவுக்கு அதிகமான இணைப்புச் சொற்றொடர்களை நீக்குகிறது
open-sse/services/compression/rules/-இல் மொழி சார்ந்த கோப்பு விதித் தொகுப்புகளை ஆதரிக்கிறது- மரபுவழி
standard,aggressiveமற்றும்ultraபயன்முறைகள் வழியாகவும் தொடர்ந்து கிடைக்கிறது
டாஷ்போர்டில் இதற்கான இடம் Dashboard -> Context & Cache -> Caveman.
Caveman upstream அறிக்கையின்படி, வெளியீட்டு டோக்கன்கள் ~75% குறைவாகவும், அளவுகோல் சோதனைகளில் சராசரி வெளியீட்டுச் சேமிப்பு 65% ஆகவும்,
அதன் வரம்பு 22-87% ஆகவும் உள்ளது; மேலும் இது ஒரு ~46% உள்ளீட்டுச் சுருக்கக் கருவியாகும். அடுக்கப்பட்ட prompt/context சேமிப்புகளை ஆவணப்படுத்தும்போது OmniRoute, Caveman-இன் உள்ளீட்டுப் பக்க
எண்ணிக்கையைப் பயன்படுத்துகிறது; Caveman வெளியீட்டுப் பயன்முறை தனியான
பதில்-நடத்தை அம்சமாகவே உள்ளது.
RTK
RTK பயன்முறை கட்டளை மற்றும் கருவி வெளியீட்டில் கவனம் செலுத்துகிறது:
git status,git branch,git diff, Vitest/Jest/Pytest, Cargo/Go சோதனைகள், TypeScript/Vite/Webpack உருவாக்கங்கள், ESLint, npm audit/நிறுவல்கள், Docker பதிவுகள், shellfind/grep, stack trace-கள் மற்றும் பொதுவான பதிவுகள் போன்ற வெளியீட்டு வகைகளைக் கண்டறிகிறதுopen-sse/services/compression/engines/rtk/filters/-இலிருந்து 49 JSON வடிப்பான்களைப் பயன்படுத்துகிறது- RTK-பாணியிலான அறிவிப்புசார் pipeline-ஐ ஆதரிக்கிறது: ANSI நீக்கம், மாற்றீடு, match-output short-circuit, வரிகளை நீக்குதல்/தக்கவைத்தல், ஒவ்வொரு வரிக்குமான சுருக்கம், head/tail/max-line சுருக்கம் மற்றும் காலியாக இருக்கும்போது பயன்படுத்தப்படும் மாற்று
.rtk/filters.json-இல் நம்பிக்கை-கட்டுப்படுத்தப்பட்ட திட்ட வடிப்பான்களையும்,DATA_DIR/rtk/filters.json-இல் உலகளாவிய வடிப்பான்களையும் ஆதரிக்கிறது- ANSI வரிசைகள், முன்னேற்ற இரைச்சல், மீண்டும் வரும் வரிகள் மற்றும் பயனற்ற பொதுவார்ப்புரைகளை நீக்குகிறது
- நடவடிக்கை எடுக்கக்கூடிய தோல்விகள், எச்சரிக்கைகள், சுருக்கங்கள், மாற்றப்பட்ட கோப்புகள் மற்றும் இறுதிப் பகுதியின் சூழலைப் பாதுகாக்கிறது
- அங்கீகரிக்கப்பட்ட மேலாண்மை வழித்தடங்கள் மூலம் மீட்பு/பிழைத்திருத்தத்திற்காக மறைக்கப்பட்ட மூல வெளியீட்டை விருப்பத்தேர்வாகத் தக்கவைக்க முடியும்
டாஷ்போர்டில் இதற்கான இடம் Dashboard -> Context & Cache -> RTK.
தனிப்பயன் வடிப்பான்கள், நம்பிக்கை, சரிபார்ப்பு மற்றும் மூல வெளியீட்டு மீட்புக்கான செயல்பாட்டு விவரங்கள்
RTK_COMPRESSION.md-இல் உள்ளன.
RTK upstream அறிக்கையின்படி, கட்டளை வெளியீட்டுச் சுருக்கத்தில் 60-90% சேமிப்பு கிடைக்கிறது. அதன் README எடுத்துக்காட்டில்,
30 நிமிட Claude Code அமர்வு ~118,000 டோக்கன்களிலிருந்து ~23,900 டோக்கன்களாகக் குறைந்து, 79.7% சேமிக்கப்படுவது காட்டப்படுகிறது.
LLMLingua-2 (சொற்பொருள் சார்ந்த களைதல்)
LLMLingua-2 பயன்முறை, ஒரு சிறிய ONNX டோக்கன் வகைப்படுத்தியைப் பயன்படுத்தி உரையில் சொற்பொருள் சார்ந்த டோக்கன் களைதலை மேற்கொள்கிறது; இது விதி சார்ந்த Caveman மற்றும் RTK engine-களுக்குத் துணைபுரிகிறது:
- system அல்லாத செய்திகளிலுள்ள உரையை மட்டும் சுருக்குகிறது; fenced code block-கள் மற்றும் பாதுகாக்கப்படும் பிற கட்டமைப்புகள் ஒருபோதும் மாற்றப்படுவதில்லை
@atjsh/llmlingua-2backend-ஐ (@huggingface/transformersவழியாக ONNX) ஒரு worker thread-இல் இயக்குகிறது; எனவே model inference ஒருபோதும் request event loop-ஐத் தடுக்காது- இது அடுக்கக்கூடியது (
stackPriority35): அடுக்கப்பட்ட pipeline-இல், கட்டமைப்பு engine-களுக்குப் (CCR, session-dedup, headroom, Caveman) பிறகும்ultra-வுக்கு முன்பும் இயங்குகிறது; ஏனெனில் ஏற்கெனவே கட்டமைப்புரீதியாகச் சுருக்கப்பட்ட உரையில் சொற்பொருள் சார்ந்த களைதல் மிகவும் பயனுள்ளதாக இருக்கும் — எ.கா.rtk -> caveman -> llmlingua - எந்தப் பிழை ஏற்பட்டாலும் fail-open ஆகிறது (இல்லாத optional dependencies, worker spawn, model load, inference அல்லது timeout) → அசல் உரை எந்த மாற்றமுமின்றித் திருப்பி அளிக்கப்படும்; பிழை ஒருபோதும் திருப்பப்படாது
Engine இருப்பிடம்: 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), engine config-இன் model புலம் வழியாகக் கிடைக்கிறது. முதல் அழைப்பின்போது (modelStore.ts), தேர்ந்தெடுக்கப்பட்ட மாதிரியை HuggingFace Hub-இலிருந்து
${DATA_DIR}/models/llmlingua-க்குள் @huggingface/transformers
தேவைப்படும்போது பதிவிறக்குகிறது; அதற்குப் பதிலாக modelPath config override அதை ஒரு உள்ளூர் நகலை நோக்கச் செய்கிறது (இணைப்பில்லா / air-gapped நிறுவல்கள்).
விருப்பச் சார்புகள் மற்றும் தேவைக்கேற்ப நிறுவல்
களைதலுக்குட்படுத்தக்கூடிய LLMLingua runtime peer stack விருப்பமானது. இரண்டு தொகுப்புகள்
package.json-இல் optionalDependencies ஆக அறிவிக்கப்பட்டுள்ளன; மேலும் production build-இல்
(scripts/build/prepublish.ts அவற்றை bundle செய்வதில்லை) வெளிப்புறமாகவே வைக்கப்படுகின்றன:
| தொகுப்பு | பதிப்பு (நிலைப்படுத்தப்பட்டது) | குறிப்புகள் |
|---|---|---|
@atjsh/llmlingua-2 |
2.0.5 |
நுழைவுத் தொகுப்பு; மற்றவற்றை peer-களாக அறிவிக்கிறது |
js-tiktoken |
^1.0.20 |
Tokenizer |
@huggingface/transformers, ^4.2.0-இல் நிலைப்படுத்தப்பட்டுள்ளது (உள்ளூர் embeddings பாதையுடன் பகிரப்படுகிறது மற்றும்
standalone bundle-க்குள்ளும் trace செய்யப்படுகிறது); @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
peer-கள். optional dependencies தவிர்க்கப்படாத வரை, ஒரு வழக்கமான npm install (dev) விருப்ப stack-ஐத் தானாக நிறுவுகிறது.
தேவைக்கேற்ப நிறுவப்படுவதன் காரணம்: npm-இல் வெளியிடப்பட்ட தொகுப்பு, standalone bundle மற்றும் Docker image
ஆகியவை அளவைக் குறைவாக வைத்திருக்க இந்தச் சார்புகள் இல்லாமலே வழங்கப்படுகின்றன. அவை இல்லாதபோது, worker-இன் dependency
gate (worker.ts-இல் உள்ள @atjsh/llmlingua-2 resolve probe) தோல்வியடைந்து, engine
அமைதியாக fail-open ஆகிறது — LLMLingua-வைத் தேர்ந்தெடுப்பது எந்தச் செயலையும் செய்யாது (உரை மாற்றமின்றித் திருப்பப்படும்; எந்தப்
பிழையும் பதிவு செய்யப்படாது). களைதல் செய்யப்பட்ட சூழலில் அதைச் செயல்படுத்த, optional 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 runtime-களையும்,
முதல் பயன்பாட்டில் பதிவிறக்கப்படும் TinyBERT மாதிரியையும் (~57 MB; npm வழியாக அல்ல) கொண்டுள்ளது.
ஒவ்வொரு சூழலுக்கும்:
- Dev /
npm install— நீங்கள்--omit=optional(அல்லது--no-optional) என்பதை வழங்காத வரை தானாக நிறுவப்படும். எந்த நடவடிக்கையும் தேவையில்லை. - Global npm (
npm i -g omniroute) / தனித்தியங்கும் நிறுவல் — நிறுவப்பட்ட package கோப்பகத்திற்குள் மேலே உள்ள நிறுவல் கட்டளையை இயக்கவும், அல்லது விருப்பச் சார்புகளைத் தவிர்க்காமல் மீண்டும் நிறுவவும். - Docker — பெறப்பட்ட image layer ஒன்றில் நிறுவல் கட்டளையைச் சேர்க்கவும்; வெளியிடப்பட்ட image திட்டமிட்டே குறைந்த அளவில் வழங்கப்படுகிறது.
- VPS (PM2) — செயலியின்
node_modules-இல் நிறுவி, பின்னர் worker gate-ஐ மீண்டும் சோதிக்குமாறு process-ஐ மறுதொடக்கம் செய்யவும். - மூல Next தனித்தியங்கும் நிறுவல் (
npm run build→.build/next/standalone/server.js) — தனித்தியங்கும் trace-இல் worker-உம் விருப்பச் சார்புகளும் இடம்பெறாது; எனவே engine எந்த அறிவிப்புமின்றி fail-open ஆகும்.scripts/build/colocate-standalone.mjsஇரண்டையும் (worker esbuild + தனித்தியங்கும் tree-க்குள் optional-dep closure) மீண்டும் பயன்படுத்துகிறது; ஒவ்வொரு build-க்குப் பிறகும்postbuildnpm hook வழியாக இது தானாக இயங்கும். மீண்டும் இயக்கினாலும் பாதிப்பில்லாதது; சார்புகள் இல்லாதபோது மென்மையாகத் தோல்வியடையும்.
இது செயலில் உள்ளதா என்பதைச் சரிபார்க்கவும்: LLMLingua தேர்ந்தெடுக்கப்பட்டிருக்கும்போது, உண்மையான உரை நிஜமாகவே சுருங்கும் (engine
fail-open ஆவதை நிறுத்தும்), மேலும் முதல் request model-ஐ
${DATA_DIR}/models/llmlingua-க்குள் பதிவிறக்கத் தூண்டும். Gate திட்டமிட்டே @atjsh/llmlingua-2-ஐ மட்டும் சோதிக்கிறது —
மற்ற peer-கள் ESM-only என்பதால், அவை இருந்தாலும் require.resolve அவற்றில் பிழையை எழுப்பும் — எனவே
import() நேரத்தில் ஏதேனும் peer உண்மையாகவே இல்லாவிட்டால் worker தொடர்ந்து fail-open ஆகும்.
அடுக்கப்பட்ட பைப்லைன்கள்
அடுக்கப்பட்ட பயன்முறை பைப்லைன் படிகளை வரிசையாக இயக்குகிறது. இயல்புநிலை:
rtk -> caveman
கட்டளை வெளியீட்டையும் மனிதர் அல்லது உதவியாளரின் உரைநடையையும் ஒரே ப்ராம்ப்டில் இணைக்கும் coding-agent அமர்வுகளுக்கு இதைப் பயன்படுத்தவும். 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) மீறினால், agent தொடர்ந்து செயல்பட உதவும் வழிசெலுத்தல் குறிப்புடன் உரையைத் துண்டிக்கிறது
என்ஜின் இருப்பிடம்
open-sse/services/compression/engines/mcpAccessibility/
index.ts ← smartFilterText() நுழைவுப் புள்ளி
collapseRepeated.ts ← உடன்பிறப்பு-சுருக்க அல்காரிதம்
constants.ts ← DEFAULT_MCP_ACCESSIBILITY_CONFIG
உள்ளமைவு
உலகளாவிய அமைப்புகளில் (migration 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: பயன்முறை, பைப்லைன், 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 |
சேர்க்கை/எஞ்சின் பகுப்பாய்வுகளைப் படித்தல் |
வரம்பும் விலக்குகளும்
Embeddings ஒருபோதும் சுருக்கப்படுவதில்லை. open-sse/handlers/embeddings.ts எந்தவொரு
சுருக்க எஞ்சினையும் ஒருபோதும் அழைப்பதில்லை — கோரிக்கை/பதில் உடல்கள் மாற்றமின்றி நேரடியாக
செயல்படுத்திக்குச் செல்கின்றன. இது தற்போது கட்டமைப்பு சார்ந்தது (embeddings மற்றும் chat completions
தனித்தனி கையாளிகளாக உள்ளன), இயக்கநேரச் சரிபார்ப்பு அல்ல; ஆனால் #8034-இல் உள்ள வெக்டர்-சிதைவு
சார்ந்த கவலை embeddings பாதையில் வெளிப்படும் பரப்பைக் கொண்டிருக்கவில்லை என்பதே இதன் பொருள்.
மாதிரி/முனைப்புள்ளி வாரியான விலக்கு வடிகட்டி (#8034). Chat completions-க்கு, ஒருபோதும்
சுருக்கப்படக்கூடாத மாதிரி id-கள் / provider/model இலக்குகளை ஓர் இயக்குநர் குறிப்பிடலாம் — எதிர்காலத்தில்
embeddings-க்கு அருகிலுள்ள பாதையுடன் சுருக்கம் இணைக்கப்பட்டால் பயன்படும் ஒரு பாதுகாப்புத் தடுப்பு; மேலும்
துல்லியமான byte-for-byte prompt முக்கியமான எந்தவொரு மாதிரிக்கும் இது பொதுவாகப் பயனுள்ளதாக இருக்கும்
(தீர்மானிக்கத்தக்க மதிப்பீடுகள், கேச்-உணர்திறனுள்ள முன்னொட்டுகள் போன்றவை).
- அமைப்புப் புலம்: உலகளாவிய சுருக்க உள்ளமைவில்
exclusions?: string[](GET/PUT /api/settings/compression), ஏற்கெனவே உள்ளkey_valueசுருக்க பெயர்வெளி (src/lib/db/compression.ts) வழியாக நிலைநிறுத்தப்படுகிறது — புதிய அட்டவணை இல்லை. - டாஷ்போர்டு தாவல்: Dashboard → Compression → Exclusions
(
/dashboard/compression/exclusions). - வடிவத் தொடரியல்:
*மட்டுமே wildcard ஆகும். ஒரு வடிவத்தில் உள்ள மற்ற அனைத்து regex மீக்குறிகளும் பொருத்துதலுக்கு முன் escape செய்யப்படுகின்றன; எனவே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சரிபார்க்கிறது; மேலும் ஒரு பொருத்தத்தைச் சுருக்கம் உலகளவில் முடக்கப்பட்டிருப்பதைப் போலவே கையாளுகிறது — கோரிக்கை உடல் byte அளவில் மாற்றமற்றது என்பது நிரூபிக்கத்தக்கது. பகுப்பாய்வுகளில் தெரியும்படி தவிர்ப்புwriteCompressionSkip(..., "excluded")வழியாகப் பதிவுசெய்யப்படுகிறது. - இயல்புநிலை (காலியான/இல்லாத பட்டியல்): #8034-க்கு முந்தைய நடத்தையைப் போலவே இருக்கும் — எதுவும் விலக்கப்படாது.
அறியப்பட்ட வரம்புகள்
- LLMLingua-2 (SLM)-க்கு ஒரே இடத்தில் வைக்கப்பட்ட விருப்பச் சார்புகள் தேவை.
@atjsh/llmlingua-2மற்றும் அதன் peer சார்புகள்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 மொழித் தொகுப்புகளான
de/fr/jaமுழுமையற்றவை. அவைcontext+filler+structuralவிதிகளுடன் வழங்கப்படுகின்றன; ஆனால்dedup/ultraதொகுப்புகள் இல்லை. எனவே, அந்த மொழிகளில்ultraசெறிவுfull-ஐ விட வலுவானதாக இருக்காது (அவை தங்களுடைய விதிகளை மட்டுமே பயன்படுத்துகின்றன — வெளிநாட்டு உரையைச் சிதைக்கக்கூடிய ஆங்கிலdedup/ultraவிதிகளுக்குத் தானாக மறைமுகமாகப் பின்வாங்குவதில்லை).en/es/id/pt-BRமுழுமையானவை. முழுமையற்ற தொகுப்புகளுக்கானdedup.json+ultra.jsonபங்களிப்புகள் வரவேற்கப்படுகின்றன. - அடுக்கப்பட்ட telemetry, சுருக்கிய engine-களை மட்டுமே பட்டியலிடுகிறது. engine இயங்கியும் 0 % சேமிப்பை மட்டுமே உருவாக்கிய stacked-pipeline படிநிலை
stats:null-ஐத் திருப்பியளிக்கும்; எனவே அதுengineBreakdown-இல் தோன்றாது — தவிர்க்கப்பட்ட படிநிலையிலிருந்து இதை வேறுபடுத்த முடியாது. "இயங்கியது, 0 %" என்பதையும் "தவிர்க்கப்பட்டது" என்பதையும் வேறுபடுத்த breakdown-model மாற்றம் தேவைப்படும்; அது ஒத்திவைக்கப்பட்டுள்ளது.
சரிபார்ப்பு
இந்தப் பகுதிக்கான இலக்கிட்ட சரிபார்ப்புகள்:
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