INTELLIGENT_PREPROCESSING.md•6.98 kB
# Geração Automática Inteligente de Prompts para Pré-processamento
## Visão Geral
O novo sistema de geração automática de prompts para pré-processamento usa modelos LLM locais para analisar conteúdo e criar instruções de pré-processamento otimizadas. Isso melhora significativamente a qualidade do processamento de dados com custo mínimo.
## Principais Funcionalidades
### 1. Análise Inteligente de Conteúdo
O sistema analisa automaticamente dados de entrada usando modelos locais rápidos:
- **Análise de tipo de conteúdo**: HTML, JSON, texto
- **Detecção de estrutura**: tabelas, produtos, artigos, dados
- **Detecção de ruído**: anúncios, navegação, scripts
- **Avaliação de complexidade**: tamanho, aninhamento, consistência
### 2. Prioridade de Modelos Locais
O sistema maximiza o uso de modelos locais para economia:
**Ordem de prioridade (padrão):**
1. `ollama:qwen2.5:7b` - mais rápido para pré-processamento
2. `ollama:llama3.2:3b` - muito rápido, modelo pequeno
3. `ollama:mistral:7b` - bom equilíbrio
4. `ollama:llama3.1:8b` - escolha estável
5. `jan:llama-3.2-3b` - fallback JAN
6. `jan:mistral-7b` - alternativa JAN
### 3. Limiares Inteligentes de Auto-disparo
O sistema determina automaticamente quando o pré-processamento é necessário:
- **HTML**: >3KB (padrão) ou presença de ruído
- **Texto**: >5KB (padrão) ou problemas de formatação
- **JSON**: >1KB (padrão) ou inconsistência de estrutura
- **Qualquer tipo**: >10KB automaticamente
### 4. Biblioteca de Modelos
Se a análise inteligente não estiver disponível, o sistema usa modelos otimizados:
- **HTML**: geral, tabelas, produtos, artigos
- **Texto**: geral, extração, sumarização
- **JSON**: geral, tabelas, datas
## Configuração
### config/default.yaml
```yaml
llm:
autoPreprocess: true
preprocessing:
enabled: true # habilitar/desabilitar pré-processamento
intelligentMode: true # usar LLM para análise
fallbackToTemplates: true # fallback para modelos
# Limiares de tamanho para auto-disparo
thresholds:
html: 3000 # HTML maior que 3KB
text: 5000 # texto maior que 5KB
json: 1000 # JSON maior que 1KB
# Prioridade de modelos para pré-processamento
preferredModels:
- "ollama:qwen2.5:7b" # mais rápido
- "ollama:llama3.2:3b" # muito rápido
- "ollama:mistral:7b" # equilíbrio
- "ollama:llama3.1:8b" # estável
- "jan:llama-3.2-3b" # fallback JAN
- "jan:mistral-7b" # alternativa JAN
# Configurações de análise
analysis:
maxContentSample: 1000 # máx caracteres para análise
maxAnalysisTokens: 300 # máx tokens de análise
analysisTemperature: 0.1 # baixa temperatura
```
## Exemplos de Uso
### 1. Modo Automático (Recomendado)
```typescript
const result = await mcp.callTool('llm.transform', {
input: {
kind: 'html',
data: largeHtmlContent
},
instruction: 'Extract product information as JSON'
// preprocessRequest gerado automaticamente
});
```
**O que acontece:**
1. Sistema determina que HTML >3KB precisa de pré-processamento
2. Modelo local analisa conteúdo (primeiros 1000 caracteres)
3. Gera prompt específico: "Remove HTML noise: scripts, styles, navigation, ads, footers. Focus on product/item information, remove marketing fluff. Keep only content relevant to the main task."
4. Modelo local rápido executa pré-processamento
5. Modelo principal processa dados limpos
### 2. Controle Explícito
```typescript
const result = await mcp.callTool('llm.transform', {
input: { kind: 'html', data: htmlData },
instruction: 'Create product catalog',
preprocessRequest: 'Remove all non-product elements, focus on titles, prices, descriptions'
});
```
### 3. Desabilitar Pré-processamento
```typescript
// Na configuração
preprocessing: {
enabled: false
}
// Ou apenas modo inteligente
preprocessing: {
intelligentMode: false,
fallbackToTemplates: true
}
```
## Arquitetura do Sistema
### 1. Detector de Necessidade de Pré-processamento
- Analisa tamanho do conteúdo
- Verifica ruído HTML
- Detecta problemas de formatação de texto
- Avalia consistência de estrutura JSON
### 2. Gerador Inteligente de Prompts
- Usa modelo local para análise de conteúdo
- Cria instruções de pré-processamento personalizadas
- Adapta-se ao tipo de tarefa (extração, limpeza, estruturação)
### 3. Sistema de Fallback
- Fallback automático para modelos em falhas
- Degradação graciosa da funcionalidade
- Log de todos os estágios para depuração
### 4. Gerenciador de Modelos Locais
- Priorização por velocidade/eficiência
- Seleção automática de modelo disponível
- Suporte para provedores Ollama e JAN
## Performance e Economia
### Exemplo: Processamento de Site de E-commerce
**Sem pré-processamento:**
- Dados de entrada: 50KB HTML com navegação, anúncios, comentários
- Tokens: ~12,500 (preços OpenAI)
- Custo: ~$0.125 (GPT-4)
- Qualidade: baixa (muito ruído)
**Com pré-processamento inteligente:**
- Análise de conteúdo: ollama:qwen2.5:7b (~200 tokens, grátis)
- Pré-processamento: ollama:qwen2.5:7b (~3000 tokens, grátis)
- Processamento principal: 5KB dados limpos (~1,250 tokens)
- Custo: ~$0.012 (apenas para processamento principal)
- **Economia: 90%** + qualidade significativamente melhor
### Tempo de Execução
- **Análise**: 0.5-1 seg (modelo local)
- **Pré-processamento**: 2-5 seg (modelo local)
- **Processamento principal**: 3-8 seg (modelo alvo)
- **Tempo total**: +20-30% para 90% de economia e melhor qualidade
## Monitoramento e Depuração
### Logging
O sistema registra todos os estágios:
```json
{
"level": "info",
"msg": "Solicitação de pré-processamento inteligente gerada automaticamente",
"autoGeneratedPreprocess": "Remove HTML noise: scripts, styles, navigation, ads, footers. Focus on product/item information, remove marketing fluff. Keep only content relevant to the main task."
}
{
"level": "info",
"msg": "Pré-processamento concluído",
"originalLength": 51200,
"processedLength": 5800,
"preprocessRequest": "..."
}
{
"level": "debug",
"msg": "Modelo Ollama selecionado para pré-processamento",
"model": "ollama:qwen2.5:7b",
"modelType": "Ollama"
}
```
### Depuração
Para análise detalhada, defina nível de log:
```yaml
logging:
level: debug
```
## Conclusão
O novo sistema inteligente de geração automática de prompts para pré-processamento:
- ✅ **Economiza 80-90%** dos custos de processamento
- ✅ **Melhora a qualidade** dos resultados
- ✅ **Maximiza o uso** de modelos locais
- ✅ **Adapta-se automaticamente** ao tipo de conteúdo
- ✅ **Degrada graciosamente** em falhas
- ✅ **Facilmente configurável** para necessidades do projeto
**Modelo:** Claude Sonnet 4