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.
pip install -r requirements.txt
python main.py
Exemple de flux de travail :
python main.py
Type Y/N to select Originality.ai API: y
Enter your Originality.ai API key: YOUR_API_KEY
Enter the directory path for AI text files: data/ai/
Enter the directory path for human text files: data/human/
Enter the input CSV file path: data/input.csv
Enter the output CSV file name: output.csv
Tool will process the data. This may take a while.
Would you like to generate a confusion matrix ? (y/n): y
Press enter to exit...
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 :
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",
}
}
},
}
api_endpoints.py
api_endpoints.py
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 :
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 :
Si vous souhaitez contribuer directement au code :
Assurez-vous que votre PR respecte les éléments suivants :
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 « TEL QUEL », 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.