В предыдущей статье я рассказывал, как сделал производительный просмотрщик логов для VS Code с Rust и mmap. Расширение открывает файлы по 10 ГБ без лагов.
Но оставалась проблема: чтобы найти нужное, приходилось писать regex. А regex — это боль. Особенно когда искать нужно "все ошибки подключения к БД" или "таймауты в сервисе auth".
Решение: пусть AI пишет regex за меня.
Что получилось
Нажимаешь "AI", пишешь на человеческом языке — получаешь фильтр:
Запрос |
Результат |
|---|---|
"все ошибки" |
|
"проблемы с базой" |
|
"таймауты" |
|
Плюс можно кликнуть на строку и попросить AI объяснить её.
Архитектура
AI работает в Extension Host (не в Webview) — так можно безопасно хранить API-ключ в context.secrets и использовать npm-пакеты.
Использую Vercel AI SDK — единый интерфейс для OpenAI, Groq (бесплатно!), Ollama и любых OpenAI-compatible API.
const { text } = await generateText({
model: openai(settings.model || "gpt-4o-mini"),
system: SYSTEM_PROMPT,
prompt: userMessage,
temperature: 0.1, // Низкая для детерминированности
});
Промпт-инжиниринг
Главная сложность — заставить модель выдавать простые паттерны, а не монстров вроде ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.*\[ERROR\].*.
Ключевой трюк: отправляем 20 случайных строк из файла как контекст. Модель видит реальный формат и адаптируется.
const userMessage = `Sample lines from log:
---
2024-01-15 10:23:45 [ERROR] DatabasePool: Connection timeout
2024-01-15 10:23:46 [INFO] UserService: Login successful
---
User wants: "database errors"
Return ONLY a simple regex pattern.`;
Private Mode и Custom Instructions
Для чувствительных логов есть Private Mode — сэмплы не отправляются в API.
Но тогда модель не знает формат ваших логов. Решение — поле Custom Instructions (Pro-фича):
My logs format: [TIMESTAMP] [LEVEL] ServiceName: message
Services: auth-service, payment-gateway, user-api
Error levels: ERROR, FATAL, PANIC
Там можно описать:
Формат логов и уровни severity
Названия сервисов и их назначение
Специфичные для проекта термины
Любой контекст, который поможет AI понять ваши логи
Эти инструкции добавляются к системному промпту при каждом запросе.
Что дальше: Log Analysis Agent
Текущий AI умеет искать по описанию. Следующий шаг — автоматический root cause analysis.
Сценарий:
User: "Почему упал деплой?"
Agent:
1. Находит ERROR и FATAL в логах
2. Анализирует временные корреляции
3. Определяет первопричину
4. Формирует отчёт с рекомендациями
Для этого нужно добавить:
Tool calling — чтобы AI мог вызывать поиск, фильтрацию, чтение строк
Агентный loop (ReAct) — multi-step reasoning
Context memory — чтобы агент помнил, что уже нашёл
Почему именно это:
Строится на готовой базе (AI + быстрый поиск по логам)
Не требует внешних интеграций (K8s, cloud APIs — это следующие итерации)
Очевидная ценность для пользователя
Итог
v0.2.3:
AI-генерация regex из natural language
Анализ строк — объяснение непонятных записей
6+ провайдеров (OpenAI, Groq, Ollama...)
Private Mode + Custom Instructions для чувствительных логов
Следующая итерация:
Log Analysis Agent с автоматическим поиском root cause
Ссылки: