Локальная папка в текст: ваша кодовая база в одном файле без ее загрузки
Направьте это на папку на вашем компьютере, и вы получите один текстовый файл: дерево каталогов в вверху, затем каждый выбранный вами файл, каждый из которых разделен заголовком с указанием пути. Как бы вы это ни называли — объединение кодовой базы в один файл, объединение исходных файлов, объединение каталога в один документ — вот и вся идея. Этот формат LLM обрабатывает лучше всего, поскольку модель может видеть форму проекта и его содержимого одновременно, и он может рассуждать о том, как один файл связан другому.
Это бесплатно, не требует регистрации и не требует установки. Выбираем папку, убираем галочку какая модель не требуется, и экспортируйте проект в виде одного текстового файла, который можно вставить куда угодно.
Часть, которая волнует большинство людей: ничего не загружено. Здесь нет сервера трубопровод. Ваши файлы читаются в браузере, собираются в памяти и возвращаются вам. Если у вас есть избегал онлайн-конвертеров, потому что кодовая база принадлежит клиенту, или находится под соглашением о неразглашении, или просто вы не можете вставлять его в сторонний сервис, это возражение не применимо здесь — и к следующему раздел объясняет, почему именно, потому что «доверьтесь нам, это безопасно» — это не тот ответ, который должен принять каждый.
Как на самом деле работает частный конвертер кодовой базы в текст без загрузки
Современные браузеры могут читать файлы с диска, никуда их не отправляя. Когда вы выбираете папку,
браузер передает странице список дескрипторов файлов. Каждый из них читается по стандарту.
FileReader API, который декодирует байты в строку в собственной памяти вкладки.
дерево каталогов, количество токенов, конкатенация — все это происходит в JavaScript, выполняющемся на вашем компьютере.
машина. Нет fetch, без XHR, без конечной точки API, без вызова сторонней аналитики
перенос содержимого файла. Откройте вкладку сети вашего браузера во время конвертации, и вы увидите, что она останется
пустой.
Этот механизм имеет некоторые полезные побочные эффекты, помимо конфиденциальности:
- Он работает в автономном режиме. После загрузки страницы потяните сетевой кабель. Конверсия все еще бежит. Полезно на изолированной машине или в заблокированной корпоративной сети.
- Никаких ограничений на загрузку или ограничений по скорости. Нет квоты API, которую нужно достичь, потому что нет API. Единственный потолок — это память вашего браузера и ваше терпение.
- Он работает с кодом, который никогда не был зафиксирован. Царапина ветка, неотслеживаемая
эксперимент, папка, которая никогда не видела
git init- GitHub конвертер репозитория в текст не могу коснитесь любого из них, потому что он считывает данные из API GitHub. Этот читает с диска, так что это не так. вообще заботьтесь о вашей ситуации с контролем версий. - Ничего не сохраняется. Закройте вкладку, и состояние исчезнет — история для очистки отсутствует. ни одна учетная запись не содержит копию вашего источника.
Три способа реализовать проект
Используйте средство выбора каталога, чтобы перейти к папке, или перетащите папку прямо из Finder или Explorer. в зону сброса. Оба обходят дерево рекурсивно, поэтому вы получаете весь проект, включая вложенные подкаталоги, а не только верхний уровень.
Вы также можете перетащить ZIP-архив, и он распакуется в браузере — удобно, когда кто-то отправил вам электронное письмо. проект, или вы вообще не будете его извлекать. Стоит знать одно различие: используйте эту страницу, когда в архиве хранится проект кода, потому что вам нужно дерево каталогов и заголовки путей для каждого файла. Если это куча документов — отчетов, таблиц, PDF-файлов — ZIP в текст или Почтовый индекс до Markdown подходит лучше, поскольку они извлекают читаемый контент из каждого документа вместо того, чтобы рассматривать файлы как источник.
Любая IDE, любой редактор — ему нужна только папка
Не нужно устанавливать плагин и не нужно утверждать расширение, поскольку оно не интегрируется с вашим редактор вообще. Требуется каталог. Независимо от того, является ли этот каталог рабочей областью VS Code, Проект IntelliJ IDEA или PyCharm, решение Visual Studio, модуль Android Studio, Xcode проект, рабочее пространство Eclipse или папку, которую вы когда-либо открывали только в Neovim, это один и тот же набор файлы на одном диске. Наведите на него средство выбора, и все готово.
Стоит уточнить, потому что «экспортировать мой проект VS Code как один TXT» и «экспортировать файл IntelliJ проект в один файл» — вопросы, которые люди обычно задают в первую очередь своему редактору. Редакторы обычно являются неправильное место для поиска. Они экспортируют файлы, по одному. У некоторых есть расширение торговой площадки. это наполовину решает проблему, большинство нет, и каждый решает по-своему, поэтому ответ для одной IDE бесполезен в тот момент, когда вы переключаетесь. Папка является общим знаменателем.
Это также лучший способ, чем заархивировать проект и отправить его. Архив прекрасно подходит разработчику для
разработчик, но модели чата нужен текст, а не контейнер, и рецензент должен сначала извлечь его.
читая строку. Консолидированный .txt читаем
встроенный: вставьте его в беседу, прикрепите к заявке, добавьте в ветку электронной почты. И если
кто-то уже отправил ты ZIP-архив, вы можете переместить его прямо на эту страницу, а не
сначала распаковав его.
Сильно обрезайте, прежде чем создавать
Это шаг, который люди пропускают, и именно он решает, можно ли использовать результат. все начинает отмечаться в дереве флажков, что означает, что по умолчанию вы собираетесь включить много вещей, нет модель нужно видеть.
Здесь одно работает в вашу пользу. Если папка содержит .gitignore, его читают и
применяются его правила, в том числе вложенные глубже в дерево, ограниченные собственным каталогом, с
строки комментариев пропущены. На обычном репозитории, который незаметно удаляет большинство злостных нарушителей до вас.
трогайте что угодно, потому что вещи, которые раздувают дамп, обычно — это те же самые вещи, которые вы уже сказали git
оставить в покое. .git сам каталог всегда исключается.
Однако не полагайтесь на него полностью. Папка без .gitignore — извлеченный ZIP-файл,
передача поставщика, каталог, который никогда не был репозиторием, не имеет такой защиты. И много шумного
вещи законно отслеживаются в git. Сканируйте дерево и снимите галочки:
node_modules,vendor,.venv,site-packages. Деревья зависимостей огромны, и ничто из них не является вашим кодом. Ан неподрезанныйnode_modulesодних могут быть сотни тысяч токенов других людей источник. Это затопит реальный проект, и ответы модели переместятся в библиотеку. внутренности.- Построить вывод —
dist,build,.next,target,out, сообщает освещение. Это ваш собственный код, минимизированный или транспилируется, дублируется. Чистый шум. - Файлы блокировки.
package-lock.json,yarn.lock,poetry.lock,Cargo.lock. Тысячи строк хешей, не несущих почти никакой информации. смысловая информация. Сохраните манифест (package.json,pyproject.toml) — это та часть, которая сообщает модели, в каком стеке вы находитесь. - Сгенерированный код и фикстуры — вывод protobuf, генератор кода GraphQL, база данных миграции, большие начальные файлы или файлы снимков.
- Что-нибудь с секретами. Ничего не передается, но выходной файл попадает в
окно чата в конце концов. Уйти
.envвне.
Двоичные файлы обрабатываются за вас: изображения, шрифты, скомпилированные артефакты и т.п. отфильтровываются расширение еще до того, как они достигнут дерева, и все, что проскальзывает, перехватывается нулевым байтом. сканировать и заменять коротким заполнителем, а не выбрасывать как мусор. Файлы размером более 1 MB получают заполнитель, также отмечающий размер, что не позволяет одному случайному CSV-файлу съесть весь ваш контекстный бюджет.
В верхней части вывода также есть переключатель для дерева каталогов: фильтрованный шоу
только то, что вы выбрали, полный показывает полную структуру с отмеченными вами вариантами.
Полный — лучший выбор, когда вы спрашиваете об архитектуре, потому что модель может видеть, что
tests/ Каталог существует, даже если вы его не включили. Отфильтрованное лучше, когда вы
хочу, чтобы модель была узконаправленной и ничего больше.
Оставаясь внутри контекстного окна
Сгенерированный вывод содержит реальное количество токенов, созданное gpt-tokenizer библиотека
а не предположение, разделенное на четыре символа. Прежде чем вставлять, сверьте его с вашей моделью. Это
гораздо лучший рабочий процесс, чем вставка, ожидание и возврат ошибки длины.
Приблизительные указания о том, сколько отправлять. Отправьте весь проект когда он достаточно мал, чтобы удобно вписывается, и ваш вопрос носит архитектурный характер: «где на самом деле применяется аутентификация», «что сломается, если я изменю этот интерфейс», «объясните поток данных от запроса к базе данных». модели нужна полная картина, чтобы честно ответить на эти вопросы, а частичный дамп дает уверенные предположения. о файлах, которые он никогда не видел.
Отправить кусочек когда вопрос локальный — один модуль плюс тесты, которые его охватывают, плюс два или три файла, из которых он импортируется. Меньший контекст означает более четкие ответы и меньше отклонений. Обычно вы получите лучшие результаты от 5000 хорошо выбранных токенов, чем от 200 000 неразборчивых.
Монорепозиторий нужен взвешенный подход. Не конвертируйте корень репо. Конвертировать один пакет одновременно, и если этот пакет зависит от общей внутренней библиотеки, включите общедоступную библиотеку этой библиотеки. поверхность рядом с ним. Если вам нужен межпакетный контекст, можно выполнить два прохода: один полный. дерево, в котором почти не выбраны файлы — это дает модели карту — а затем второй проход с большим количеством файлов. пакет, в котором вы на самом деле работаете.
Почему бы просто не бежать cat или сценарий оболочки?
Справедливый вопрос, и иногда честный ответ заключается в том, что вам следует это сделать. Если вам нужны три известных файла
соединились вместе, cat auth.py models.py routes.py > out.txt это быстрее, чем открыть
браузер. Никто не пытается вас отговорить от этого.
Это перестает окупаться в тот момент, когда вы нацеливаете его на целый проект. Беги
find . -type f -exec cat {} + на реальном репо, и вот что вы получаете:
- Двоичные файлы в середине исходного кода. PNG, шрифты, скомпилированные объекты, случайные SQLite — все это декодируется как текст, все в моджибаке. Затем вы начинаете поддерживать Белый список расширений.
- Полное дерево зависимостей.
node_modules,.venv,vendor,target, и содержимое.gitсам. Исключая это означает написание выражений сокращения и поддержание их актуальности для каждого проекта, над которым вы работаете. Здесь твой.gitignoreуже описывает именно это, включая вложенные файлы, и это подаст заявку на вас. - Понятия не имею, насколько он велик. Конкатенация дает вам байты, а не токены, и деление символов на четыре — это предположение, неверное в обоих направлениях. Вы обнаружите, что это не подходит, когда модель отказывается от этого.
- Выборочный контроль обходится дороже сценария. «Все под
srcкроме сгенерированный API-клиент плюс два файла конфигурации в корне» — это еще один флаг и еще один регулярное выражение. Дерево флажков делает это примерно за четыре клика. - Карты вверху нет. Необработанная конкатенация представляет собой стену текста без заголовка структуры. поэтому модель не может определить, где заканчивается один файл и начинается следующий или каков макет проекта. похоже. Разделы, разделенные путями, и дерево каталогов — это большая часть того, что делает дамп разборчивым.
Все это можно построить, и многие люди это построили. Это день написания сценариев, а затем небольшой инструмент, который вы поддерживаете. Вопрос в том, нужен ли вам сценарий или результат.
Для чего люди на самом деле используют это
- Кодовая база, которую вы только что унаследовали. Кто-то ушел, и теперь сервис на 40 000 линий работает. твой. Преобразуйте его, вставьте и запросите точки входа, основные абстракции и три вещи, которые больше всего удивят нового сопровождающего. Это более быстрая ориентация, чем любая передача документ, который вам дадут.
- Документация из реального источника. Файлы README портятся, потому что они пишутся один раз. Генерировать их из кода, который существует прямо сейчас — обзоры архитектуры, сводки модулей, точная список переменных среды, которые фактически считывает приложение.
- Тесты для непроверенного кода. Включите модуль и один существующий тестовый файл в качестве стиля. ссылка. Модель соответствует вашей структуре, вашему названию, шаблонам приспособлений, а не изобретая соглашение о тестировании, которое вы не используете.
- Планирование миграции и рефакторинга. Компоненты класса для перехватов, JavaScript для TypeScript, один ORM в другой. Модель, которая может видеть каждое место вызова, скорее дает вам реальный план. чем общий контрольный список.
- RAG и вложения. Один чистый текстовый файл с разделами, разделенными путями, легко разделить эти разделители и отправить их в векторное хранилище.
Когда вы закончите, скопируйте вывод в буфер обмена или загрузите его как файл. .txt файл — стоит
сохраните, если вы будете повторно использовать один и тот же контекст в нескольких разговорах.
Код — это только половина контекста
Большинство реальных вопросов о проекте также связаны с вещами, которые не являются исходными файлами. Спецификация живет в PDF, схема в файле JSON, конфигурация в XML, данные в CSV. Преобразуйте их отдельно и вставьте их вместе с дампом кодовой базы: PDF в Markdown для спецификаций и документация поставщика, Слово Markdown для документы с требованиями, JSON в Markdown для API полезные нагрузки и схемы, XML в Markdown для наследия конфигурация, CSV в Markdown для образца данные и HTML для Markdown для экспортированных страниц. Если вы не хотите выбирать формат, File2Txt возьмет все, что ты бросишь на этом.
Часто задаваемые вопросы
Как преобразовать папку в текстовый файл?
Выберите каталог выше, и вы получите его дерево в виде списка флажков. Отметьте нужные файлы и экспортируйте один текстовый файл — сначала структуру каталогов, затем каждый файл под заголовком и его путь. Бесплатно, без регистрации, ничего не нужно устанавливать.
Мой код загружен на сервер?
Нет. В этом конвейере вообще нет сервера. Папка читается в браузере, вывод собирается в браузере, и по сети ничего не проходит — вы можете открыть devtools и смотреть, или отключиться от интернета после загрузки страницы, и она все равно работает. В этом разница между этим и GitHub преобразователь, который должен вызвать API.
Безопасно ли конвертировать кодовую базу компании онлайн?
Эта страница представляет собой версию, которая отвечает на этот вопрос с помощью механики, а не обещания: файлы никогда не покидают машину, поэтому нам не в чем доверять. Что по-прежнему имеет значение, так это то, что вы делаете дальше: вставка выходных данных в размещенную модель отправляет их этому провайдеру, поэтому проверьте политику вашей организации и раскройте секреты, прежде чем делать это.
Могу ли я преобразовать весь проект, включая подпапки?
Да, можно пройти по всему дереву и выбрать каждый уровень. Отмена выбора папки удаляет все, что находится под ней, одним щелчком мыши, как и вы удаляете node_modules или .git без охоты через детей. Счетчик токенов обновляется по мере продвижения, поэтому вы можете сразу увидеть эффект.
Какие браузеры могут выбрать целую папку?
При выборе папки используется атрибут загрузки каталога, который Chrome, Edge, Firefox и Safari поддерживают уже много лет, поэтому работает любой современный настольный браузер. Мобильные браузеры представляют собой пробел: ни iOS, ни Android не предоставляют средства выбора папок. На телефоне заархивируйте каталог и используйте ZIP в текст вместо этого.
Каков предел размера файла?
Загрузка отсутствует, поэтому ограничений на загрузку нет — ограничением является объем памяти вашего компьютера и количество текста, которое вы впоследствии можете с пользой вставить куда угодно. На практике счетчик токенов становится реальным пределом задолго до того, как это сделает браузер. Репозиторий, полезный источник которого составляет менее мегабайта, охватывает большинство проектов после отмены выбора зависимостей.
Остальная часть инструментария
Если код размещен, а не локально, Конвертер GitHub в текст и Конвертер GitLab в текст сделай то же самое задание против удаленного репозитория, в том числе частного с токеном. Для документации, которая только существует в сети, Web2Txt царапает URL-адрес в чистый Markdown — соедините очищенную ссылку API с вашим локальным источником и помощником по кодированию. можно видеть обе стороны одновременно.
Если вы хотите пойти дальше, в блоге написано больше: превращение базы кода в файл, готовый к LLM, прохождение конвертер папок в текст, руководство по подача всего репозитория в ИИ, и генерал руководство по преобразованию файла в текст для всего, что не является кодом.
Repo2Txt создан и поддерживается v12hero, независимый разработчик, создающий собственные и веб-приложения, ориентированные на конфиденциальность.