OneFileLLM: интеграция нескольких источников данных в один текстовый файл

Общее введение

OneFileLLM - это инструмент командной строки с открытым исходным кодом, предназначенный для объединения нескольких источников данных в один текстовый файл для удобного ввода в большие языковые модели (LLM). Он поддерживает обработку репозиториев GitHub, статей ArXiv, транскрипций видео с YouTube, веб-контента, статей Sci-Hub и локальных файлов, автоматически генерируя структурированный текст и копируя его в буфер обмена. Разработчик Джим Макмиллан создал инструмент, чтобы упростить создание подсказок LLM и сократить утомительную задачу ручной организации данных. Разработанный на языке Python, инструмент поддерживает множество форматов файлов, предварительную обработку текста и обертку XML, что делает его подходящим для разработчиков, исследователей и создателей контента. Он легко устанавливается, гибко настраивается и может работать как из командной строки, так и через веб-интерфейс.

OneFileLLM:整合多种数据源为单一文本文件

 

Список функций

  • Автоматическое определение типов входных данных (например, репозитории GitHub, ссылки на YouTube, статьи ArXiv, локальные файлы и т. д.).
  • Поддержка обработки репозиториев GitHub, Pull Requests и Issues в единый текст.
  • Извлечение и преобразование PDF-содержимого статей ArXiv и Sci-Hub в текст.
  • Получайте расшифровки видеороликов на YouTube.
  • Ползание по веб-контенту, поддержка заданной глубины ползания по ссылкам.
  • Работает с широким спектром форматов файлов, включая .py, и.ipynb, и.txt, и.md, и.pdf, и.csv и т.д.
  • Обеспечивает предварительную обработку текста, такую как удаление стоп-слов, знаков препинания, преобразование в нижний регистр.
  • Поддержка исключения файлов и каталогов, фильтрация автоматически создаваемых файлов (например *.pb.go) или каталог тестов.
  • Сообщите количество лексем для сжатого и несжатого текста, чтобы оптимизировать управление контекстом LLM.
  • Выходной текст инкапсулируется в формат XML для повышения эффективности обработки LLM.
  • Автоматически копирует несжатый текст в буфер обмена для удобства вставки в платформу LLM.
  • Предоставляет веб-интерфейс Flask для упрощения ввода URL или пути.

 

Использование помощи

Процесс установки

OneFileLLM требует наличия среды Python и соответствующих зависимостей. Ниже приведены подробные шаги по установке:

  1. склад клонов
    Выполните следующую команду в терминале, чтобы клонировать репозиторий OneFileLLM:

    git clone https://github.com/jimmc414/onefilellm.git
    cd onefilellm
    
  2. Создание виртуальной среды(Рекомендуется)
    Чтобы избежать конфликтов зависимостей, рекомендуется создать виртуальную среду:

    python -m venv .venv
    source .venv/bin/activate  # Windows 使用 .venv\Scripts\activate
    
  3. Установка зависимостей
    монтаж requirements.txt Зависимости, перечисленные в

    pip install -U -r requirements.txt
    

    Зависимости включают PyPDF2(Обработка PDF),BeautifulSoup(веб-гусеница),tiktoken(количество жетонов),pyperclip(Операция с буфером обмена),youtube-transcript-api(транскрипция на YouTube) и др.

  4. Настройка токенов доступа к GitHub(Необязательно)
    Чтобы получить доступ к частным репозиториям GitHub, необходимо установить персональный токен доступа:

    • Войдите в GitHub и перейдите в раздел Настройки > Настройки разработчика > Персональный токен доступа.
    • Чтобы сгенерировать новый токен, выберите repo(частный склад) или public_repo(Открытый склад) Компетентность.
    • Установите маркер в качестве переменной окружения:
      export GITHUB_TOKEN=<your-token>  # Windows 使用 set GITHUB_TOKEN=<your-token>
      
  5. Проверка установки
    Выполните следующую команду, чтобы проверить, успешно ли прошла установка:

    python onefilellm.py --help
    

    Если появится сообщение о помощи, значит, установка выполнена правильно.

режим работы

