Skip to main content
Glama

LCBro

by lcbro
LOGGING_IMPLEMENTATION_SUMMARY.md13.3 kB
# Реализация детального логирования LLM - Итоговый отчет ## Обзор реализации Успешно реализована комплексная система детального логирования всех операций LLM с полной прозрачностью промптов, ответов, производительности и экономии затрат. ## 🎯 Реализованные компоненты ### 1. **Конфигурация логирования** (`config/default.yaml`) ```yaml logging: llm: enabled: true # включить/отключить логирование LLM logPrompts: true # логировать все промпты logResponses: true # логировать все ответы logTokens: true # логировать статистику токенов logPerformance: true # логировать метрики производительности logPreprocessing: true # логировать анализ preprocessing # Настройки логирования данных maxPromptLength: 2000 # макс. символов для промптов maxResponseLength: 1000 # макс. символов для ответов maxInputDataLength: 5000 # макс. символов для входных данных # Отслеживание производительности trackMetrics: true # отслеживать метрики metricsInterval: 100 # логировать метрики каждые N операций ``` ### 2. **LLM Logger** (`src/utils/llm-logger.ts`) - **Полное логирование запросов**: все промпты, параметры, метаданные - **Детальное логирование ответов**: содержимое, токены, время выполнения - **Метрики производительности**: автоматическое отслеживание статистики - **Анализ экономии затрат**: расчет стоимости и экономии от preprocessing - **Обработка ошибок**: детальное логирование всех ошибок LLM ### 3. **Интеграция в LLM Tools** (`src/tools/llm.ts`) - **Логирование анализа контента**: все операции intelligent preprocessing - **Логирование preprocessing**: запросы, ответы, сравнение до/после - **Логирование основной обработки**: полная трассировка main LLM операций - **Метрики в реальном времени**: периодические сводки производительности ### 4. **Утилиты анализа** (`scripts/`) #### **analyze-llm-logs.sh** - Анализ логов - Анализ операций по типам и моделям - Статистика использования токенов - Анализ эффективности preprocessing - Метрики производительности - Интерактивный режим для отладки #### **llm-monitor.sh** - Мониторинг в реальном времени - Live dashboard с обновлением каждые 5 секунд - Статистика операций в реальном времени - Отслеживание ошибок - Анализ производительности по типам операций ## 📊 Типы логируемых данных ### **Запросы к LLM** ```json { "level": "info", "msg": "LLM Request [ANALYSIS]", "timestamp": "2025-01-13T10:30:15.123Z", "operationId": "op_1705135815123_1", "operationType": "analysis", "model": "ollama:qwen2.5:7b", "systemPrompt": "You are an expert content analyzer...", "userPrompt": "MAIN TASK: Extract product information...", "maxTokens": 300, "temperature": 0.1, "inputDataLength": 15420, "inputDataType": "html", "instruction": "Extract product information as JSON" } ``` ### **Ответы от LLM** ```json { "level": "info", "msg": "LLM Response [PREPROCESSING]", "timestamp": "2025-01-13T10:30:18.456Z", "operationId": "op_1705135815123_2", "operationType": "preprocessing", "model": "ollama:qwen2.5:7b", "content": "Cleaned HTML content without navigation and ads...", "tokensUsed": { "prompt": 1250, "completion": 320, "total": 1570 }, "duration": 2847, "success": true } ``` ### **Анализ preprocessing** ```json { "level": "info", "msg": "Preprocessing Analysis & Results", "timestamp": "2025-01-13T10:30:18.500Z", "inputData": "<html><head><script>...</script></head><body>...", "instruction": "Extract product information as JSON", "analysisResponse": "This HTML contains product information...", "generatedPreprocessRequest": "Remove HTML noise: scripts, styles...", "originalLength": 15420, "processedLength": 3200, "reductionPercentage": "79.25", "analysisDuration": 1500, "preprocessingDuration": 2847, "totalDuration": 4347 } ``` ### **Анализ экономии затрат** ```json { "level": "info", "msg": "Preprocessing Cost Analysis", "operationId": "op_1705135815123_2", "originalTokens": 3855, "processedTokens": 800, "tokenReduction": 3055, "tokenReductionPercentage": "79.25", "estimatedCostSaved": "0.0457" } ``` ### **Метрики производительности** ```json { "level": "info", "msg": "LLM Performance Metrics Summary", "timestamp": "2025-01-13T10:35:00.000Z", "metrics": { "totalOperations": 100, "totalTokensUsed": 125000, "totalCost": 0.1875, "averageResponseTime": 2850, "preprocessingStats": { "count": 45, "avgReduction": 72.3, "avgTime": 2100 }, "modelStats": { "gpt-4o-mini": { "count": 55, "avgTokens": 1200, "avgTime": 3200, "totalCost": 0.1250 }, "ollama:qwen2.5:7b": { "count": 45, "avgTokens": 800, "avgTime": 1800, "totalCost": 0.0000 } } } } ``` ## 🔧 Конфигурационные режимы ### **Режим отладки** (максимальная детализация) ```yaml logging: level: debug llm: enabled: true logPrompts: true logResponses: true logTokens: true logPerformance: true logPreprocessing: true maxPromptLength: 5000 maxResponseLength: 2000 maxInputDataLength: 10000 trackMetrics: true metricsInterval: 10 ``` ### **Продакшен режим** (оптимизированное логирование) ```yaml logging: level: info llm: enabled: true logPrompts: false # экономия места logResponses: false # экономия места logTokens: true # мониторинг logPerformance: true # метрики logPreprocessing: false # отключить детали trackMetrics: true metricsInterval: 1000 ``` ### **Анализ производительности** (фокус на метриках) ```yaml logging: level: info llm: enabled: true logPrompts: false logResponses: false logTokens: true logPerformance: true logPreprocessing: true # анализ эффективности maxPromptLength: 500 maxResponseLength: 200 maxInputDataLength: 1000 trackMetrics: true metricsInterval: 50 ``` ## 📈 Практическое использование ### **Анализ логов** ```bash # Анализ всех логов ./scripts/analyze-llm-logs.sh # Интерактивный режим ./scripts/analyze-llm-logs.sh --interactive # Быстрая статистика ./scripts/analyze-llm-logs.sh --interactive # Выбрать опцию 3 (Quick stats) ``` ### **Мониторинг в реальном времени** ```bash # Запуск монитора ./scripts/llm-monitor.sh # С настройкой файла логов LOG_FILE=/path/to/logs/app.log ./scripts/llm-monitor.sh # С настройкой интервала обновления REFRESH_INTERVAL=10 ./scripts/llm-monitor.sh ``` ### **Анализ с grep и jq** ```bash # Все операции preprocessing grep '"operationType": "preprocessing"' logs/app.log # Статистика токенов cat logs/app.log | jq 'select(.tokensUsed) | .tokensUsed.total' | awk '{sum+=$1} END {print "Total tokens:", sum}' # Анализ экономии cat logs/app.log | jq 'select(.msg == "Preprocessing Cost Analysis") | .estimatedCostSaved' | awk '{sum+=$1} END {print "Total saved: $", sum}' ``` ## 💰 Экономия и производительность ### **Пример реальной экономии** **Обработка HTML страницы (50KB):** **Без preprocessing:** - Прямая обработка через GPT-4: ~$0.50 - Качество: низкое (много шума) **С логированием и preprocessing:** 1. Анализ контента: `ollama:qwen2.5:7b` (бесплатно, 1 сек) 2. Preprocessing: `ollama:qwen2.5:7b` (бесплатно, 3 сек) 3. Основная обработка: 5KB через GPT-4: ~$0.05 4. **Экономия: 90%** + лучшее качество + полная прозрачность ### **Мониторинг эффективности** - Отслеживание сокращения данных (обычно 70-80%) - Мониторинг экономии токенов - Анализ времени выполнения операций - Статистика ошибок и надежности ## 🔍 Отладка и мониторинг ### **Детальная отладка** ```bash # Просмотр всех LLM операций tail -f logs/app.log | grep -E "(LLM Request|LLM Response)" # Мониторинг ошибок tail -f logs/app.log | grep '"success": false' # Анализ конкретной модели tail -f logs/app.log | grep '"model": "gpt-4o-mini"' ``` ### **Dashboard в терминале** ```bash # Создание простого dashboard while true; do clear echo "=== LLM Performance Dashboard ===" echo "Total operations: $(grep 'LLM Request' logs/app.log | wc -l)" echo "Success rate: $(grep '"success": false' logs/app.log | wc -l)" echo "Preprocessing ops: $(grep '"operationType": "preprocessing"' logs/app.log | wc -l)" sleep 5 done ``` ## 🎯 Ключевые преимущества ### **Полная прозрачность** - ✅ Все промпты и ответы логируются - ✅ Детальная трассировка операций - ✅ Полная видимость процесса preprocessing ### **Анализ производительности** - ✅ Автоматические метрики - ✅ Сравнение моделей - ✅ Анализ эффективности preprocessing ### **Экономия затрат** - ✅ Отслеживание экономии от preprocessing - ✅ Расчет стоимости по моделям - ✅ Оптимизация использования токенов ### **Отладка и мониторинг** - ✅ Детальное логирование ошибок - ✅ Мониторинг в реальном времени - ✅ Автоматизированный анализ логов ### **Гибкая конфигурация** - ✅ Настройка под разные режимы - ✅ Контроль объема логируемых данных - ✅ Оптимизация под продакшен ## 📚 Документация - [`docs/LLM_LOGGING_GUIDE.md`](docs/LLM_LOGGING_GUIDE.md) - Полное руководство по логированию - [`docs/INTELLIGENT_PREPROCESSING.md`](docs/INTELLIGENT_PREPROCESSING.md) - Интеллектуальная автогенерация промптов - [`scripts/analyze-llm-logs.sh`](scripts/analyze-llm-logs.sh) - Анализ логов - [`scripts/llm-monitor.sh`](scripts/llm-monitor.sh) - Мониторинг в реальном времени ## 🚀 Готово к использованию Система детального логирования LLM полностью реализована и готова к использованию: - ✅ **Все компоненты** реализованы и протестированы - ✅ **Конфигурация** настроена с разумными значениями по умолчанию - ✅ **Утилиты анализа** готовы к использованию - ✅ **Документация** создана и актуальна - ✅ **Обратная совместимость** сохранена **Модель:** Claude Sonnet 4 **Дата:** 13 сентября 2025 **Статус:** Полностью реализовано и готово к использованию

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lcbro/lcbro-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server