code2prompt
عبارة عن أداة سطر أوامر (CLI) تعمل على تحويل قاعدة التعليمات البرمجية الخاصة بك إلى موجه LLM واحد مع شجرة مصدر ونموذج سريع وعد الرموز المميزة.
يمكنك تشغيل هذه الأداة على الدليل بأكمله وستقوم بإنشاء مطالبة Markdown جيدة التنسيق توضح تفاصيل بنية الشجرة المصدر وكل التعليمات البرمجية. يمكنك بعد ذلك تحميل هذا المستند إلى نماذج GPT أو Claude ذات النوافذ ذات السياق الأعلى ومطالبته بما يلي:
.gitignore
.يمكنك تخصيص قالب المطالبة لتحقيق أي من حالات الاستخدام المطلوبة. إنه يجتاز بشكل أساسي قاعدة التعليمات البرمجية وينشئ مطالبة مع جميع الملفات المصدر مجتمعة. باختصار، يقوم بأتمتة نسخ ولصق ملفات مصدر متعددة في الموجه الخاص بك وتنسيقها مع السماح لك بمعرفة عدد الرموز المميزة التي يستهلكها الكود الخاص بك.
قم بتنزيل أحدث إصدار ثنائي لنظام التشغيل الخاص بك من الإصدارات.
يتطلب:
git clone https://github.com/mufeedvh/code2prompt.git
cd code2prompt/
cargo build --release
التثبيت من سجل crates.io
.
cargo install code2prompt
بالنسبة للإصدارات غير المنشورة:
cargo install --git https://github.com/mufeedvh/code2prompt
يتوفر code2prompt
في AUR
. قم بتثبيته عبر أي مساعدين AUR.
paru/yay -S code2prompt
إذا كنت تستخدم nix، فيمكنك استخدام nix-env
أو profile
للتثبيت.
# without flakes:
nix-env -iA nixpkgs.code2prompt
# with flakes:
nix profile install nixpkgs#code2prompt
قم بإنشاء مطالبة من دليل قاعدة التعليمات البرمجية:
code2prompt path/to/codebase
استخدم ملف قالب المقاود المخصص:
code2prompt path/to/codebase -t path/to/template.hbs
تصفية الملفات باستخدام أنماط الكرة الأرضية:
code2prompt path/to/codebase --include= " *.rs,*.toml "
استبعاد الملفات باستخدام أنماط الكرة الأرضية:
code2prompt path/to/codebase --exclude= " *.txt,*.md "
استبعاد الملفات/المجلدات من الشجرة المصدر بناءً على أنماط الاستبعاد:
code2prompt path/to/codebase --exclude= " *.npy,*.wav " --exclude-from-tree
عرض عدد الرموز المميزة للموجه الذي تم إنشاؤه:
code2prompt path/to/codebase --tokens
حدد رمزًا مميزًا لعدد الرموز المميزة:
code2prompt path/to/codebase --tokens --encoding=p50k
الرموز المدعومة: cl100k
، p50k
، p50k_edit
، r50k_bas
.
ملحوظة
راجع الرموز المميزة لمزيد من التفاصيل.
احفظ المطالبة التي تم إنشاؤها في ملف الإخراج:
code2prompt path/to/codebase --output=output.txt
طباعة الإخراج كـ JSON:
code2prompt path/to/codebase --json
سيكون لمخرجات JSON البنية التالية:
{
"prompt" : " <Generated Prompt> " ,
"directory_name" : " codebase " ,
"token_count" : 1234 ,
"model_info" : " ChatGPT models, text-embedding-ada-002 " ,
"files" : []
}
قم بإنشاء رسالة التزام Git (للملفات المرحلية):
code2prompt path/to/codebase --diff -t templates/write-git-commit.hbs
إنشاء طلب سحب مع مقارنة الفروع (للملفات المرحلية):
code2prompt path/to/codebase --git-diff-branch ' main, development ' --git-log-branch ' main, development ' -t templates/write-github-pull-request.hbs
إضافة أرقام الأسطر إلى كتل التعليمات البرمجية المصدر:
code2prompt path/to/codebase --line-number
تعطيل كود الالتفاف داخل كتل كود تخفيض السعر:
code2prompt path/to/codebase --no-codeblock
لقد كتبت هذا في البداية للاستخدام الشخصي للاستفادة من نافذة السياق التي يبلغ حجمها 200 كيلو بايت الخاصة بـ Claude 3.0 وقد ثبت أنها مفيدة جدًا لذلك قررت أن أجعلها مفتوحة المصدر!
يأتي code2prompt
مع مجموعة من القوالب المضمنة لحالات الاستخدام الشائعة. يمكنك العثور عليها في دليل templates
.
document-the-code.hbs
استخدم هذا القالب لإنشاء مطالبات لتوثيق التعليمات البرمجية. سيضيف تعليقات التوثيق إلى جميع الوظائف والأساليب والفئات والوحدات النمطية العامة في قاعدة التعليمات البرمجية.
find-security-vulnerabilities.hbs
استخدم هذا القالب لإنشاء مطالبات للعثور على ثغرات أمنية محتملة في قاعدة التعليمات البرمجية. وسوف يبحث عن المشكلات الأمنية الشائعة ويقدم توصيات حول كيفية إصلاحها أو التخفيف منها.
clean-up-code.hbs
استخدم هذا القالب لإنشاء مطالبات لتنظيف جودة التعليمات البرمجية وتحسينها. وسوف يبحث عن فرص لتحسين سهولة القراءة، والالتزام بأفضل الممارسات، والكفاءة، ومعالجة الأخطاء، والمزيد.
fix-bugs.hbs
استخدم هذا القالب لإنشاء مطالبات لإصلاح الأخطاء في قاعدة التعليمات البرمجية. سيساعد في تشخيص المشكلات وتقديم اقتراحات الإصلاح وتحديث الكود بالإصلاحات المقترحة.
write-github-pull-request.hbs
استخدم هذا القالب لإنشاء وصف طلب سحب GitHub في تخفيض السعر من خلال مقارنة git diff وسجل git لفرعين.
write-github-readme.hbs
استخدم هذا القالب لإنشاء ملف README عالي الجودة للمشروع، ومناسب للاستضافة على GitHub. سيقوم بتحليل قاعدة التعليمات البرمجية لفهم غرضها ووظائفها، وإنشاء محتوى README بتنسيق Markdown.
write-git-commit.hbs
استخدم هذا القالب لإنشاء التزامات git من الملفات المرحلية الموجودة في دليل git الخاص بك. سيقوم بتحليل قاعدة التعليمات البرمجية لفهم غرضها ووظائفها، وإنشاء محتوى رسالة التزام git بتنسيق Markdown.
improve-performance.hbs
استخدم هذا القالب لإنشاء مطالبات لتحسين أداء قاعدة التعليمات البرمجية. سيبحث عن فرص التحسين ويقدم اقتراحات محددة ويحدث الكود بالتغييرات.
يمكنك استخدام هذه القوالب عن طريق تمرير العلامة -t
متبوعة بالمسار إلى ملف القالب. على سبيل المثال:
code2prompt path/to/codebase -t templates/document-the-code.hbs
يدعم code2prompt
استخدام المتغيرات المحددة من قبل المستخدم في قوالب المقاود. سيتم التعامل مع أي متغيرات في القالب لا تشكل جزءًا من السياق الافتراضي ( absolute_code_path
، source_tree
، files
) كمتغيرات محددة من قبل المستخدم.
أثناء إنشاء الموجه، سيطالب code2prompt
المستخدم بإدخال قيم لهذه المتغيرات المحددة بواسطة المستخدم. يسمح هذا بمزيد من التخصيص للمطالبات التي تم إنشاؤها بناءً على مدخلات المستخدم.
على سبيل المثال، إذا كان القالب الخاص بك يتضمن {{challenge_name}}
و {{challenge_description}}
، فستتم مطالبتك بإدخال قيم لهذه المتغيرات عند تشغيل code2prompt
.
تتيح هذه الميزة إنشاء قوالب قابلة لإعادة الاستخدام يمكن تكييفها مع سيناريوهات مختلفة بناءً على المعلومات المقدمة من المستخدم.
يتم تنفيذ الترميز باستخدام tiktoken-rs
. يدعم tiktoken
هذه الترميزات التي تستخدمها نماذج OpenAI:
اسم الترميز | نماذج OpenAI |
---|---|
cl100k_base | نماذج ChatGPT، text-embedding-ada-002 |
p50k_base | نماذج الكود، text-davinci-002 ، text-davinci-003 |
p50k_edit | يُستخدم لتعديل النماذج مثل text-davinci-edit-001 و code-davinci-edit-001 |
r50k_base (أو gpt2 ) | نماذج GPT-3 مثل davinci |
لمزيد من السياق حول الرموز المميزة المختلفة، راجع كتاب الطبخ OpenAI
يُسهل code2prompt
إنشاء مطالبات لـ LLMs من قاعدة التعليمات البرمجية الخاصة بك. فهو يجتاز الدليل، ويبني بنية شجرة، ويجمع معلومات حول كل ملف. يمكنك تخصيص إنشاء المطالبة باستخدام قوالب المقاود. يتم نسخ المطالبة التي تم إنشاؤها تلقائيًا إلى الحافظة الخاصة بك ويمكن أيضًا حفظها في ملف إخراج. يساعد code2prompt
على تبسيط عملية إنشاء مطالبات LLM لتحليل التعليمات البرمجية وإنشاءها ومهام أخرى.
طرق المساهمة:
مرخص بموجب ترخيص MIT، راجع الترخيص لمزيد من المعلومات.
إذا أعجبك المشروع ووجدته مفيدًا، من فضلك أعطه وفكر في دعم المؤلفين!