Esta herramienta le permite probar la precisión de varios detectores de IA. Es una herramienta de línea de comandos diseñada para facilitar la prueba de una gran cantidad de detectores al mismo tiempo utilizando los mismos datos.
La herramienta toma un conjunto de archivos de texto y los ejecuta a través de varios detectores de IA. Luego envía los resultados a un archivo CSV. La herramienta también genera una matriz de confusión para mostrar la precisión de los detectores. Pero ¿qué es una matriz de confusión? Una matriz de confusión es una tabla que se utiliza para describir el rendimiento de un modelo de clasificación. Muestra la cantidad de predicciones correctas e incorrectas realizadas por el modelo de clasificación en comparación con los resultados reales. Esta tabla es extremadamente útil para comparar el rendimiento de diferentes detectores, ya que mostrará los verdaderos positivos, falsos positivos, verdaderos negativos y falsos negativos de cada detector. Esto le permite ver qué detectores son los más precisos.
Python 3.9 o superior
Claves API para los detectores que desea probar
Clona este repositorio o descarga el archivo zip
Instale los requisitos usando pip install -r requirements.txt
Tome nota de sus claves API para los detectores que desea probar
Ejecute la herramienta usando python main.py
Siga las instrucciones de la herramienta para agregar sus claves API cuando se le solicite
La herramienta ejecutará los detectores y generará los resultados en un archivo CSV.
Flujo de trabajo de muestra:
Python principal.py Escriba Y/N para seleccionar la API Originality.ai: y Ingrese su clave API de Originality.ai: YOUR_API_KEY Ingrese la ruta del directorio para archivos de texto AI: data/ai/ Ingrese la ruta del directorio para archivos de texto humanos: data/human/ Ingrese la ruta del archivo CSV de entrada: data/input.csv Ingrese el nombre del archivo CSV de salida: salida.csv La herramienta procesará los datos. Esto puede tardar un poco. ¿Te gustaría generar una matriz de confusión? (s/n): sí Presione enter para salir...
La herramienta solo ejecutará los detectores para los que tenga claves API.
Si cuando finaliza la herramienta no se le solicita que genere una matriz de confusión o la generación falla, ejecute python matrix.py
para generar la matriz de confusión.
La herramienta espera que los datos estén en archivos .txt en una carpeta que se pasa a la herramienta cuando se ejecuta. O si está intentando procesar un archivo csv, espera que las columnas estén en el siguiente orden:
text,dataset,label
sample text,gpt-3,ai
La columna del conjunto de datos puede ser simplemente 'ai' o 'humano'. Esta columna se usa para nombrar las filas en la salida.
Para agregar un detector debe hacer lo siguiente:
Encuentre la documentación API de los detectores
Encuentre el punto final del detector.
Encuentre los parámetros necesarios para el punto final
Agregue el detector al archivo detectors.py
en el siguiente formato:
"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: para especificar una versión particular, verifique los documentos y agréguelos al lugar apropiado en el archivo api_endpoints.py
Sapling.ai DOCS
GPTZero DOCS: para especificar una versión particular, verifique los documentos y agréguelos al lugar apropiado en el archivo api_endpoints.py
Documentos de Writer.com
Copyleaks DOCS: siga las instrucciones de Copyleaks para configurar la clave API, ya que es un poco más complicada que los otros detectores.
¡Agradecemos las contribuciones a este proyecto! A continuación se muestran algunas formas en las que puede ayudar:
Si encuentra un error, infórmelo abriendo un problema de GitHub. Asegúrese de incluir:
Pasos para reproducir el error.
Comportamiento esperado
Comportamiento real
Esta información nos ayudará a diagnosticar y corregir el error más rápido.
¡Siempre estamos buscando formas de mejorar la herramienta! Si tiene una idea para una mejora, abra una incidencia de GitHub y descríbala:
El comportamiento actual
Su cambio propuesto y por qué sería útil
Un caso de uso de ejemplo
Si desea contribuir directamente con código:
Bifurcar el repositorio
Clona tu tenedor
Realizar cambios en una rama
Escriba un mensaje de confirmación claro y conciso
Abrir una solicitud de extracción contra principal
Asegúrese de que su RP cumpla con lo siguiente:
El código está limpio y bien formateado.
La documentación se actualiza si es necesario.
Los mensajes de confirmación son claros y detallados.
Queremos conocer su experiencia al utilizar la herramienta, buena y mala. Háganos saber qué funcionó y qué no. Comparta historias sobre cómo esta herramienta le ha ayudado en su investigación. ¡Cuanto más sepamos de usted, mejor podremos hacer que la herramienta sea para todos!
¡Gracias por contribuir!
Licencia MIT
Copyright (c) [2023] [Originalidad.AI]
Por el presente se otorga permiso, sin cargo, a cualquier persona que obtenga una copia de este software y los archivos de documentación asociados (el "Software"), para operar con el Software sin restricciones, incluidos, entre otros, los derechos de uso, copia, modificación y distribución. , sublicenciar y/o vender copias del Software, y permitir que las personas a quienes se les proporciona el Software lo hagan, sujeto a las siguientes condiciones:
El aviso de derechos de autor anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO, PERO NO LIMITADO A, LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DE DERECHOS DE AUTOR SERÁN RESPONSABLES DE NINGÚN RECLAMO, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN CONTRACTUAL, AGRAVIO O DE OTRA MANERA, QUE SURJA DE, FUERA DE O EN RELACIÓN CON EL SOFTWARE O EL USO U OTRAS NEGOCIOS EN EL SOFTWARE.