Cet outil vous permet de tester la précision de divers détecteurs IA. Il s'agit d'un outil en ligne de commande conçu pour faciliter le test d'un grand nombre de détecteurs en même temps en utilisant les mêmes données.
L'outil prend un ensemble de fichiers texte et les exécute via un certain nombre de détecteurs d'IA. Il affiche ensuite les résultats dans un fichier CSV. L'outil génère également une matrice de confusion pour montrer la précision des détecteurs. Mais qu’est-ce qu’une matrice de confusion ? Une matrice de confusion est un tableau utilisé pour décrire les performances d'un modèle de classification. Il montre le nombre de prédictions correctes et incorrectes faites par le modèle de classification par rapport aux résultats réels. Ce tableau est extrêmement utile pour comparer les performances de différents détecteurs car il affichera les vrais positifs, les faux positifs, les vrais négatifs et les faux négatifs pour chaque détecteur. Cela vous permet de voir quels détecteurs sont les plus précis.
Python 3.9 ou supérieur
Clés API pour les détecteurs que vous souhaitez tester
Clonez ce référentiel ou téléchargez le fichier zip
Installez les exigences à l'aide de pip install -r requirements.txt
Notez vos clés API pour les détecteurs que vous souhaitez tester
Exécutez l'outil en utilisant python main.py
Suivez les instructions de l'outil en ajoutant vos clés API lorsque vous y êtes invité.
L'outil exécutera les détecteurs et affichera les résultats dans un fichier CSV
Exemple de flux de travail :
python main.py Tapez O/N pour sélectionner l'API Originality.ai : oui Entrez votre clé API Originality.ai : YOUR_API_KEY Entrez le chemin du répertoire pour les fichiers texte AI : data/ai/ Entrez le chemin du répertoire pour les fichiers texte humain : data/human/ Entrez le chemin du fichier CSV d'entrée : data/input.csv Entrez le nom du fichier CSV de sortie : output.csv L'outil traitera les données. Cela peut prendre un certain temps. Souhaitez-vous générer une matrice de confusion ? (o/n) : oui Appuyez sur Entrée pour quitter...
L'outil exécutera uniquement les détecteurs pour lesquels vous disposez de clés API.
Si, une fois l'outil terminé, vous n'êtes pas invité à générer une matrice de confusion ou si la génération échoue, exécutez python matrix.py
pour générer la matrice de confusion.
L'outil s'attend à ce que les données se trouvent dans des fichiers .txt dans un dossier qui est transmis à l'outil lors de son exécution. Ou si vous essayez de traiter un fichier csv, les colonnes doivent être dans l'ordre suivant :
text,dataset,label
sample text,gpt-3,ai
La colonne de l'ensemble de données peut simplement être « ai » ou « humain ». Cette colonne est utilisée pour nommer les lignes sur la sortie.
Pour ajouter un détecteur, vous devez procéder comme suit :
Trouver la documentation de l'API des détecteurs
Trouver le point final du détecteur
Rechercher les paramètres requis pour le point de terminaison
Ajoutez le détecteur au fichier detectors.py
au format suivant :
"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 - pour spécifier une version particulière, veuillez consulter la documentation et l'ajouter à l'endroit approprié dans le fichier api_endpoints.py
Sapling.ai DOCS
GPTZero DOCS - pour spécifier une version particulière, veuillez consulter la documentation et l'ajouter à l'endroit approprié dans le fichier api_endpoints.py
Documents Writer.com
Copyleaks DOCS - Veuillez suivre les instructions de Copyleaks pour configurer la clé API car elle est un peu plus compliquée que les autres détecteurs.
Nous apprécions les contributions à ce projet ! Voici quelques façons dont vous pouvez aider :
Si vous trouvez un bug, veuillez le signaler en ouvrant un ticket GitHub. Assurez-vous d'inclure :
Étapes pour reproduire le bug
Comportement attendu
Comportement réel
Ces informations nous aideront à diagnostiquer et à corriger le bug plus rapidement.
Nous sommes toujours à la recherche de moyens d'améliorer l'outil ! Si vous avez une idée d'amélioration, ouvrez un ticket GitHub et décrivez :
Le comportement actuel
Votre proposition de changement et pourquoi il serait utile
Un exemple de cas d'utilisation
Si vous souhaitez contribuer directement au code :
Forkez le dépôt
Clonez votre fourchette
Apporter des modifications sur une branche
Rédigez un message de validation clair et concis
Ouvrir une pull request contre main
Assurez-vous que votre PR respecte les éléments suivants :
Le code est propre et bien formaté
La documentation est mise à jour si nécessaire
Les messages de validation sont clairs et détaillés
Nous souhaitons connaître votre expérience d’utilisation de l’outil – bonne et mauvaise. Faites-nous savoir ce qui a fonctionné et ce qui n'a pas fonctionné. Partagez des histoires sur la façon dont cet outil a aidé vos recherches. Plus vous nous entendrez, mieux nous pourrons rendre cet outil accessible à tous !
Merci d'avoir contribué !
Licence MIT
Copyright (c) [2023] [Originalité.AI]
L'autorisation est accordée par la présente, gratuitement, à toute personne obtenant une copie de ce logiciel et des fichiers de documentation associés (le « Logiciel »), d'utiliser le Logiciel sans restriction, y compris, sans limitation, les droits d'utilisation, de copie, de modification, de distribution. , accorder des sous-licences et/ou vendre des copies du Logiciel, et permettre aux personnes à qui le Logiciel est fourni de le faire, sous réserve des conditions suivantes :
L'avis de droit d'auteur ci-dessus et cet avis d'autorisation doivent être inclus dans toutes les copies ou parties substantielles du logiciel.
LE LOGICIEL EST FOURNI « EN L'ÉTAT », SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU IMPLICITE, Y COMPRIS MAIS SANS LIMITATION LES GARANTIES DE QUALITÉ MARCHANDE, D'ADAPTATION À UN USAGE PARTICULIER ET DE NON-VIOLATION. EN AUCUN CAS LES AUTEURS OU LES TITULAIRES DES DROITS D'AUTEUR NE SERONT RESPONSABLES DE TOUTE RÉCLAMATION, DOMMAGES OU AUTRE RESPONSABILITÉ, QUE CE SOIT DANS UNE ACTION CONTRACTUELLE, DÉLIT OU AUTRE, DÉCOULANT DE, DE OU EN RELATION AVEC LE LOGICIEL OU L'UTILISATION OU D'AUTRES TRANSACTIONS DANS LE LOGICIEL.