OneFileLLM поддерживает как командную строку, так и веб-интерфейс:

  • режим командной строки
    Запустите основной скрипт и вручную введите URL или путь:

    python onefilellm.py
    

    или укажите URL/путь непосредственно в командной строке:

    python onefilellm.py https://github.com/jimmc414/onefilellm
    
  • Режим веб-интерфейса
    Запустите веб-интерфейс Flask:

    python onefilellm.py --web
    

    Откройте браузер и посетите http://localhost:5000Введите URL-адрес или путь и нажмите "Обработать", чтобы получить результат.

Основные функции

В основе OneFileLLM лежит интеграция нескольких источников данных в единый текст, выводимый в виде uncompressed_output.txt(без сжатия),compressed_output.txt(сжатый) и processed_urls.txt(просмотр списка URL-адресов). Вот как использовать основные функции:

  • Обработка репозиториев GitHub
    Введите URL-адрес репозитория (например. https://github.com/jimmc414/onefilellm), инструмент рекурсивно получает поддерживаемые типы файлов (например. .py, и.md), объединенные в единый текст.
    Пример:

    python onefilellm.py
    Enter URL or path: https://github.com/jimmc414/onefilellm
    

    Выходной файл содержит содержимое файла репозитория в следующем формате XML-обертки:

    <source type="github_repository">
    <content>
    [文件内容]
    </content>
    </source>
    

    Текст автоматически копируется в буфер обмена.

  • Обработка запросов на публикацию или проблем на GitHub
    Введите запрос на притяжение (например. https://github.com/dear-github/dear-github/pull/102) или URL-адрес выпуска (например. https://github.com/isaacs/github/issues/1191), инструмент извлекает детали diff, комментарии и все содержимое репозитория.
    Пример вывода включает изменения кода, комментарии и сопутствующую документацию, представленную в виде:

    <source type="github_pull_request">
    <content>
    [差异详情和评论]
    </content>
    </source>
    
  • Извлечение статей из ArXiv или Sci-Hub
    Введите URL-адрес ArXiv (например. https://arxiv.org/abs/2401.14295) или Sci-Hub DOI/PMID (например. 10.1053/j.ajkd.2017.08.002 возможно 29203127), инструмент преобразует PDF в текст.
    Пример:

    Enter URL or path: https://arxiv.org/abs/2401.14295
    

    На выходе получается текст статьи в XML-обертке:

    <source type="arxiv_paper">
    <content>
    [论文内容]
    </content>
    </source>
    
  • Получить расшифровку на YouTube
    Введите URL-адрес видеоролика на YouTube (например. https://www.youtube.com/watch?v=KZ_NlnmPQYk), инструмент для извлечения транскрибированного текста.
    Пример:

    Enter URL or path: https://www.youtube.com/watch?v=KZ_NlnmPQYk
    

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

    <source type="youtube_transcript">
    <content>
    [转录内容]
    </content>
    </source>
    
  • веб-гусеница
    Введите URL-адрес веб-страницы (например. https://llm.datasette.io/en/stable/), инструмент просматривает страницу и определяет глубокие ссылки (по умолчанию) max_depth=2).
    Пример:

    Enter URL or path: https://llm.datasette.io/en/stable/
    

    На выходе получается сегментированный веб-текст, заключенный в капсулу:

    <source type="web_documentation">
    <content>
    [网页内容]
    </content>
    </source>
    
  • Работа с локальными файлами или каталогами
    Введите путь к локальному файлу (например. C:\documents\report.pdf) или каталог (например. C:\projects\research), инструмент извлекает содержимое или интегрирует поддерживаемые типы файлов из каталога.
    Пример:

    Enter URL or path: C:\projects\research
    

    На выходе вы получите содержимое каталога в XML-обертке.

Функциональное управление

  • Инкапсуляция вывода XML
    Все выходные данные представлены в формате XML, который обеспечивает четкую структуру и повышает эффективность обработки LLM. Формат выглядит следующим образом:

    <source type="[source_type]">
    <content>
    [内容]
    </content>
    </source>
    

    среди них source_type в том числе благодаря github_repository, иarxiv_paper и т.д.

  • Исключение файлов и каталогов
    Поддержка исключения определенных файлов (например. *.pb.go) и каталогов (например. tests) Модификация onefilellm.py попал в точку excluded_patterns ответить пением EXCLUDED_DIRS Список:

    excluded_patterns = ['*.pb.go', '*_test.go']
    EXCLUDED_DIRS = ['tests', 'mocks']
    

    Это уменьшает количество лишнего контента и оптимизирует использование токенов.

  • количество токенов
    пользоваться tiktoken Подсчитывает количество лексем для сжатого и несжатого текста, выводится на консоль:

    Uncompressed token count: 1234
    Compressed token count: 567
    

    Помогает пользователю убедиться, что текст помещается в контекстное окно LLM.

  • Предварительная обработка текста
    Инструмент автоматически удаляет стоп-слова, знаки препинания, преобразует в нижний регистр и генерирует сжатые данные. Пользователи могут изменять preprocess_text функция настраивает логику обработки.
  • Интеграция буфера обмена
    Несжатый вывод автоматически копируется в буфер обмена и вставляется непосредственно в платформы LLM (например, ChatGPT, Claude).
  • веб-интерфейс
    Интерфейс Flask упрощает работу: пользователь вводит URL-адрес или путь и загружает выходной файл или копирует текст. Подходит для нетехнических пользователей.

Пользовательская конфигурация

  • Тип документа
    модификации allowed_extensions список, добавляя или удаляя поддерживаемые типы файлов:

    allowed_extensions = ['.py', '.txt', '.md', '.ipynb', '.csv']
    
  • Глубина веб-ползания
    модификации max_depth параметр, значение по умолчанию - 2:

    max_depth = 2
    
  • Доменное имя Sci-Hub
    Если доменное имя Sci-Hub недоступно, измените onefilellm.py URL-адрес Sci-Hub в

предостережение

  • Убедитесь в стабильном интернет-соединении, транскрипция YouTube и доступ к Sci-Hub зависят от внешних API.
  • Большие хранилища или веб-страницы могут генерировать большие результаты, поэтому рекомендуется проверить количество токенов и настроить правила исключения.
  • Для доступа к Sci-Hub может потребоваться смена домена из-за региональных ограничений.
  • Некоторые форматы файлов (например, зашифрованные PDF) могут обрабатываться некорректно.

 

сценарий применения

  1. Обзор кода
    Разработчики вводят репозитории GitHub или URL-адреса pull request, генерируют текст с кодом и комментариями, а также вводят LLM для анализа качества кода или предложений по оптимизации.
  2. Краткое содержание диссертации
    Исследователи вводят URL-адрес статьи ArXiv или Sci-Hub, извлекают текст и вводят LLM, чтобы создать аннотацию или ответить на исследовательский вопрос.
  3. Составление видеоматериалов
    Создатели контента вводят URL-адреса видео на YouTube, чтобы получить расшифрованный текст, вводят LLM для извлечения ключевых моментов или генерируют сценарии.
  4. Интеграция документов
    Технические писатели вводят пути к веб-страницам или локальным каталогам, интегрируют содержимое документов и вводят LLM для переписывания или создания отчетов.

 

QA

  1. Какие форматы файлов поддерживает OneFileLLM?
    адъювант .py, и.ipynb, и.txt, и.md, и.pdf, и.csv и т.д., можно изменить, изменив параметр allowed_extensions Персонализация.
  2. Как получить доступ к частным репозиториям GitHub?
    Установка персонального маркера доступа GitHub в качестве переменной окружения GITHUB_TOKENтребуется repo Разрешения.
  3. Как уменьшить размер выводимого текста?
    модификации excluded_patterns ответить пением EXCLUDED_DIRS Исключение лишних файлов, настройка max_depth Ограничьте глубину просмотра веб-страниц.
  4. В чем преимущества вывода XML?
    XML имеет четкую структуру, обозначая источники и типы содержимого, что улучшает способность LLM понимать и обрабатывать сложные данные.
  5. Что делать, если я не могу загрузить свою статью с Sci-Hub?
    Проверьте сетевое подключение, чтобы убедиться в правильности DOI/PMID, или обновите onefilellm.py Доменное имя Sci-Hub в
© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...