Laragenie هو chatbot منظمة العفو الدولية التي تعمل على سطر الأوامر من تطبيق Laravel الخاص بك. سيكون قادرًا على قراءة وفهم أي من قواعد الكود بعد بعض الخطوات البسيطة:
الأمر بسيط مثل ذلك! قم بتسريع سير العمل على الفور والتعاون بسلاسة مع "زميل" الأسرع والأكثر دراية التي حصلت عليها على الإطلاق.
هذا هو روبوت CLI مفيد بشكل خاص يمكن استخدامه ل:
أنت لا تقتصر على فهرسة الملفات القائمة في مشروع Laravel الخاص بك. يمكنك استخدام هذا في Monorepo's ، أو في الواقع أي ريبو بأي لغة. يمكنك بالطبع استخدام هذه الأداة لفهرسة الملفات غير المتعلقة بالرمز أيضًا.
كل ما عليك فعله هو تشغيل أداة CLI هذه من دليل Laravel. بسيط ، أليس كذلك؟! ؟

ملحوظة
إذا كنت تقوم بالترقية من إصدار Laragenie ^1.0.63 > 1.1 ، فهناك تغيير في متغيرات بيئة Pinecone. يرجى الاطلاع على Openai و Pinecone.
بالنسبة للإصدارات المحددة التي تتطابق مع إصدارات PHP و Laravel و Laragenie ، يرجى الاطلاع على الجدول أدناه:
| PHP | نسخة لارافيل | نسخة لاراجيني |
|---|---|---|
| ^8.1 | ^10.0 | > = 1.0 <1.2 |
| ^8.2 | ^10.0 ، ^11.0 | ^1.2.0 |
تستخدم هذه الحزمة مطالبات Laravel التي تدعم MacOS و Linux و Windows مع WSL. نظرًا لقيود إصدار Windows من PHP ، لا يمكن حاليًا استخدام مطالبات Laravel على Windows خارج WSL.
لهذا السبب ، يطالب Laravel بدعم التراجع إلى تطبيق بديل مثل مسألة سؤال Symfony Console.
يمكنك تثبيت الحزمة عبر الملحن:
composer require joshembling/laragenieيمكنك نشر وتشغيل الترحيل مع:
php artisan vendor:publish --tag= " laragenie-migrations "
php artisan migrateإذا كنت لا ترغب في نشر عمليات الترحيل ، فيجب عليك تبديل بيانات اعتماد قاعدة البيانات في تكوين Laragenie الخاص بك إلى False. (انظر تفاصيل ملف التكوين أدناه).
يمكنك نشر ملف التكوين بـ:
php artisan vendor:publish --tag= " laragenie-config "هذه هي محتويات ملف التكوين المنشور:
return [
' bot ' => [
' name ' => ' Laragenie ' , // The name of your chatbot
' welcome ' => ' Hello, I am Laragenie, how may I assist you today? ' , // Your welcome message
' instructions ' => ' Write in markdown format. Try to only use factual data that can be pulled from indexed chunks. ' , // The chatbot instructions
],
' chunks ' => [
' size ' => 1000 , // Maximum number of characters to separate chunks
],
' database ' => [
' fetch ' => true , // Fetch saved answers from previous questions
' save ' => true , // Save answers to the database
],
' extensions ' => [ // The file types you want to index
' php ' ,
' blade.php ' ,
' js ' ,
],
' indexes ' => [
' directories ' => [], // The directores you want to index e.g. ['app/Models', 'app/Http/Controllers', '../frontend/src']
' files ' => [], // The files you want to index e.g. ['tests/Feature/MyTest.php']
' removal ' => [
' strict ' => true , // User prompt on deletion requests of indexes
],
],
' openai ' => [
' embedding ' => [
' model ' => ' text-embedding-3-small ' , // Text embedding model
' max_tokens ' => 5 , // Maximum tokens to use when embedding
],
' chat ' => [
' model ' => ' gpt-4-turbo-preview ' , // Your OpenAI GPT model
' temperature ' => 0.1 , // Set temperature between 0 and 1 (lower values will have less irrelevance)
],
],
' pinecone ' => [
' topK ' => 2 , // Pinecone indexes to fetch
],
];تستخدم هذه الحزمة Openai لمعالجة وإنشاء الردود و pinecone لفهرسة بياناتك.
ستحتاج إلى إنشاء حساب Openai مع ائتمانات ، وإنشاء مفتاح API وإضافته إلى ملف .env الخاص بك:
OPENAI_API_KEY=your-open-ai-key
مهم
إذا كنت تستخدم إصدار Laragenie قبل 1.1 ولا ترغب في الترقية ، فانتقل مباشرة إلى Pinecone Legacy.
ستحتاج إلى إنشاء حساب pinecone. هناك نوعان مختلفان من الحساب يمكنك إعداده:
اعتبارًا من أوائل عام 2024 ، يوصي Pinecone بالبدء بحساب بدون خادم. يمكنك اختياريًا إعداد حساب مع طريقة دفع متصلة للحصول على 100 دولار من الاعتمادات المجانية ، ومع ذلك ، يتيح حساب مجاني ما يصل إلى 100000 فهرسة - على الأرجح أكثر من كافية لأي تطبيق صغير الحجم.
قم بإنشاء فهرس بأبعاد 1536 والمقياس كـ "جيب التمام". ثم قم بإنشاء مفتاح API وأضف هذه التفاصيل إلى ملف .env الخاص بك:
PINECONE_API_KEY=an-example-pinecone-api-key
PINECONE_INDEX_HOST='https://an-example-url.aaa.gcp-starter.pinecone.io'
يمكن رؤية مضيفك في مربع المعلومات على صفحة الفهرس الخاصة بك ، إلى جانب المقياس والأبعاد ونوع الجراب والسحابة والمنطقة والبيئة.
نصيحة
إذا كنت تقوم بالترقية إلى Laragenie ^1.1 ، فيمكنك إزالة متغيرات البيئة القديمة بأمان: PINECONE_ENVIRONMENT و PINECONE_INDEX .
هام: إذا كنت تستخدم Laragenie 1.0.63 أو مسبقًا ، فيجب عليك استخدام حساب Pinecone عادي وليس حسابًا بدون خادم. عندما يتم التلميح لك لتحديد خيار على إنشاء الحساب ، تأكد من تحديد "متابعة مع الفهرس المستند إلى POD".
قم بإنشاء بيئة بأبعاد 1536 وتسميتها ، وقم بإنشاء مفتاح API وإضافة هذه التفاصيل إلى ملف .env الخاص بك:
PINECONE_API_KEY=your-pinecone-api-key
PINECONE_ENVIRONMENT=gcp-starter
PINECONE_INDEX=your-index
بمجرد أن يتم إعدادها ، ستتمكن من تشغيل الأمر التالي من دليل الجذر الخاص بك:
php artisan laragenieستحصل على 4 خيارات:
استخدم مفاتيح الأسهم للتبديل من خلال الخيارات وأدخلها لتحديد الأمر.

