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.
Python 3.9 ou superior
Chaves de API para os detectores que você deseja testar
Clone este repositório ou baixe o arquivo zip
Instale os requisitos usando pip install -r requirements.txt
Anote suas chaves de API para os detectores que deseja testar
Execute a ferramenta usando python main.py
Siga as instruções na ferramenta adicionando suas chaves de API quando solicitado
A ferramenta executará os detectores e enviará os resultados para um arquivo CSV
Exemplo de fluxo de trabalho:
python principal.py Digite S/N para selecionar API Originality.ai: y Insira sua chave de API Originality.ai: YOUR_API_KEY Insira o caminho do diretório para arquivos de texto AI: data/ai/ Insira o caminho do diretório para arquivos de texto humanos: data/human/ Insira o caminho do arquivo CSV de entrada: data/input.csv Insira o nome do arquivo CSV de saída: output.csv A ferramenta processará os dados. Isso pode demorar um pouco. Você gostaria de gerar uma matriz de confusão? (S/n): sim Pressione enter para sair...
A ferramenta executará apenas os detectores para os quais você possui chaves de API
Se quando a ferramenta for concluída você não for solicitado a gerar uma matriz de confusão ou a geração falhar, execute 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:
Encontre a documentação da API dos detectores
Encontre o ponto final do detector
Encontre os parâmetros necessários para o endpoint
Adicione o detector ao arquivo 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",
}
}
},
}
Originality.ai DOCS - para especificar uma versão específica, verifique a documentação e adicione-a ao local apropriado no arquivo api_endpoints.py
Sapling.ai DOCS
GPTZero DOCS - para especificar uma versão específica, verifique a documentação e adicione-a ao local apropriado no arquivo api_endpoints.py
Writer.com DOCS
Copyleaks DOCS - Siga as instruções do Copyleaks para configurar a chave API, pois é um pouco mais complicado do que os outros detectores
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:
Etapas para reproduzir o bug
Comportamento esperado
Comportamento real
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:
O comportamento atual
Sua mudança proposta e por que seria útil
Um exemplo de caso de uso
Se você quiser contribuir diretamente com código:
Bifurque o repositório
Clone seu garfo
Faça alterações em um branch
Escreva uma mensagem de commit clara e concisa
Abra uma solicitação pull em main
Certifique-se de que seu PR cumpra o seguinte:
O código está limpo e bem formatado
A documentação é atualizada se necessário
As mensagens de commit são claras e detalhadas
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 NENHUM CASO 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.