Skip to content

v0.0.1

Choose a tag to compare

@github-actions github-actions released this 06 Mar 23:54
· 89 commits to master since this release

Changelog

Основные возможности

  • Два режима обработки LLM:

    • Map-Reduce — разбивка файла на чанки, параллельная обработка с объединением результатов
    • RAG (Agentic Tool Calling) — агентный режим с вызовами инструментов для поиска информации
  • Поддержка двух источников данных:

    • Файлы (--file или позиционный аргумент)
    • stdin (для чтения данных из стандартного ввода)
  • Параллельная обработка с настраиваемой конкурентностью (-c/--concurrency)

Map-Reduce режим

  • Фаза Map: параллельная обработка чанков через LLM API
  • Фаза Reduce: синтез финального ответа на основе результатов Map
  • Настройка размера чанка (-l/--length)

RAG режим

  • Tool Calling с двумя инструментами:
    • search_file(query) — поиск подстроки в файле с номерами строк
    • read_lines(start, end) — чтение диапазона строк
  • Агентный режим: модель сама решает какие инструменты использовать
  • Цикл общения с моделью с автоматическим получением ответа

Клиент LLM

  • Поддержка OpenAI-compatible API
  • Retry mechanism с экспоненциальным backoff:
    • Попроба 1 → задержка 0с (сразу)
    • Попроба 2 → задержка 1с
    • Попроба 3 → задержка 4с
  • Таймауты HTTP запросов (настраиваются через env)

Конфигурация

  • Парсинг CLI флагов с поддержкой алиасов:

    Флаг Алиас Описание
    -f, --file Путь к файлу
    -c, --concurrency Кол-во параллельных запросов
    -l, --length Размер чанка
    -r, --retry Кол-во retry попыток
    -v, --verbose Debug логирование
  • Поддержка переменных окружения для всех параметров

  • Загрузка .env файла через godotenv

Логирование

  • Логи в stderr, ответ в stdout
  • Два уровня: INFO (по умолчанию) и DEBUG (-v/--verbose)
  • Добавление источника кода в логи

Graceful Shutdown

  • Обработка сигналов SIGINT/SIGTERM (Ctrl+C)
  • Отмена активных HTTP запросов
  • Очистка временных файлов

HTTP таймауты

Настройка через переменные окружения:

  • HTTP_REQUEST_TIMEOUT — общий таймаут запроса
  • HTTP_DIAL_TIMEOUT — таймаут установления соединения
  • HTTP_TLS_TIMEOUT — таймаут TLS рукопожатия

Технологии

Инфраструктура

  • GitHub Actions CI/CD с линтингом и тестами
  • Goreleaser для автоматических релизов

Совместимость

Тестируется с:

  • LM Studio