ملاحظة: لا يمكنك تشغيل هذا الإجراء إلا بمجرد أن يكون لديك ملفات فهرسة في قاعدة بيانات Veactor Pinecone الخاصة بك (انتقل إلى قسم "ملفات الفهرس" إذا كنت ترغب في معرفة كيفية البدء في الفهرسة).
عندما تحتوي قاعدة بيانات المتجه الخاصة بك على فهارس ، فستتمكن من طرح أي أسئلة تتعلق بقاعدة الكود الخاصة بك.
يمكن إنشاء الإجابات بتنسيق Markdown مع أمثلة رمز ، أو أي تنسيق من اختيارك. استخدم config bot.instructions لكتابة تعليمات الذكاء الاصطناعى على النحو المفصل كما تحتاج.
تحت كل استجابة ، سترى التكلفة التي تم إنشاؤها (بالدولار الأمريكي) ، والتي ستساعد على التتبع عن كثب المصاريف. تتم إضافة تكلفة الاستجابة إلى قاعدة البيانات الخاصة بك ، إذا تم تمكين الترحيل.
يمكن أن تختلف التكاليف ، لكن الاستجابات الصغيرة ستكون أقل من 0.01 دولار. يمكن أن تتراوح استجابات أكبر بكثير بين 0.02-0.05 دولار.
كما ذكرنا سابقًا ، عندما تمكّن عمليات الترحيل ، سيتم حفظ أسئلتك في قاعدة البيانات الخاصة بك.
ومع ذلك ، قد ترغب في فرض استخدام الذكاء الاصطناعي (منع الجلب من قاعدة البيانات) إذا كنت غير راض عن الإجابة الأولية. سيؤدي هذا إلى الكتابة فوق الإجابة المحفوظة بالفعل على قاعدة البيانات.
لفرض استجابة منظمة العفو الدولية ، ستحتاج إلى إنهاء جميع الأسئلة باستخدام علم --ai سبيل المثال
Tell me how users are saved to the database --ai .
سيضمن ذلك أن نموذج الذكاء الاصطناعي سيعيد تقييم طلبك ، ويخرج إجابة أخرى (قد يكون هذا هو نفس الإجابة اعتمادًا على نموذج GPT الذي تستخدمه).

