المجلد المحلي إلى نص: قاعدة التعليمات البرمجية الخاصة بك في ملف واحد، دون تحميله
قم بتوجيه هذا إلى مجلد على جهازك وستحصل على ملف نصي واحد: شجرة دليل في ملف أعلى، ثم كل ملف قمت بتحديده، مع فصل كل ملف برأس مع مساره. مهما كنت تسميها - دمج قاعدة التعليمات البرمجية في ملف واحد، وتسلسل الملفات المصدر، ودمج الدليل في ملف واحد وثيقة - هذه هي الفكرة برمتها. إنه التنسيق الذي يتعامل معه LLM بشكل أفضل، لأن النموذج يمكنه رؤية شكل المشروع ومحتوياته في نفس الوقت، ويمكنه التفكير في كيفية ارتباط ملف واحد إلى آخر.
إنه مجاني، ولا يوجد اشتراك، ولا يوجد شيء لتثبيته. اختر مجلدًا، وقم بإلغاء تحديد النموذج لا تحتاج إليه، وقم بتصدير المشروع كملف نصي واحد يمكنك لصقه في أي مكان.
الجزء الذي يهتم به معظم الناس: لم يتم تحميل أي شيء. لا يوجد خادم في هذا خط أنابيب. تتم قراءة ملفاتك في المتصفح، ويتم تجميعها في الذاكرة، ثم إعادتها إليك. إذا كنت قد تم تجنب المحولات عبر الإنترنت لأن قاعدة التعليمات البرمجية تنتمي إلى العميل، أو أنها تخضع لاتفاقية عدم الإفشاء، أو ببساطة ليس من حقك لصقه في خدمة جهة خارجية، فإن هذا الاعتراض لا ينطبق هنا - وفي اليوم التالي يشرح القسم السبب بالضبط، لأن عبارة "ثق بنا، إنه آمن" ليست إجابة يجب على أي شخص قبولها.
كيف يعمل برنامج Codebase الخاص لتحويل النص فعليًا دون تحميل
يمكن للمتصفحات الحديثة قراءة الملفات من القرص دون إرسالها إلى أي مكان. عند اختيار مجلد،
يقوم المتصفح بتسليم الصفحة قائمة بمقابض الملفات. تتم قراءة كل واحد مع المعيار
FileReader API، الذي يقوم بفك تشفير البايتات إلى سلسلة في ذاكرة علامة التبويب الخاصة. ال
شجرة الدليل، وعدد الرموز المميزة، والتسلسل - كل ذلك يحدث في JavaScript الذي يعمل على جهازك
آلة. لا يوجد fetch، لا يوجد XHR، ولا نقطة نهاية API، ولا يوجد اتصال تحليلي من جهة خارجية
تحمل محتويات الملف. افتح علامة تبويب الشبكة في متصفحك أثناء التحويل وستشاهدها وهي تبقى
فارغ.
هذه الآلية لها بعض الآثار الجانبية المفيدة التي تتجاوز الخصوصية:
- وهو يعمل حاليا. بمجرد تحميل الصفحة، اسحب كابل الإيثرنت. التحويل لا يزال يعمل. مفيد على جهاز به فجوات هوائية أو شبكة شركة مغلقة.
- لا توجد حدود للتحميل أو حدود المعدل. ليس هناك حصة API للوصول إليها، لأنه لا يوجد واجهة برمجة التطبيقات. السقف الوحيد هو ذاكرة متصفحك وصبرك.
- إنه يعمل على كود لم يتم الالتزام به مطلقًا. فرع الصفر، لم يتم تعقبها
تجربة، المجلد الذي لم يسبق له مثيل
git init- ال GitHub الريبو لتحويل النص لا أستطيع المس أيًا منها، لأنه يقرأ من GitHub API. هذا يقرأ من القرص، لذلك لا تهتم بحالة التحكم في الإصدار الخاص بك على الإطلاق. - لا يتم الاحتفاظ بأي شيء. أغلق علامة التبويب وستختفي الدولة - لا يوجد سجل لتطهيره، لا يوجد حساب يحمل نسخة من المصدر الخاص بك.
ثلاث طرق للحصول على مشروع
استخدم منتقي الدليل للاستعراض إلى مجلد، أو اسحب المجلد مباشرة من Finder أو Explorer على منطقة الهبوط. كلاهما يسيران على الشجرة بشكل متكرر، بحيث تحصل على المشروع بأكمله بما في ذلك التداخل الدلائل الفرعية، وليس فقط المستوى الأعلى.
يمكنك أيضًا إسقاط أرشيف ZIP ويتم فك ضغطه في المتصفح - ويكون مفيدًا عندما يرسل إليك شخص ما بريدًا إلكترونيًا المشروع، أو تفضل عدم استخراجه على الإطلاق. هناك تمييز واحد يستحق المعرفة: استخدم هذه الصفحة عندما يكون الأرشيف يحمل أ مشروع الكود، لأنك تريد شجرة الدليل ورؤوس المسار لكل ملف. إذا كانت كومة من المستندات - التقارير وجداول البيانات وملفات PDF - الرمز البريدي إلى النص أو الرمز البريدي إلى 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 - ملف مضغوط مستخرج، أ
تسليم البائع، الدليل الذي لم يكن ريبو أبدًا - لا يحصل على أي من هذه الحماية. والكثير من الضوضاء
يتم تعقب الأشياء بشكل شرعي في 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 ميغابايت تحصل على يشير العنصر النائب إلى الحجم أيضًا، مما يمنع ملف CSV واحدًا ضالًا من استهلاك ميزانية السياق بالكامل.
يوجد أيضًا مفتاح تبديل لشجرة الدليل في الجزء العلوي من الإخراج: تمت تصفيته يظهر
فقط ما اخترته، كامل يعرض البنية الكاملة مع تحديد اختياراتك.
الكامل هو الخيار الأفضل عندما تسأل عن الهندسة المعمارية، لأن النموذج يمكنه رؤية ذلك أ
tests/ الدليل موجود بالرغم من أنك لم تقم بتضمينه. التصفية أفضل عندما تكون
نريد أن يركز النموذج بشكل ضيق ولا شيء غير ذلك.
البقاء داخل نافذة السياق
يأتي الناتج الذي تم إنشاؤه مع عدد رمزي حقيقي، تم إنتاجه بواسطة gpt-tokenizer مكتبة
بدلاً من تخمين الأحرف مقسمة على أربعة. التحقق من ذلك مقابل النموذج الخاص بك قبل لصقه. انها أ
سير عمل أفضل بكثير من اللصق والانتظار واستعادة خطأ الطول.
إرشادات تقريبية حول مقدار الإرسال. أرسل المشروع بأكمله عندما تكون صغيرة بما يكفي لذلك مناسب بشكل مريح وسؤالك معماري - "أين يتم فرض المصادقة فعليًا"، "ما الذي قد يتعطل إذا قمت بتغيير هذه الواجهة"، "اشرح تدفق البيانات من الطلب إلى قاعدة البيانات". ال يحتاج النموذج إلى الصورة الكاملة للإجابة على تلك الأسئلة بأمانة، وينتج عن التفريغ الجزئي تخمينات واثقة حول الملفات التي لم أرها قط.
أرسل أ شريحة عندما يكون السؤال محليًا - وحدة واحدة بالإضافة إلى الاختبارات التي تغطيها، بالإضافة إلى الملفين أو الثلاثة التي يستورد منها. السياق الأصغر يعني إجابات أكثر وضوحًا وانجرافًا أقل ستحصل عادةً على نتائج أفضل من 5000 رمز مميز تم اختياره جيدًا مقارنة بـ 200000 رمز عشوائي.
مونوريبوس بحاجة إلى نهج متعمد. لا تقم بتحويل جذر الريبو. تحويل حزمة واحدة في كل مرة، وإذا كانت هذه الحزمة تعتمد على مكتبة داخلية مشتركة، فقم بتضمين تلك المكتبة العامة السطح بجانبه. إذا كنت بحاجة إلى سياق عبر الحزمة، فالخدعة الجيدة هي تشغيل تمريرتين: واحدة كاملة شجرة مع عدم تحديد أي ملفات تقريبًا - مما يمنح النموذج خريطة - ثم تمريرة ثانية مليئة بالملفات الحزمة التي تعمل فيها بالفعل.
لماذا لا مجرد تشغيل cat أو شل النصي؟
سؤال عادل، وأحيانًا تكون الإجابة الصادقة هي أنه ينبغي عليك ذلك. إذا كنت تريد ثلاثة ملفات معروفة
انضموا معًا، cat auth.py models.py routes.py > out.txt أسرع من فتح ملف
browser. لا أحد يحاول أن يخرجك من ذلك.
حيث يتوقف عن سداد ثماره هو اللحظة التي تستهدف فيها المشروع بأكمله. تشغيل
find . -type f -exec cat {} + على الريبو الحقيقي وهنا ما تحصل عليه:
- الثنائيات في منتصف المصدر الخاص بك. PNGs، الخطوط، الكائنات المترجمة، طائشة تركيبات SQLite - تم فك تشفيرها كلها كنص، وكلها موجيباك. ثم تبدأ في الحفاظ على القائمة البيضاء للتمديد.
- شجرة التبعية بأكملها.
node_modules،.venv،vendor،target، ومحتوياته.gitنفسها. باستثناء وهذا يعني كتابة تعبيرات البرقوق وإبقائها محدثة لكل مشروع تعمل عليه. هنا، الخاص بك.gitignoreيصف بالفعل ذلك بالضبط، بما في ذلك الملفات المتداخلة، وهو يتم تطبيقه لك. - لا فكرة عن حجمها. يمنحك التسلسل البايتات، وليس الرموز المميزة، والتقسيم الأحرف بأربعة هو تخمين خاطئ في كلا الاتجاهين. تكتشف أنه لا يناسب متى النموذج يرفض ذلك.
- التحكم الانتقائي يكلف المزيد من النص. "كل شيء تحت
srcباستثناء عميل API الذي تم إنشاؤه، بالإضافة إلى ملفي التكوين في الجذر" هو علامة أخرى وأخرى regex. تقوم شجرة مربعات الاختيار بذلك من خلال أربع نقرات تقريبًا. - لا توجد خريطة في الأعلى. التسلسل الأولي عبارة عن جدار نص بدون رأس هيكل، لذلك لا يستطيع النموذج معرفة أين ينتهي ملف واحد ويبدأ الملف التالي، أو ما هو تخطيط المشروع يبدو. تعد الأقسام المحددة بالمسار وشجرة الدليل هي أكثر ما يجعل التفريغ مقروءًا.
كل هذا قابل للبناء، وقد قام ببنائه الكثير من الناس. إنها فترة ما بعد الظهر من البرمجة النصية ثم أ أداة صغيرة تحافظ عليها. التجارة هي ما إذا كنت تريد البرنامج النصي أو الإخراج.
لماذا يستخدم الناس هذا في الواقع
- قاعدة التعليمات البرمجية التي ورثتها للتو. غادر شخص ما، والآن هناك خدمة 40،000 خط لك. قم بتحويله، ولصقه، واطلب نقاط الدخول، والتجريدات الرئيسية، والثلاثة الأشياء التي من شأنها أن تفاجئ المشرف الجديد. إنه توجه أسرع من أي تسليم الوثيقة التي سوف تعطى لك.
- التوثيق من المصدر الحقيقي . تتعفن ملفات README لأنها مكتوبة مرة واحدة. إنشاء لهم من التعليمات البرمجية الموجودة الآن - نظرة عامة على الهندسة المعمارية، وملخصات الوحدة، ودقيقة قائمة بمتغيرات البيئة التي يقرأها التطبيق بالفعل.
- اختبارات للكود غير المختبر. قم بتضمين الوحدة بالإضافة إلى ملف اختبار موجود كنمط مرجع. يتطابق النموذج مع إطار العمل الخاص بك، والتسمية الخاصة بك، وأنماط التثبيت الخاصة بك، بدلاً من ذلك اختراع اتفاقية اختبار لا تستخدمها.
- الهجرة وتخطيط إعادة البناء. صنف المكونات إلى خطافات، وجافا سكريبت إلى TypeScript، ORM إلى آخر. يمنحك النموذج الذي يمكنه رؤية كل موقع اتصال خطة حقيقية بدلاً من ذلك من قائمة مرجعية عامة.
- RAG والتضمين. ملف نصي نظيف واحد يحتوي على أقسام محددة بمسار هو من السهل قطع تلك المحددات ودفعها إلى متجر المتجهات.
عند الانتهاء، انسخ الإخراج إلى الحافظة أو قم بتنزيله كملف .txt ملف — يستحق
مع الاحتفاظ بما إذا كنت ستعيد استخدام نفس السياق عبر عدة محادثات.
الكود هو نصف السياق فقط
تتضمن معظم الأسئلة الحقيقية حول المشروع أيضًا أشياء ليست ملفات مصدر. المواصفات تعيش في PDF، والمخطط في ملف JSON، والتكوين في XML، والبيانات في ملف CSV. تحويل تلك بشكل منفصل و الصقها بجانب تفريغ قاعدة التعليمات البرمجية الخاصة بك: PDF إلى Markdown للمواصفات و وثائق البائع، كلمة إلى Markdown ل مستندات المتطلبات، JSON إلى Markdown لواجهة برمجة التطبيقات الحمولات والمخططات، XML إلى Markdown للتراث التكوين، CSV إلى Markdown للعينة البيانات، و HTML إلى Markdown للصفحات المصدرة. إذا كنت تفضل عدم اختيار التنسيق، File2Txt يأخذ كل ما ترميه فيه.
الأسئلة المتداولة
كيف يمكنني تحويل مجلد إلى ملف نصي؟
اختر دليلاً أعلاه وستحصل على شجرته كقائمة مربعات اختيار. حدد الملفات التي تريدها وقم بتصدير ملف نصي واحد - بنية الدليل أولاً، ثم كل ملف تحت رأس مع مساره. مجاني، بدون تسجيل، لا شيء للتثبيت.
هل تم تحميل الكود الخاص بي إلى الخادم؟
لا، لا يوجد خادم في هذا المسار على الإطلاق. تتم قراءة المجلد في المتصفح، ويتم تجميع الإخراج في المتصفح، ولا شيء يعبر الشبكة - يمكنك فتح أدوات التطوير والمشاهدة، أو قطع الاتصال بالإنترنت بعد تحميل الصفحة وما زالت تعمل. وهذا هو الفرق بين هذا وذاك GitHub المحول، والتي يجب أن تستدعي واجهة برمجة التطبيقات (API).
هل من الآمن تحويل قاعدة بيانات الشركة عبر الإنترنت؟
هذه الصفحة هي النسخة التي تجيب على هذا السؤال بطريقة ميكانيكية بدلاً من الوعد: الملفات لا تترك الجهاز أبدًا، لذلك ليس هناك ما نثق به. ما لا يزال مهمًا هو ما تفعله بعد ذلك - يؤدي لصق المخرجات في نموذج مستضاف إلى إرساله إلى ذلك المزود، لذا تحقق من سياسة مؤسستك وقم بإزالة الأسرار قبل أن تفعل ذلك.
هل يمكنني تحويل مشروع كامل بما في ذلك المجلدات الفرعية؟
نعم، يتم السير على الشجرة بأكملها ويتم تحديد كل مستوى. يؤدي إلغاء تحديد مجلد إلى إزالة كل شيء تحته بنقرة واحدة، وهذه هي الطريقة التي تسقط بها المجلد node_modules أو .git دون الصيد من خلال الأطفال. يتم تحديث عداد الرمز المميز أثناء التنقل حتى تتمكن من رؤية التأثير على الفور.
ما هي المتصفحات التي يمكنها اختيار مجلد كامل؟
يستخدم تحديد المجلد سمة تحميل الدليل التي يدعمها كل من Chrome وEdge وFirefox وSafari منذ سنوات، لذلك يعمل أي متصفح سطح مكتب حالي. تمثل متصفحات الهاتف المحمول الفجوة - فلا يكشف iOS أو Android عن منتقي المجلدات. على الهاتف، قم بضغط الدليل واستخدامه الرمز البريدي إلى النص بدلا من ذلك.
ما هو الحد الأقصى لحجم الملف؟
لا يوجد تحميل، لذا لا يوجد حد للتحميل — القيد هو ذاكرة جهازك وحجم النص الذي يمكنك لصقه بشكل مفيد في أي مكان بعد ذلك. من الناحية العملية، يصبح عداد الرمز المميز هو الحد الحقيقي قبل فترة طويلة من قيام المتصفح بذلك. يغطي المستودع الذي يقل حجم مصدره المفيد عن ميغابايت معظم المشاريع بمجرد إلغاء تحديد التبعيات.
بقية مجموعة الأدوات
إذا كان الرمز مستضافًا وليس محليًا، فسيتم GitHub لتحويل النص و GitLab لتحويل النص افعل نفس الشيء العمل ضد مستودع بعيد، بما في ذلك المستودعات الخاصة التي تحتوي على رمز مميز. للتوثيق ذلك فقط موجود على الويب، Web2Txt الخدوش أ عنوان URL إلى Markdown النظيف - قم بإقران مرجع API المسروق مع مصدرك المحلي ومساعد الترميز يمكن أن يرى كلا الجانبين في وقت واحد.
هناك المزيد مكتوبًا على المدونة إذا كنت تريد المضي قدمًا: تحويل قاعدة التعليمات البرمجية إلى ملف جاهز LLM، تجول في مجلد لتحويل النص، دليل ل تغذية مستودع كامل في الذكاء الاصطناعي، والعامة دليل تحويل الملف إلى نص لكل ما ليس رمزًا.
تم إنشاء Repo2Txt وصيانته بواسطة v12hero، مطور مستقل يبني تطبيقات أصلية وتطبيقات ويب تهتم بالخصوصية أولاً.