تتيح لك هذه الأداة اختبار دقة أجهزة كشف الذكاء الاصطناعي المختلفة. إنها أداة سطر أوامر مصممة لتسهيل اختبار عدد كبير من أجهزة الكشف في نفس الوقت باستخدام نفس البيانات.
تأخذ الأداة مجموعة من الملفات النصية وتقوم بتشغيلها من خلال عدد من أجهزة كشف الذكاء الاصطناعي. ثم يقوم بإخراج النتائج إلى ملف CSV. تقوم الأداة أيضًا بإنشاء مصفوفة ارتباك لإظهار دقة أجهزة الكشف. ولكن ما هي مصفوفة الارتباك؟ مصفوفة الارتباك هي جدول يستخدم لوصف أداء نموذج التصنيف. ويبين عدد التنبؤات الصحيحة وغير الصحيحة التي قدمها نموذج التصنيف مقارنة بالنتائج الفعلية. هذا الجدول مفيد للغاية لمقارنة أداء أجهزة الكشف المختلفة لأنه سيظهر الإيجابيات الحقيقية والإيجابيات الكاذبة والسلبيات الحقيقية والسلبيات الكاذبة لكل كاشف. يتيح لك هذا معرفة أجهزة الكشف الأكثر دقة.
بايثون 3.9 أو أعلى
مفاتيح API لأجهزة الكشف التي تريد اختبارها
انسخ هذا المستودع أو قم بتنزيل الملف المضغوط
قم بتثبيت المتطلبات باستخدام pip install -r requirements.txt
قم بتدوين مفاتيح API الخاصة بك لأجهزة الكشف التي تريد اختبارها
قم بتشغيل الأداة باستخدام python main.py
اتبع الإرشادات الموجودة في الأداة لإضافة مفاتيح API الخاصة بك عند المطالبة بذلك
ستقوم الأداة بتشغيل أجهزة الكشف وإخراج النتائج إلى ملف CSV
نموذج سير العمل:
بيثون main.py اكتب Y/N لتحديد Originality.ai API: y أدخل مفتاح Originality.ai API الخاص بك: YOUR_API_KEY أدخل مسار الدليل لملفات AI النصية: data/ai/ أدخل مسار الدليل للملفات النصية البشرية: data/human/ أدخل مسار ملف الإدخال CSV: data/input.csv أدخل اسم ملف CSV الناتج: Output.csv ستقوم الأداة بمعالجة البيانات. قد يستغرق هذا بعض الوقت. هل ترغب في إنشاء مصفوفة ارتباك؟ (ص / ن): ذ اضغط على دخول للخروج...
ستقوم الأداة فقط بتشغيل أجهزة الكشف التي لديك مفاتيح API لها
إذا لم تتم مطالبتك بإنشاء مصفوفة ارتباك عند انتهاء الأداة أو فشل الإنشاء، فقم بتشغيل python matrix.py
لإنشاء مصفوفة الارتباك
تتوقع الأداة أن تكون البيانات موجودة في ملفات .txt في مجلد يتم تمريره إلى الأداة عند تشغيلها. أو إذا كنت تحاول معالجة ملف CSV، فمن المتوقع أن تكون الأعمدة بالترتيب التالي:
text,dataset,label
sample text,gpt-3,ai
يمكن أن يكون عمود مجموعة البيانات ببساطة "ai" أو "إنسانيًا" ويستخدم هذا العمود لتسمية الصفوف الموجودة في الإخراج
لإضافة كاشف عليك القيام بما يلي:
ابحث عن وثائق واجهة برمجة التطبيقات الخاصة بالكاشفات
العثور على نقطة النهاية للكاشف
ابحث عن المعلمات المطلوبة لنقطة النهاية
أضف الكاشف إلى ملف detectors.py
بالتنسيق التالي:
"post_parameters": {
# The endpoint URL for the API.
"endpoint": "YOUR_API_ENDPOINT_URL",
# The body of the POST request. This usually contains the text to be analyzed.
# The actual contents will depend on what the API expects.
# Add or remove parameters as needed depending on the API requirements.
"body": {"PARAMETER_NAME": "PARAMETER_VALUE"},
# The headers for the POST request. This usually includes the API key and content type.
# Add or remove headers as needed depending on the API requirements.
"headers": {"HEADER_NAME": "HEADER_VALUE"},
# Information about where the API key is included in the request.
"API_KEY_POINTER": {
# The location that the API key will end up (usually 'headers' or 'body').
"location": "headers_or_body",
# The actual API key. This is usually read from an environment variable or input by the user.
"value": "YOUR_API_KEY",
# The name of the key or field where the API key is included. e.g 'x-api-key' or 'api_key'.
"key_name": "API_KEY_HEADER_OR_PARAMETER_NAME",
},
# The key in the body of the POST request where the text to be analyzed is included. e.g 'text' or 'content'.
"text_key": "KEY_NAME_FOR_TEXT",
},
"response": {
# The expected response from the API. The actual structure will depend on what the API returns.
# This should include mappings for how to interpret the API's response.
# Add or remove mappings as needed.
# e.g if the API returns a JSON object with a key called 'result' and the value of 'result' is a list of objects
# with a key called 'score' then the mapping would be:
# "result": {
# "score": "score"
# }
"200": {
"result": {
"MAPPING_FOR_DESIRED_OUTPUT": "RESPONSE_KEY_PATH",
}
}
},
}
Originality.ai DOCS - لتحديد إصدار معين، يرجى التحقق من المستندات وإضافتها إلى المكان المناسب في ملف api_endpoints.py
مستندات Sapling.ai
GPTZero DOCS - لتحديد إصدار معين، يرجى التحقق من المستندات وإضافتها إلى المكان المناسب في ملف api_endpoints.py
مستندات Writer.com
DOCS Copyleaks - برجاء اتباع تعليمات Copyleaks لإعداد مفتاح API لأنه أكثر تعقيدًا بعض الشيء من أجهزة الكشف الأخرى
نحن نرحب بالمساهمات في هذا المشروع! فيما يلي بعض الطرق التي يمكنك من خلالها المساعدة:
إذا وجدت خطأ، يرجى الإبلاغ عنه عن طريق فتح مشكلة GitHub. تأكد من تضمين:
خطوات إعادة إنتاج الخطأ
السلوك المتوقع
السلوك الفعلي
ستساعدنا هذه المعلومات في تشخيص الخطأ وإصلاحه بشكل أسرع.
نحن نبحث دائمًا عن طرق لتحسين الأداة! إذا كانت لديك فكرة للتحسين، فافتح مشكلة GitHub وقم بوصفها:
السلوك الحالي
التغيير المقترح ولماذا سيكون مفيدًا
مثال لحالة الاستخدام
إذا كنت تريد المساهمة بالكود مباشرة:
شوكة الريبو
استنساخ شوكة الخاص بك
إجراء تغييرات على فرع
اكتب رسالة التزام واضحة وموجزة
افتح طلب سحب مقابل main
تأكد من التزام العلاقات العامة الخاصة بك بما يلي:
الكود نظيف ومنسق بشكل جيد
يتم تحديث الوثائق إذا لزم الأمر
رسائل الالتزام واضحة ومفصلة
نريد أن نسمع عن تجربتك في استخدام الأداة - الجيدة منها والسيئة. واسمحوا لنا أن نعرف ما نجح وما لم ينجح. شارك قصصًا حول كيفية مساعدة هذه الأداة في بحثك. كلما سمعنا منك أكثر، كلما تمكنا من توفير الأداة للجميع بشكل أفضل!
شكرا للمساهمة!
رخصة معهد ماساتشوستس للتكنولوجيا
حقوق الطبع والنشر (ج) [2023] [Originality.AI]
يُمنح الإذن مجانًا لأي شخص يحصل على نسخة من هذا البرنامج وملفات الوثائق المرتبطة به ("البرنامج")، للتعامل في البرنامج دون قيود، بما في ذلك، على سبيل المثال لا الحصر، حقوق الاستخدام والنسخ والتعديل والتوزيع. وترخيصها من الباطن و/أو بيع نسخ من البرنامج، والسماح للأشخاص الذين تم توفير البرنامج لهم بالقيام بذلك، وفقًا للشروط التالية:
يجب تضمين إشعار حقوق الطبع والنشر أعلاه وإشعار الإذن هذا في جميع النسخ أو الأجزاء الكبيرة من البرنامج.
يتم توفير البرنامج "كما هو"، دون أي ضمان من أي نوع، صريحًا أو ضمنيًا، بما في ذلك، على سبيل المثال لا الحصر، ضمانات القابلية للتسويق والملاءمة لغرض معين وعدم الانتهاك. لا يتحمل المؤلفون أو أصحاب حقوق الطبع والنشر بأي حال من الأحوال المسؤولية عن أي مطالبة أو أضرار أو مسؤولية أخرى، سواء في إجراء العقد أو الضرر أو غير ذلك، الناشئة عن أو خارج أو فيما يتعلق بالبرنامج أو الاستخدام أو المعاملات الأخرى في برمجة.