Перейти к основному содержимому

ADR-005: Абстракция через Реестры (Everything is a Registry)

Контекст

Фреймворк должен быть расширяемым. Пользователи должны иметь возможность добавлять свои модели, метрики и типы задач без изменения ядра системы.

Решение

Использовать паттерн Registry для всех сущностей:

  • ModelRegistry: Конфигурации моделей.
  • TaskRegistry: Определения задач (формат данных, промпты).
  • MetricRegistry: Реализации метрик.
  • Реализации оформляются как отдельные Python-пакеты (плагины).

Последствия

  • Плюсы: Высокая модульность и расширяемость. Четкое разделение ответственности.
  • Минусы: Повышение порога входа для разработчиков новых плагинов (нужно соблюдать интерфейсы).