В предыдущей статье я рассказывал, как сделал производительный просмотрщик логов для VS Code с Rust и mmap. Расширение открывает файлы по 10 ГБ без лагов.Но остВ предыдущей статье я рассказывал, как сделал производительный просмотрщик логов для VS Code с Rust и mmap. Расширение открывает файлы по 10 ГБ без лагов.Но ост

Log Analyzer Pro 2.0: Добавляем AI-поиск на естественном языке

2026/01/16 17:47
3м. чтение
Для обратной связи или замечаний по поводу данного контента, свяжитесь с нами по адресу crypto.news@mexc.com

В предыдущей статье я рассказывал, как сделал производительный просмотрщик логов для VS Code с Rust и mmap. Расширение открывает файлы по 10 ГБ без лагов.

Но оставалась проблема: чтобы найти нужное, приходилось писать regex. А regex — это боль. Особенно когда искать нужно "все ошибки подключения к БД" или "таймауты в сервисе auth".

Решение: пусть AI пишет regex за меня.


Что получилось

Нажимаешь "AI", пишешь на человеческом языке — получаешь фильтр:

Запрос

Результат

"все ошибки"

ERROR

"проблемы с базой"

database.*ERROR

"таймауты"

timeout|Timeout

Плюс можно кликнуть на строку и попросить 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

Ссылки:

  • 👉 VS Code Marketplace

Источник

Отказ от ответственности: Статьи, размещенные на этом веб-сайте, взяты из общедоступных источников и предоставляются исключительно в информационных целях. Они не обязательно отражают точку зрения MEXC. Все права принадлежат первоисточникам. Если вы считаете, что какой-либо контент нарушает права третьих лиц, пожалуйста, обратитесь по адресу crypto.news@mexc.com для его удаления. MEXC не дает никаких гарантий в отношении точности, полноты или своевременности контента и не несет ответственности за любые действия, предпринятые на основе предоставленной информации. Контент не является финансовой, юридической или иной профессиональной консультацией и не должен рассматриваться как рекомендация или одобрение со стороны MEXC.

Вам также может быть интересно

Генезис USD1: 0% + 12% APR

Генезис USD1: 0% + 12% APRГенезис USD1: 0% + 12% APR

Новые пользователи: Стейкайте и получите до 600% APR