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

Список функций
- Автоматическое определение типов входных данных (например, репозитории 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 и соответствующих зависимостей. Ниже приведены подробные шаги по установке:
- склад клонов
Выполните следующую команду в терминале, чтобы клонировать репозиторий OneFileLLM:git clone https://github.com/jimmc414/onefilellm.git cd onefilellm
- Создание виртуальной среды(Рекомендуется)
Чтобы избежать конфликтов зависимостей, рекомендуется создать виртуальную среду:python -m venv .venv source .venv/bin/activate # Windows 使用 .venv\Scripts\activate
- Установка зависимостей
монтажrequirements.txt
Зависимости, перечисленные вpip install -U -r requirements.txt
Зависимости включают
PyPDF2
(Обработка PDF),BeautifulSoup
(веб-гусеница),tiktoken
(количество жетонов),pyperclip
(Операция с буфером обмена),youtube-transcript-api
(транскрипция на YouTube) и др. - Настройка токенов доступа к GitHub(Необязательно)
Чтобы получить доступ к частным репозиториям GitHub, необходимо установить персональный токен доступа:- Войдите в GitHub и перейдите в раздел Настройки > Настройки разработчика > Персональный токен доступа.
- Чтобы сгенерировать новый токен, выберите
repo
(частный склад) илиpublic_repo
(Открытый склад) Компетентность. - Установите маркер в качестве переменной окружения:
export GITHUB_TOKEN=<your-token> # Windows 使用 set GITHUB_TOKEN=<your-token>
- Проверка установки
Выполните следующую команду, чтобы проверить, успешно ли прошла установка: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) могут обрабатываться некорректно.
сценарий применения
- Обзор кода
Разработчики вводят репозитории GitHub или URL-адреса pull request, генерируют текст с кодом и комментариями, а также вводят LLM для анализа качества кода или предложений по оптимизации. - Краткое содержание диссертации
Исследователи вводят URL-адрес статьи ArXiv или Sci-Hub, извлекают текст и вводят LLM, чтобы создать аннотацию или ответить на исследовательский вопрос. - Составление видеоматериалов
Создатели контента вводят URL-адреса видео на YouTube, чтобы получить расшифрованный текст, вводят LLM для извлечения ключевых моментов или генерируют сценарии. - Интеграция документов
Технические писатели вводят пути к веб-страницам или локальным каталогам, интегрируют содержимое документов и вводят LLM для переписывания или создания отчетов.
QA
- Какие форматы файлов поддерживает OneFileLLM?
адъювант.py
, и.ipynb
, и.txt
, и.md
, и.pdf
, и.csv
и т.д., можно изменить, изменив параметрallowed_extensions
Персонализация. - Как получить доступ к частным репозиториям GitHub?
Установка персонального маркера доступа GitHub в качестве переменной окруженияGITHUB_TOKEN
требуетсяrepo
Разрешения. - Как уменьшить размер выводимого текста?
модификацииexcluded_patterns
ответить пениемEXCLUDED_DIRS
Исключение лишних файлов, настройкаmax_depth
Ограничьте глубину просмотра веб-страниц. - В чем преимущества вывода XML?
XML имеет четкую структуру, обозначая источники и типы содержимого, что улучшает способность LLM понимать и обрабатывать сложные данные. - Что делать, если я не могу загрузить свою статью с Sci-Hub?
Проверьте сетевое подключение, чтобы убедиться в правильности DOI/PMID, или обновитеonefilellm.py
Доменное имя Sci-Hub в
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...