Парсер документации 1С для создания контекстных файлов для LLM
Этот проект предназначен для парсинга файлов документации 1С (.hbk файлы) и создания структурированных контекстных файлов для использования с языковыми моделями (LLM). Проект анализирует как основной файл документации, так и файл оглавления, обеспечивая полное покрытие синтаксиса и архитектуры 1С.
- ✅ Парсинг .hbk файлов - извлечение HTML документации из архивов
- ✅ Анализ структуры - автоматическое определение типов файлов и категорий
- ✅ Извлечение синтаксиса - поиск объектов, методов, свойств, функций
- ✅ 4 режима экспорта - максимальный/оптимизированный, 1 файл/множество файлов
- ✅ Оптимизация для IDE - файлы <50KB для Cursor и других редакторов
- ✅ Поисковый индекс - быстрый поиск по ключевым словам
- ✅ Демонстрация - интерактивные примеры использования
Если у вас есть исходный файл shcntx_ru.hbk, конвертируйте его в rebuilt.shcntx_ru.zip:
# Используя WinRAR (установите WinRAR с https://www.win-rar.com/)
"C:\Program Files\WinRAR\Rar.exe" r data/shcntx_ru.hbkЭто создаст восстановленный архив rebuilt.shcntx_ru.zip для парсинга.
pip install beautifulsoup4# Интерактивный режим
python run.py
# Автоматический режим (без интерактивного ввода)
python run.py --auto
# Полная обработка всей документации
python run.py --full
# Режимы экспорта:
# 1. Максимальный (1 файл)
python run.py --mode max
# 2. Оптимизированный (1 файл)
python run.py --mode optimized
# 3. Максимальный разбитый (множество файлов)
python run.py --mode max-split --max-file-size 50 --max-items-per-file 50
# 4. Оптимизированный разбитый (множество файлов)
python run.py --mode optimized-split --max-file-size 50 --max-items-per-file 50
# Устаревший способ (работает):
python run.py --optimized
# Обработка конкретного файла
python run.py --file data/rebuilt.shcntx_ru.zip
# Демонстрация результатов
python run.py --demo data/1c_context_optimized.json
# Проверка зависимостей
python run.py --check# Демо оптимизированного контекста (рекомендуется)
python run.py --demo data/1c_context_optimized.json1c-help-parser/
├── 📁 src/ # Исходный код
│ ├── 📁 parsers/ # Парсеры
│ │ ├── base_parser.py # Базовый класс для парсеров
│ │ ├── hbk_parser.py # Парсер архивов .hbk
│ │ └── bsl_syntax_extractor.py # Извлечение синтаксиса
│ ├── 📁 converters/ # Конвертеры
│ │ ├── base_converter.py # Базовый класс для конвертеров
│ │ ├── context_converter.py # Базовый конвертер
│ │ └── optimized_context_converter.py # Оптимизированный
│ ├── 📁 demos/ # Демонстрации
│ │ ├── llm_context_demo.py # Демо основного файла (русский)
│ │ ├── test_root_demo.py # Демо файла оглавления (английский)
│ │ ├── optimized_demo.py # Демо оптимизированного контекста
│ │ └── improved_demo.py # Демо улучшенного парсера
│ └── inspect_hbk.py # Инспектор .hbk
├── 📁 data/ # Данные и результаты
│ ├── *.zip # Архивы документации
│ ├── 1c_context.json # Максимальный контекст (1 файл)
│ ├── 1c_context_optimized.json # Оптимизированный контекст (1 файл)
│ ├── max_split/ # Максимальный разбитый (множество файлов)
│ ├── optimized_split/ # Оптимизированный разбитый (множество файлов)
│ └── extracted/ # Извлеченные HTML файлы
├── 📁 docs/ # Подробная документация
│ ├── DOCUMENTATION_OVERVIEW.md # Обзор документации
│ ├── REPORTS/ # Отчеты и сравнения
│ ├── README_CONTEXT.md # Инструкции по использованию
│ ├── STRUCTURE.md # Детальная структура
│ └── API/ # API документация
└── 📁 examples/ # Примеры
└── Module.bsl # Пример кода 1С
- Размер: 38MB
- Файлов: ~25000 HTML файлов
- Обрабатывается по умолчанию: все файлы (настраивается)
- Фокус: Детальная документация по синтаксису BSL
- Язык: Русский
- Содержимое: Структурированные данные с разделением на content (описание) и metadata (детали)
{
"content": "Краткое описание объекта",
"metadata": {
"syntax_variants": [], // Варианты синтаксиса
"parameters_by_variant": {}, // Параметры по вариантам
"collection_elements": {}, // Информация о коллекциях
"methods": [], // Методы объекта
"availability": [], // Доступность
"version": "" // Версия
}
}python run.py --demo data/1c_context_optimized.jsonЗапросы:
- "форма" - поиск по ключевому слову
- "сервер" - поиск по доступности
- "8.2" - поиск по версии
- "objects" - поиск по категории
Запросы:
- "What is FormDataStructure?"
- "What is Global context?"
- "What is DynamicList?"
- Изучение синтаксиса и API
- Поиск методов и свойств
- Понимание архитектуры
- Создание контекста для чат-ботов
- Улучшение ответов по 1С
- Автоматическая документация
- Структурированная документация
- Интерактивные примеры
- Поиск по ключевым словам
MIT License - см. файл LICENSE
- Команде 1С за документацию
- Сообществу разработчиков 1С
- Проекту BeautifulSoup для парсинга HTML
- Автор: AI Assistant
- Проект: 1C Help Parser
- Версия: 1.2.0
⭐ Если проект полезен, поставьте звездочку!