Alat ini memungkinkan Anda menguji keakuratan berbagai detektor AI. Ini adalah alat baris perintah yang dirancang untuk memudahkan pengujian sejumlah besar detektor secara bersamaan menggunakan data yang sama.
Alat ini mengambil sekumpulan file teks dan menjalankannya melalui sejumlah detektor AI. Kemudian menampilkan hasilnya ke file CSV. Alat ini juga menghasilkan matriks konfusi untuk menunjukkan keakuratan detektor. Tapi apa itu matriks konfusi? Matriks konfusi adalah tabel yang digunakan untuk menggambarkan kinerja model klasifikasi. Ini menunjukkan jumlah prediksi benar dan salah yang dibuat oleh model klasifikasi dibandingkan dengan hasil sebenarnya. Tabel ini sangat berguna untuk membandingkan kinerja berbagai detektor karena akan menunjukkan positif sebenarnya, positif palsu, negatif benar, dan negatif palsu untuk setiap detektor. Ini memungkinkan Anda melihat detektor mana yang paling akurat.
Python 3.9 atau lebih tinggi
Kunci API untuk detektor yang ingin Anda uji
Kloning repositori ini atau unduh file zip
Instal persyaratan menggunakan pip install -r requirements.txt
Catat kunci API Anda untuk detektor yang ingin Anda uji
Jalankan alat menggunakan python main.py
Ikuti petunjuk di alat untuk menambahkan kunci API Anda saat diminta
Alat ini akan menjalankan pendeteksi dan menampilkan hasilnya ke file CSV
Contoh alur kerja:
python main.py Ketik Y/N untuk memilih Originality.ai API: y Masukkan kunci API Originality.ai Anda: YOUR_API_KEY Masukkan jalur direktori untuk file teks AI: data/ai/ Masukkan jalur direktori untuk file teks manusia: data/manusia/ Masukkan jalur file CSV masukan: data/input.csv Masukkan nama file CSV keluaran: output.csv Alat akan memproses data. Ini mungkin memakan waktu cukup lama. Apakah Anda ingin membuat matriks konfusi? (y/n): kamu Tekan enter untuk keluar...
Alat ini hanya akan menjalankan pendeteksi yang kunci API-nya Anda miliki
Jika ketika alat selesai Anda tidak diminta untuk membuat matriks konfusi atau pembuatannya gagal, jalankan python matrix.py
untuk menghasilkan matriks konfusi
Alat ini mengharapkan data berada dalam file .txt dalam folder yang diteruskan ke alat saat dijalankan. Atau jika Anda mencoba memproses file csv, kolomnya diharapkan berada dalam urutan berikut:
text,dataset,label
sample text,gpt-3,ai
Kolom kumpulan data bisa berupa 'ai' atau 'manusia'. Kolom ini digunakan untuk memberi nama baris pada keluaran
Untuk menambahkan detektor, Anda perlu melakukan hal berikut:
Temukan dokumentasi API detektor
Temukan titik akhir untuk detektor
Temukan parameter yang diperlukan untuk titik akhir
Tambahkan detektor ke file detectors.py
dalam format berikut:
"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 - untuk menentukan versi tertentu, silakan periksa dokumen dan tambahkan ke tempat yang sesuai di file api_endpoints.py
Sapling.ai DOCS
GPTZero DOCS - untuk menentukan versi tertentu, silakan periksa dokumen dan tambahkan ke tempat yang sesuai di file api_endpoints.py
Dokumen Writer.com
Copyleaks DOCS - Harap ikuti petunjuk Copyleaks untuk menyiapkan kunci API karena ini sedikit lebih rumit dibandingkan detektor lainnya
Kami menyambut kontribusi untuk proyek ini! Berikut beberapa cara yang dapat Anda bantu:
Jika Anda menemukan bug, harap laporkan dengan membuka masalah GitHub. Pastikan untuk menyertakan:
Langkah-langkah untuk mereproduksi bug
Perilaku yang diharapkan
Perilaku sebenarnya
Informasi ini akan membantu kami mendiagnosis dan memperbaiki bug dengan lebih cepat.
Kami selalu mencari cara untuk meningkatkan alat ini! Jika Anda memiliki ide untuk penyempurnaan, buka terbitan GitHub dan jelaskan:
Perilaku saat ini
Perubahan yang Anda usulkan dan mengapa hal itu berguna
Contoh kasus penggunaan
Jika Anda ingin menyumbangkan kode secara langsung:
Garpu repo
Kloning garpu Anda
Buat perubahan pada cabang
Tulis pesan komit yang jelas dan ringkas
Buka permintaan tarik terhadap main
Pastikan PR Anda mematuhi hal-hal berikut:
Kode bersih dan diformat dengan baik
Dokumentasi diperbarui jika diperlukan
Pesan komit jelas dan terperinci
Kami ingin mendengar pengalaman Anda menggunakan alat ini - baik dan buruknya. Beri tahu kami apa yang berhasil dan apa yang tidak. Bagikan cerita tentang bagaimana alat ini membantu penelitian Anda. Semakin banyak kami mendengar pendapat Anda, semakin baik kami dapat membuat alat ini untuk semua orang!
Terima kasih telah berkontribusi!
Lisensi MIT
Hak Cipta (c) [2023] [Originalitas.AI]
Izin dengan ini diberikan, secara gratis, kepada siapa pun yang memperoleh salinan perangkat lunak ini dan file dokumentasi terkait (“Perangkat Lunak”), untuk menggunakan Perangkat Lunak tanpa batasan, termasuk namun tidak terbatas pada hak untuk menggunakan, menyalin, memodifikasi, mendistribusikan , mensublisensikan, dan/atau menjual salinan Perangkat Lunak, dan mengizinkan orang yang menerima Perangkat Lunak untuk melakukan hal tersebut, dengan tunduk pada ketentuan berikut:
Pemberitahuan hak cipta di atas dan pemberitahuan izin ini akan disertakan dalam semua salinan atau sebagian besar Perangkat Lunak.
PERANGKAT LUNAK INI DISEDIAKAN "APA ADANYA", TANPA JAMINAN APA PUN, TERSURAT MAUPUN TERSIRAT, TERMASUK NAMUN TIDAK TERBATAS PADA JAMINAN KELAYAKAN UNTUK DIPERDAGANGKAN, KESESUAIAN UNTUK TUJUAN TERTENTU, DAN TIDAK ADA PELANGGARAN. DALAM KEADAAN APA PUN PENULIS ATAU PEMEGANG HAK CIPTA TIDAK BERTANGGUNG JAWAB ATAS KLAIM, KERUSAKAN ATAU TANGGUNG JAWAB LAINNYA, BAIK DALAM TINDAKAN KONTRAK, HUKUM ATAU LAINNYA, YANG TIMBUL DARI, DARI ATAU SEHUBUNGAN DENGAN PERANGKAT LUNAK ATAU PENGGUNAAN ATAU HAL-HAL LAIN DALAM PERANGKAT LUNAK.