Esta ferramenta permite testar a precisão de vários detectores de IA. É uma ferramenta de linha de comando projetada para facilitar o teste de um grande número de detectores ao mesmo tempo usando os mesmos dados.
A ferramenta pega um conjunto de arquivos de texto e os executa por meio de vários detectores de IA. Em seguida, ele envia os resultados para um arquivo CSV. A ferramenta também gera uma matriz de confusão para mostrar a precisão dos detectores. Mas o que é uma matriz de confusão? Uma matriz de confusão é uma tabela usada para descrever o desempenho de um modelo de classificação. Mostra o número de previsões corretas e incorretas feitas pelo modelo de classificação em comparação com os resultados reais. Esta tabela é extremamente útil para comparar o desempenho de diferentes detectores, pois mostrará os verdadeiros positivos, falsos positivos, verdadeiros negativos e falsos negativos de cada detector. Isso permite que você veja quais detectores são mais precisos.
pip install -r requirements.txt
python main.py
Exemplo de fluxo de trabalho:
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
para gerar a matriz de confusão A ferramenta espera que os dados estejam em arquivos .txt em uma pasta que é passada para a ferramenta quando ela é executada. Ou se você estiver tentando processar um arquivo csv, ele espera que as colunas estejam na seguinte ordem:
text,dataset,label
sample text,gpt-3,ai
A coluna do conjunto de dados pode ser simplesmente 'ai' ou 'human'. Esta coluna é usada para nomear as linhas na saída
Para adicionar um detector, você precisa fazer o seguinte:
detectors.py
no seguinte 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",
}
}
},
}
api_endpoints.py
api_endpoints.py
Aceitamos contribuições para este projeto! Aqui estão algumas maneiras pelas quais você pode ajudar:
Se você encontrar um bug, relate-o abrindo um problema no GitHub. Certifique-se de incluir:
Essas informações nos ajudarão a diagnosticar e corrigir o bug com mais rapidez.
Estamos sempre buscando maneiras de melhorar a ferramenta! Se você tiver uma ideia para uma melhoria, abra um problema no GitHub e descreva:
Se você quiser contribuir diretamente com código:
Certifique-se de que seu PR cumpra o seguinte:
Queremos ouvir sobre sua experiência com a ferramenta – boa e ruim. Deixe-nos saber o que funcionou e o que não funcionou. Compartilhe histórias de como essa ferramenta ajudou sua pesquisa. Quanto mais ouvirmos de você, melhor poderemos tornar a ferramenta para todos!
Obrigado por contribuir!
Licença MIT
Copyright (c) [2023] [Originalidade.AI]
É concedida permissão, gratuitamente, a qualquer pessoa que obtenha uma cópia deste software e dos arquivos de documentação associados (o "Software"), para negociar o Software sem restrições, incluindo, sem limitação, os direitos de usar, copiar, modificar, distribuir , sublicenciar e/ou vender cópias do Software e permitir que as pessoas a quem o Software é fornecido o façam, sujeito às seguintes condições:
O aviso de direitos autorais acima e este aviso de permissão serão incluídos em todas as cópias ou partes substanciais do Software.
O SOFTWARE É FORNECIDO "COMO ESTÁ", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM DETERMINADO FIM E NÃO VIOLAÇÃO. EM HIPÓTESE ALGUMA OS AUTORES OU DETENTORES DE DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER RECLAMAÇÃO, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO DE CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO SOFTWARE.