Osmi
Загрузчики документов

GitHub Document Loader

Загрузка данных из репозитория GitHub.

GitHub — платформа для контроля версий и совместной работы. Этот модуль обеспечивает возможность загрузки и обработки контента из репозиториев GitHub, поддерживая как публичные, так и приватные репозитории.

Данный модуль предоставляет продвинутый загрузчик документов для GitHub, который способен:

  • Загружать контент из репозиториев GitHub
  • Обеспечивать доступ к приватным репозиториям
  • Обрабатывать репозитории рекурсивно
  • Работать с пользовательскими инстансами GitHub
  • Управлять параллельностью и повторными попытками
  • Настраивать фильтрацию файлов
  • Обрабатывать контент с помощью разделителей текста

Входные данные

Обязательные параметры

Ссылка на репозиторий: URL репозитория GitHub (например, https://github.com/osmi) Ветка: ветка для загрузки контента (по умолчанию: main)

Дополнительные параметры

  • Учётные данные для подключения: учетные данные API GitHub (требуются для приватных репозиториев)
  • Рекурсивный режим: обработка поддиректорий
  • Максимальная параллельность: максимальное количество одновременных загрузок файлов
  • Базовый URL GitHub: пользовательский базовый URL GitHub для корпоративных инстансов
  • API инстанса GitHub: пользовательский API URL для корпоративных инстансов
  • Игнорируемые пути: массив шаблонов glob для путей, которые необходимо игнорировать
  • Максимальное число повторных попыток: предел количества попыток загрузки
  • Разделитель текста: средство разделения текста для обработки извлечённого содержимого
  • Дополнительные метаданные: JSON-объект с дополнительной информацией
  • Исключить ключи метаданных: список ключей метаданных через запятую для исключения

Выходные данные

  • Документ: массив объектов документов с метаданными и содержанием страницы (pageContent)
  • Текст: объединённая строка из pageContent всех документов

Особенности

  • Поддержка публичных и приватных репозиториев
  • Поддержка корпоративных инстансов GitHub
  • Рекурсивная обработка директорий
  • Управление параллельностью
  • Механизм повторных попыток
  • Фильтрация путей
  • Поддержка разделения текста
  • Настройка метаданных

Методы аутентификации

Публичные репозитории:

  • Аутентификация не требуется
  • Применяются ограничения по скорости
  • Ограничены публичным контентом

Приватные репозитории:

  • Требует токен доступа к GitHub
  • Более высокие лимиты скорости
  • Доступ к приватному контенту
  • Поддержка корпоративных инстансов

Структура документа

Каждый документ содержит:

  • pageContent: содержимое файла
    • metadata:
    • source: путь файла в репозитории
    • branch: ветка репозитория
    • commit: хеш коммита
    • дополнительные пользовательские метаданные

Примечания

  • Поддержка как публичных, так и приватных репозиториев
  • Поддержка корпоративных инстансов GitHub
  • Автоматическая обработка ограничений по скорости
  • Обратное импульсное увеличение (exponential backoff) при повторных попытках
  • Фильтрация путей с помощью шаблонов glob
  • Эффективная по памяти обработка
  • Обработка ошибок для недопустимых репозиториев