# Compression Language Packs (Português (Brasil)) 🌐 **Languages:** 🇺🇸 [English](../../../../compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇪🇹 [am](../../../am/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇸🇦 [ar](../../../ar/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇦🇿 [az](../../../az/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇧🇬 [bg](../../../bg/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇧🇩 [bn](../../../bn/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇧🇦 [bs](../../../bs/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇨🇿 [cs](../../../cs/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇩🇰 [da](../../../da/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇩🇪 [de](../../../de/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇬🇷 [el](../../../el/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇪🇸 [es](../../../es/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇪🇪 [et](../../../et/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇷 [fa](../../../fa/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇫🇮 [fi](../../../fi/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇫🇷 [fr](../../../fr/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇪 [ga](../../../ga/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇳 [gu](../../../gu/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇳🇬 [ha](../../../ha/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇱 [he](../../../he/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇳 [hi](../../../hi/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇭🇷 [hr](../../../hr/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇭🇺 [hu](../../../hu/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇦🇲 [hy](../../../hy/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇩 [id](../../../id/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇳🇬 [ig](../../../ig/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇹 [it](../../../it/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇯🇵 [ja](../../../ja/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇬🇪 [ka](../../../ka/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇰🇭 [km](../../../km/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇳 [kn](../../../kn/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇰🇷 [ko](../../../ko/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇱🇹 [lt](../../../lt/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇱🇻 [lv](../../../lv/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇳 [ml](../../../ml/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇳 [mr](../../../mr/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇲🇾 [ms](../../../ms/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇲🇹 [mt](../../../mt/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇲🇲 [my](../../../my/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇳🇵 [ne](../../../ne/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇳🇱 [nl](../../../nl/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇳🇴 [no](../../../no/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇳 [or](../../../or/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇳 [pa](../../../pa/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇵🇭 [phi](../../../phi/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇵🇱 [pl](../../../pl/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇵🇹 [pt](../../../pt/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇷🇴 [ro](../../../ro/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇷🇺 [ru](../../../ru/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇱🇰 [si](../../../si/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇸🇰 [sk](../../../sk/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇸🇮 [sl](../../../sl/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇷🇸 [sr](../../../sr/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇸🇪 [sv](../../../sv/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇰🇪 [sw](../../../sw/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇳 [ta](../../../ta/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇳 [te](../../../te/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇹🇭 [th](../../../th/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇹🇷 [tr](../../../tr/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇵🇰 [ur](../../../ur/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇺🇿 [uz](../../../uz/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇻🇳 [vi](../../../vi/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇳🇬 [yo](../../../yo/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) --- A compressão Caveman pode carregar pacotes de regras específicos de cada idioma, além das regras integradas em inglês. Isso mantém o mecanismo principal estável e permite que os pacotes de português, espanhol, alemão, francês, italiano, japonês e de futuros idiomas evoluam de forma independente. ## Localização Os pacotes de idiomas ficam em: ```txt open-sse/services/compression/rules// ``` Pacotes distribuídos atualmente (verificados em relação ao conteúdo do diretório `rules/`): | Idioma | Diretório | Categorias de regras presentes | | ------------------ | -------------- | --------------------------------------------------- | | Inglês | `rules/en/` | `context`, `dedup`, `filler`, `structural`, `ultra` | | Espanhol | `rules/es/` | `context`, `dedup`, `filler`, `structural`, `ultra` | | Português (Brasil) | `rules/pt-BR/` | `context`, `dedup`, `filler`, `structural`, `ultra` | | Indonésio | `rules/id/` | `context`, `dedup`, `filler`, `structural`, `ultra` | | Italiano | `rules/it/` | `context`, `dedup`, `filler`, `structural`, `ultra` | | Alemão | `rules/de/` | `context`, `filler`, `structural` | | Francês | `rules/fr/` | `context`, `filler`, `structural` | | Japonês | `rules/ja/` | `context`, `filler`, `structural` | > **Nota de paridade:** os pacotes `en`, `es`, `pt-BR`, `id` e `it` têm todas as 5 categorias; `de`, `fr` e `ja` incluem 3 categorias. As categorias `dedup` e `ultra` ausentes usam silenciosamente como alternativa as regras integradas em inglês. Contribuições para adicionar `dedup.json` e `ultra.json` aos pacotes menores são bem-vindas. > > O pacote `pt-BR` é baseado no **[Troglodita](https://github.com/leninejunior/troglodita)**, de Lenine Júnior — um sistema de compressão projetado do zero para a gramática do português brasileiro (redução de pleonasmos, remoção de termos de preenchimento em PT-BR e abreviações técnicas para a comunidade brasileira de desenvolvimento). > > A lista canônica de categorias e o esquema de cada categoria estão em [`open-sse/services/compression/rules/_schema.json`](../../open-sse/services/compression/rules/_schema.json) (JSON Schema, rascunho 2020-12). ## Detecção de idioma `languageDetector.ts` usa heurísticas leves para inferir o idioma com base no texto do prompt. O idioma padrão configurado continua sendo respeitado, e a detecção pode ser desabilitada pela configuração quando um controle preciso for necessário. A saída da detecção é usada apenas para escolher os pacotes de regras. Ela não altera o roteamento de provedores, a seleção de localidade nem o idioma da interface. ## Formato da configuração As configurações de compressão podem incluir: ```json { "languageConfig": { "enabled": true, "defaultLanguage": "en", "autoDetect": true, "enabledPacks": ["en", "pt-BR", "es", "id", "de", "fr", "ja"] }, "cavemanConfig": { "language": "en", "autoDetectLanguage": true, "enabledLanguagePacks": ["en", "pt-BR", "es", "id", "de", "fr", "ja"] } } ``` `languageConfig` controla os valores padrão do dashboard e da pré-visualização. `cavemanConfig` é a configuração do mecanismo em tempo de execução usada quando o Caveman comprime o texto das mensagens. ## Adicionando um Pacote de Idioma 1. Crie `open-sse/services/compression/rules//.json`. 2. Use o formato de regras do Caveman descrito em `docs/compression/COMPRESSION_RULES_FORMAT.md`. 3. Mantenha as substituições conservadoras e evite alterar código, identificadores, URLs ou JSON. 4. Adicione ou atualize testes para a seleção de idioma e o comportamento das substituições. 5. Disponibilize novos rótulos do painel/i18n se o idioma aparecer nos seletores da interface. ## API Os pacotes disponíveis podem ser consultados com: ```bash curl http://localhost:20128/api/compression/language-packs ``` O endpoint de pré-visualização aceita substituições da configuração de idioma: ```bash curl -X POST http://localhost:20128/api/compression/preview \ -H "Content-Type: application/json" \ -d '{ "mode": "standard", "text": "Por favor, eu gostaria que voce basicamente resumisse isso.", "config": { "languageConfig": { "defaultLanguage": "pt-BR", "autoDetect": true } } }' ``` ## SHARED_BOUNDARIES (v3.8.0) Todos os 6 pacotes de idioma receberam uma cláusula `SHARED_BOUNDARIES` na v3.8.0, aplicada em todas as intensidades do Caveman (LITE, FULL, ULTRA). Ela instrui o mecanismo a preservar literalmente estes padrões, independentemente da remoção de conteúdo supérfluo ao redor: | Tipo de padrão | Exemplo | | ------------------------------------------- | -------------------------------------- | | Blocos de código delimitados | ` ```python\n...\n``` ` | | Código inline | `` `my_var` `` | | URLs | `https://example.com/path` | | Caminhos de arquivo (absolutos + relativos) | `/etc/hosts`, `./src/index.ts` | | Cabeçalhos de erro | `Error:`, `TypeError:`, `SyntaxError:` | | Linhas de rastreamento de pilha | ` at functionName (file.ts:12:3)` | Esses padrões são preenchidos em `DEFAULT_CAVEMAN_CONFIG.preservePatterns` (anteriormente `[]`). A constante está localizada em `open-sse/services/compression/types.ts`. ### Por que isso é importante Sem `SHARED_BOUNDARIES`, os modos agressivos do Caveman poderiam remover conteúdo que parecesse texto repetitivo, mas que na verdade fosse um trecho de código, caminho de arquivo ou pilha de erros. `SHARED_BOUNDARIES` atua como uma rede de segurança independente de idioma, aplicada antes da execução das regras de remoção de conteúdo supérfluo. ### Personalizando preservePatterns Padrões adicionais podem ser adicionados em tempo de execução por meio das configurações de compactação: ````json { "cavemanConfig": { "preservePatterns": [ "```[\\s\\S]*?```", "`[^`]+`", "https?://\\S+", "(?:/|\\./)[^\\s]+", "\\b(?:Error|TypeError|SyntaxError|RangeError):", "\\s+at\\s+\\S+\\s+\\(\\S+:\\d+:\\d+\\)" ] } } ```` Os padrões personalizados estendem (não substituem) os 6 padrões padrão. --- ## Notas Operacionais - As regras integradas em inglês continuam sendo a alternativa quando um pacote de idioma está ausente. - Pacotes JSON integrados inválidos falham na validação para que os artefatos de lançamento não sofram degradação silenciosa. - Os pacotes de regras contêm apenas dados e não devem importar código nem executar lógica arbitrária. - A camada de análise de compactação registra o modo e o mecanismo selecionados, não o texto completo do prompt.