INTELLIGENT_PREPROCESSING.md•9.8 kB
# Интеллектуальная автогенерация промптов для Preprocessing
## Обзор
Новая система автоматической генерации промптов для preprocessing использует локальные LLM модели для анализа контента и создания оптимальных инструкций предобработки. Это значительно улучшает качество обработки данных при минимальных затратах.
## Основные возможности
### 1. Интеллектуальный анализ контента
Система автоматически анализирует входные данные с помощью быстрых локальных моделей:
- **Анализ типа контента**: HTML, JSON, текст
- **Определение структуры**: таблицы, продукты, статьи, данные
- **Обнаружение шума**: реклама, навигация, скрипты
- **Оценка сложности**: размер, вложенность, консистентность
### 2. Приоритет локальных моделей
Система максимально использует локальные модели для экономии:
**Порядок приоритета (по умолчанию):**
1. `ollama:qwen2.5:7b` - самая быстрая для preprocessing
2. `ollama:llama3.2:3b` - очень быстрая, маленькая модель
3. `ollama:mistral:7b` - хороший баланс
4. `ollama:llama3.1:8b` - стабильный выбор
5. `jan:llama-3.2-3b` - JAN fallback
6. `jan:mistral-7b` - JAN альтернатива
### 3. Умные пороги автозапуска
Система автоматически определяет когда нужен preprocessing:
- **HTML**: >3KB (по умолчанию) или наличие шума
- **Текст**: >5KB (по умолчанию) или проблемы форматирования
- **JSON**: >1KB (по умолчанию) или несогласованность структуры
- **Любой тип**: >10KB автоматически
### 4. Библиотека шаблонов
Если интеллектуальный анализ недоступен, система использует оптимизированные шаблоны:
- **HTML**: общий, таблицы, продукты, статьи
- **Текст**: общий, извлечение, суммаризация
- **JSON**: общий, таблицы, даты
## Конфигурация
### config/default.yaml
```yaml
llm:
autoPreprocess: true
preprocessing:
enabled: true # включить/отключить preprocessing
intelligentMode: true # использовать LLM для анализа
fallbackToTemplates: true # fallback на шаблоны
# Пороги размера для автозапуска
thresholds:
html: 3000 # HTML больше 3KB
text: 5000 # текст больше 5KB
json: 1000 # JSON больше 1KB
# Приоритет моделей для preprocessing
preferredModels:
- "ollama:qwen2.5:7b" # самая быстрая
- "ollama:llama3.2:3b" # очень быстрая
- "ollama:mistral:7b" # баланс
- "ollama:llama3.1:8b" # стабильная
- "jan:llama-3.2-3b" # JAN fallback
- "jan:mistral-7b" # JAN альтернатива
# Настройки анализа
analysis:
maxContentSample: 1000 # макс. символов для анализа
maxAnalysisTokens: 300 # макс. токенов анализа
analysisTemperature: 0.1 # низкая температура
```
## Примеры использования
### 1. Автоматический режим (рекомендуется)
```typescript
const result = await mcp.callTool('llm.transform', {
input: {
kind: 'html',
data: largeHtmlContent
},
instruction: 'Extract product information as JSON'
// preprocessRequest автоматически сгенерируется
});
```
**Что происходит:**
1. Система определяет что HTML >3KB нуждается в preprocessing
2. Локальная модель анализирует контент (первые 1000 символов)
3. Генерируется специфический промпт: "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. Быстрая локальная модель выполняет preprocessing
5. Основная модель обрабатывает очищенные данные
### 2. Явное управление
```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. Отключение preprocessing
```typescript
// В конфигурации
preprocessing: {
enabled: false
}
// Или только интеллектуальный режим
preprocessing: {
intelligentMode: false,
fallbackToTemplates: true
}
```
## Архитектура системы
### 1. Детектор необходимости preprocessing
- Анализирует размер контента
- Проверяет наличие шума в HTML
- Обнаруживает проблемы форматирования в тексте
- Оценивает консистентность JSON структуры
### 2. Интеллектуальный генератор промптов
- Использует локальную модель для анализа контента
- Создает кастомизированные инструкции preprocessing
- Адаптируется под тип задачи (извлечение, очистка, структурирование)
### 3. Fallback система
- Автоматический переход на шаблоны при сбоях
- Graceful degradation функциональности
- Логирование всех этапов для отладки
### 4. Менеджер локальных моделей
- Приоритизация по скорости/эффективности
- Автоматический выбор доступной модели
- Поддержка Ollama и JAN провайдеров
## Производительность и экономия
### Пример: Обработка интернет-магазина
**Без preprocessing:**
- Входные данные: 50KB HTML с навигацией, рекламой, комментариями
- Токены: ~12,500 (OpenAI pricing)
- Стоимость: ~$0.125 (GPT-4)
- Качество: низкое (много шума)
**С интеллектуальным preprocessing:**
- Анализ контента: ollama:qwen2.5:7b (~200 токенов, бесплатно)
- Preprocessing: ollama:qwen2.5:7b (~3000 токенов, бесплатно)
- Основная обработка: 5KB очищенных данных (~1,250 токенов)
- Стоимость: ~$0.012 (только за основную обработку)
- **Экономия: 90%** + значительно лучшее качество
### Время выполнения
- **Анализ**: 0.5-1 сек (локальная модель)
- **Preprocessing**: 2-5 сек (локальная модель)
- **Основная обработка**: 3-8 сек (целевая модель)
- **Общее время**: +20-30% за 90% экономии и лучшее качество
## Мониторинг и отладка
### Логирование
Система логирует все этапы:
```json
{
"level": "info",
"msg": "Auto-generated intelligent preprocessing request",
"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": "Preprocessing completed",
"originalLength": 51200,
"processedLength": 5800,
"preprocessRequest": "..."
}
{
"level": "debug",
"msg": "Selected Ollama model for preprocessing",
"model": "ollama:qwen2.5:7b",
"modelType": "Ollama"
}
```
### Отладка
Для детального анализа установите уровень логирования:
```yaml
logging:
level: debug
```
## Заключение
Новая система интеллектуальной автогенерации промптов для preprocessing:
- ✅ **Экономит 80-90%** стоимости обработки
- ✅ **Улучшает качество** результатов
- ✅ **Максимально использует** локальные модели
- ✅ **Автоматически адаптируется** под тип контента
- ✅ **Gracefully деградирует** при сбоях
- ✅ **Легко конфигурируется** под нужды проекта
Модель Claude Sonnet 4 была использована для создания этой документации.