تتمثل أسرع طريقة لفهرسة الملفات في تمرير قيم فردية إلى صفيف directories أو files في تكوين Laragenie. عند تشغيل الأمر "ملفات الفهرس" ، سيكون لديك دائمًا خيار Reindex هذه الملفات. سيساعد هذا في الحفاظ على تحديث روبوت Laragenie الخاص بك.
حدد "نعم" ، عندما تتم مطالبتك بها Do you want to index your directories and files saved in your config?
' indexes ' => [
' directories ' => [ ' app/Models ' , ' app/Http/Controllers ' ],
' files ' => [ ' tests/Feature/MyTest.php ' ],
' removal ' => [
' strict ' => true ,
],
],إذا قمت بتحديد "لا" ، يمكنك أيضًا فهرسة الملفات بالطرق التالية:
app/Models/User.phpAppapp/Models لفهرسة جميع النماذج الخاصة بكapp/Models, tests/Feature, app/Http/Controllers/Controller.phpapp/Models/*.phplaragenie الخاص بك. يمكنك استخدام Laragenie بأي طريقة ترغب فيها ؛ أنت لا تقتصر على فهرسة الملفات القائمة على لارافيل فقط.
على سبيل المثال ، قد يعيش مشروع Laravel الخاص بك في Monorepo مع اثنين من إدخالات الجذر مثل frontend backend . في هذه الحالة ، يمكنك رفع مستوى واحد لفهرسة المزيد من الدلائل والملفات على سبيل المثال ../frontend/src/ أو ../frontend/components/Component.js .
يمكنك إضافة هذه إلى directories files الخاصة بك في تكوين Laragenie:
' indexes ' => [
' directories ' => [ ' app/Models ' , ' app/Http/Controllers ' , ' ../frontend/src/ ' ],
' files ' => [ ' tests/Feature/MyTest.php ' , ' ../frontend/components/Component.js ' ],
' removal ' => [
' strict ' => true ,
],
],باستخدام هذه الطريقة نفسها ، يمكنك من الناحية الفنية فهرسة أي ملفات أو أدلة يمكنك الوصول إليها على الخادم أو الجهاز المحلي.
تأكد من أن ملحقاتك في تكوين Laragenie الخاص بك تتطابق مع جميع أنواع الملفات التي تريد فهرستها.
' extensions ' => [
' php ' , ' blade.php ' , ' js ' , ' jsx ' , ' ts ' , ' tsx ' , // etc...
],ملاحظة: إذا تغيرت الدلائل أو المسارات أو أسماء الملفات ، فلن تتمكن Laragenie من العثور على الفهرس إذا قررت تحديثه/إزالته لاحقًا (ما لم تقطع قاعدة بيانات المتجه بالكامل ، أو انتقل إلى Pinecone وحذفها يدويًا).

يمكنك إزالة الملفات المفهرسة باستخدام نفس الأساليب المذكورة أعلاه ، باستثناء استخدام صفيف directories أو files في تكوين Laragenie - وهذا حاليًا لأغراض الفهرسة فقط.
إذا كنت ترغب في إزالة جميع الملفات ، فيمكنك القيام بذلك عن طريق تحديد Remove all chunked data . كن حذرًا من أن هذا سيؤدي إلى اقتطاع قاعدة بيانات المتجه بالكامل ولا يمكن عكسها.

لإزالة قائمة الملفات/الدلائل مفصولة فاصلة ، حدد Remove data associated with a directory or specific file كخيار.
الإزالة الصارمة ، أي رسائل تحذير قبل إزالة الملفات ، يمكن تشغيل/إيقاف تشغيلها عن طريق تغيير السمة "الصارمة" إلى خطأ في التكوين الخاص بك.
' indexes ' => [
' removal ' => [
' strict ' => true ,
],
],يمكنك إيقاف Laragenie باستخدام الطرق التالية:
ctrl + c (Linux/Mac)No thanks, goodbye في قائمة المستخدم بعد تشغيل موجه واحد على الأقل.استمتع باستخدام Laragenie! ؟
.env المطلوبة بشكل صحيح ، ولكن احصل على خطأ مثل "لم تقدم مفتاح API" ، فقد تحتاج إلى مسح ذاكرة التخزين المؤقت والتكوين: php artisan config:clear
php artisan cache:clearيرجى الاطلاع على Changelog لمزيد من المعلومات حول ما تغير مؤخرًا.
يرجى الاطلاع على المساهمة للحصول على التفاصيل.
يرجى مراجعة سياسة الأمان الخاصة بنا حول كيفية الإبلاغ عن نقاط الضعف الأمنية.
ترخيص معهد ماساتشوستس للتكنولوجيا (MIT). يرجى الاطلاع على ملف الترخيص لمزيد من المعلومات.