“https://github.com/super-linter/super-linter”>”https://github.com/dkamm/pr-quiz/actions/workflows/linter.yml/badge.svg” alt=”GitHub Super-Linter”>“https://github.com/dkamm/pr-quiz/actions/workflows/ci.yml/badge.svg” alt=”CI”>“https://github.com/dkamm/pr-quiz/actions/workflows/check-dist.yml/badge.svg” alt=”Check dist/”>“https://github.com/dkamm/pr-quiz/actions/workflows/codeql-analysis.yml/badge.svg” alt=”CodeQL”>
بدأ وكلاء الذكاء الاصطناعى في كتابة المزيد من التعليمات البرمجية. كيف نتأكد من أننا نفهم ما يكتبون؟
Quiz PR هو إجراء github يستخدم الذكاء الاصطناعي لإنشاء اختبار بناءً على طلب سحب. يمكن أن يساعدك ، المراجع البشري ، اختبار فهمك لرمز وكيل الذكاء الاصطناعي. (وحظرك من نشر رمز لا تفهمه!)
“_blank” rel=”noopener noreferrer” HREF=”http://github.com/dkamm/pr-quiz/blob/main/assets/demo.gif”>”http://github.com/dkamm/pr-quiz/raw/main/assets/demo.gif” alt=”Demo” العرض=”100%” صورة-صورة>
- تأكد من أن لديك مفتاح Openai API ورمز مصادقة Ngrok (أعمال الطبقة المجانية).*
- أضف مفتاح API Openai و Ngrok Auth Token كأسرار عمل إلى مستودعك (
settings -> secrets -> actionsفي واجهة المستخدم) - أضف ما يلي
quiz.ymlلك.github/workflowsدليل
# quiz.ymlname: PR Quizon: pull_request_review: types: [submitted]permissions: contents: read pull-requests: readjobs: quiz: name: PR Quiz runs-on: ubuntu-latest environment: your-environment # TODO: change this to your actual environment # Only trigger on approvals to save tokens if: github.event.review.state=='approved' steps: - name: Checkout id: checkout uses: actions/checkout@v4 - name: Serve Quiz id: serve-quiz uses: dkamm/pr-quiz@v0.1.0 with: github-token: ${{ secrets.GITHUB_TOKEN }} openai-api-key: ${{ secrets.OPENAI_API_KEY }} ngrok-authtoken: ${{ secrets.NGROK_AUTHTOKEN }}
*يقوم إجراء اختبار العلاقات العامة بإنشاء خادم ويب مؤقت داخل عداء إجراءات GitHub ويستخدم NGROK لإنشاء نفق عام له
| اسم | وصف | القيمة الافتراضية | مطلوب |
|---|---|---|---|
| github-token | رمز جيثب للوصول إلى واجهة برمجة التطبيقات | – | نعم |
| ngrok-authtoken | ngrok authtoken لاستخدامها في الخادم الذي يستضيف الاختبار. | – | نعم |
| Openai-api-key | مفتاح Openai API للوصول إلى API | – | نعم |
| نموذج | النموذج لاستخدامه لإنشاء الاختبار. يجب أن يكون نموذجًا يدعم المخرجات المهيكلة. | o4-mini |
لا |
| خطوط العتبة المتغيرة | تم تغيير الحد الأدنى لعدد الخطوط المطلوبة لإنشاء اختبار. هذا لمنع إنشاء الاختبارات لطلبات السحب الصغيرة. | 100 |
لا |
| حدود محددة الوقت | المهلة الزمنية لإكمال الاختبار في دقائق. هذا يمنع الإجراء من الركض إلى أجل غير مسمى. | 10 |
لا |
| أقصى الحضور | الحد الأقصى لعدد محاولات تمرير الاختبار. قيمة 0 تعني محاولات غير محدودة. | 3 |
لا |
| استبعاد النباتات | قائمة أنماط الملفات التي يجب استبعادها من الاختبار كسلسلة JSON-Uption. | '[["**/*-lock.json"و "**/*-lock.yaml"و "**/*.lock"و "**/*.map"و "**/*.pb.*"و "**/*_pb2.py"و "**/*.generated.*"و "**/*.auto.*"] |
لا |
| نظام التشغيل | تجاوز اختياري لمطالبة النظام. تأكد من إرجاع أسئلة الاختيار من متعدد. | يرى”http://github.com/dkamm/pr-quiz/blob/main/src/quiz/DefaultSystemPrompt.js”> هنا لمطالبة النظام الافتراضي | لا |
نظرًا لأن هذا الإجراء يدير خادم ويب مؤقتًا داخل عداء إجراءات GitHub ، فإن الكود الخاص بك لم يتم إرساله إلى أي طرف ثالث غير مزود النموذج (Openai). يمكن تعديل هذا الإجراء بسهولة للعمل مع النماذج المستضافة ذاتيًا أيضًا.