Co-authored-by: ArtemFilin1990 <221041513+ArtemFilin1990@users.noreply.github.com>
7.9 KiB
Knowledge Base Builder - Документация
Описание
Knowledge Base Builder (Построитель Базы Знаний) - это инструмент для автоматического построения полной, структурированной и машиночитаемой базы знаний на основе всех файлов в репозитории BearingsInfo.
Основные возможности
✅ Режим максимального контекста - извлечение 100% информации без сокращений
✅ Полная инвентаризация - анализ всех файлов репозитория
✅ Автоматическая декомпозиция - извлечение терминов, определений, структур данных
✅ Нормализация - приведение к единому формату
✅ Трассировка источников - каждый факт привязан к файлу-источнику
✅ Машиночитаемый формат - структурированный Markdown для LLM, RAG, Wiki
Структура выходного файла
База знаний содержит следующие разделы:
- Инвентаризация файлов - полная таблица всех обработанных файлов
- Термины и глоссарий - все термины и определения с источниками
- Процессы и алгоритмы - описание процессов и последовательностей
- Правила и ограничения - правила, требования, ограничения
- Структуры данных и форматы - классы, функции, форматы данных
- Роли и ответственности - описание ролей в проекте
- Инструкции и сценарии - руководства по использованию
- Ошибки и исключения - обработка крайних случаев
- Связи и зависимости - взаимосвязи между компонентами
- Источники и трассировка - полная привязка к исходным файлам
Использование
Базовое использование
# Запуск из корня репозитория
python scripts/build_knowledge_base.py
# С указанием пути к репозиторию
python scripts/build_knowledge_base.py --repo /path/to/repo
# С указанием имени выходного файла
python scripts/build_knowledge_base.py --output MY_KNOWLEDGE_BASE.md
Параметры
--repo- путь к репозиторию (по умолчанию: текущая директория)--output- имя выходного файла (по умолчанию:KNOWLEDGE_BASE.md)
Поддерживаемые типы файлов
Скрипт обрабатывает следующие типы файлов:
- Документация: Markdown (.md), Text (.txt), PDF, Word (.docx, .doc)
- Код: Python (.py), JavaScript (.js), TypeScript (.ts), SQL (.sql)
- Данные: JSON, YAML, CSV, Excel (.xlsx, .xls)
- Конфигурация: TOML, INI, Config files
- Веб: HTML, CSS, SCSS
- Изображения: PNG, JPEG, GIF, SVG (с метаданными)
- Архивы: ZIP, TAR, GZ (с метаданными)
Исключения
Следующие директории и файлы автоматически исключаются из обработки:
.git,__pycache__,.pytest_cache,node_modules.venv,venv,dist,build,.mypy_cache_trash_review,ZIP- Бинарные файлы размером более 100 MB
Алгоритм работы
Шаг 1: Инвентаризация
Сканирование всех файлов в репозитории с определением:
- Имени и пути файла
- Типа файла
- Назначения
- Размера
- Ключевых тем
Шаг 2: Декомпозиция
Извлечение из каждого файла:
- Терминов и определений (из Markdown)
- Структур данных (классы, функции из кода)
- Заголовков и ключевых слов
- Содержимого (превью)
Шаг 3: Нормализация
- Группировка файлов по типам
- Стандартизация формата представления
- Выявление конфликтов и противоречий
Шаг 4: Генерация базы знаний
Создание структурированного Markdown файла со всеми разделами и трассировкой к источникам.
Статистика по репозиторию BearingsInfo
После запуска скрипта на репозитории BearingsInfo:
- Всего обработано файлов: 3,279
- Терминов в глоссарии: 11,702
- Структур данных: 384
- Размер базы знаний: ~6 MB
Применение
База знаний может использоваться для:
- Обучения LLM - полный датасет по подшипникам
- RAG / Vector DB - структурированная информация с источниками
- Корпоративной Wiki - готовая справочная система
- Подготовки ТЗ - полное описание предметной области
- Автоматизации - машиночитаемый формат для обработки
- Агентных систем - база знаний для AI-агентов
Расширения
Возможные дополнительные форматы вывода:
- JSON / YAML - для программной обработки
- CSV - для табличного представления
- Vector DB format - для семантического поиска
- Wiki format - для корпоративных вики-систем
Пример выходных данных
## Шаг 1. Инвентаризация файлов
| № | Имя файла | Тип | Размер (байт) | Назначение | Ключевые темы |
|---|-----------|-----|---------------|------------|---------------|
| 1 | `README.md` | Markdown | 1905 | Основная документация | обработки, Pipeline, Оглавление |
| 2 | `baza.md` | Markdown | 74042 | Документация | words, Содержание, bearings |
...
## 2. Термины и глоссарий
| Термин | Определения | Источники |
|--------|-------------|-----------|
| Подшипник качения | Опора или направляющая, основанная на... | 15 источник(ов) |
| ГОСТ | Государственный стандарт... | 47 источник(ов) |
...
Техническая информация
Требования
- Python 3.11+
- Стандартные библиотеки Python (нет внешних зависимостей)
Производительность
- Обработка ~3,000 файлов: ~3-5 минут
- Потребление памяти: ~100-200 MB
- Размер выходного файла: ~5-10 MB (зависит от количества контента)
Лицензия
MIT License - см. файл LICENSE в корне репозитория
Автор
Создано для проекта BearingsInfo