이 도구를 사용하면 다양한 AI 탐지기의 정확성을 테스트할 수 있습니다. 동일한 데이터를 사용하여 동시에 많은 수의 감지기를 쉽게 테스트할 수 있도록 설계된 명령줄 도구입니다.
이 도구는 일련의 텍스트 파일을 가져와 여러 AI 탐지기를 통해 실행합니다. 그런 다음 결과를 CSV 파일로 출력합니다. 이 도구는 또한 감지기의 정확도를 보여주기 위해 혼동 행렬을 생성합니다. 그런데 혼동 행렬이란 무엇입니까? 혼동 행렬은 분류 모델의 성능을 설명하는 데 사용되는 테이블입니다. 실제 결과와 비교하여 분류 모델에 의해 이루어진 올바른 예측과 잘못된 예측의 수를 보여줍니다. 이 표는 각 감지기에 대한 참양성, 거짓양성, 참음성 및 거짓음성을 표시하므로 다양한 감지기의 성능을 비교하는 데 매우 유용합니다. 이를 통해 어떤 감지기가 가장 정확한지 확인할 수 있습니다.
pip install -r requirements.txt
사용하여 요구 사항을 설치합니다. python main.py
사용하여 도구 실행샘플 워크플로:
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
실행하여 혼동 행렬을 생성하세요. 도구는 실행 시 도구에 전달되는 폴더의 .txt 파일에 데이터가 있을 것으로 예상합니다. 또는 csv 파일을 처리하려는 경우 열이 다음 순서로 되어 있을 것으로 예상합니다.
text,dataset,label
sample text,gpt-3,ai
데이터 세트 열은 단순히 'ai' 또는 'human'일 수 있습니다. 이 열은 출력에서 행의 이름을 지정하는 데 사용됩니다.
감지기를 추가하려면 다음을 수행해야 합니다.
detectors.py
파일에 감지기를 추가합니다. "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
파일의 적절한 위치에 추가하세요.우리는 이 프로젝트에 대한 기여를 환영합니다! 다음은 귀하가 도울 수 있는 몇 가지 방법입니다.
버그를 발견하면 GitHub 문제를 열어 보고해 주세요. 다음을 반드시 포함하세요:
이 정보는 버그를 더 빠르게 진단하고 수정하는 데 도움이 됩니다.
우리는 항상 도구를 개선할 수 있는 방법을 찾고 있습니다! 개선 사항에 대한 아이디어가 있는 경우 GitHub 문제를 열고 다음 사항을 설명하세요.
코드에 직접 기여하고 싶다면:
PR이 다음 사항을 준수하는지 확인하세요.
우리는 도구 사용에 대한 좋은 점과 나쁜 점에 대해 듣고 싶습니다. 무엇이 효과가 있었고 무엇이 효과가 없었는지 알려주세요. 이 도구가 연구에 어떻게 도움이 되었는지 이야기를 공유해 보세요. 여러분의 의견이 많을수록 모두를 위한 더 나은 도구를 만들 수 있습니다!
기여해 주셔서 감사합니다!
MIT 라이센스
Copyright (c) [2023] [Originality.AI]
본 소프트웨어 및 관련 문서 파일("소프트웨어")의 사본을 취득한 사람에게는 사용, 복사, 수정, 배포 권한을 포함하되 이에 국한되지 않는 제한 없이 소프트웨어를 취급할 수 있는 권한이 무료로 부여됩니다. , 소프트웨어 복사본을 재라이센스 부여 및/또는 판매하고, 소프트웨어를 제공받은 사람에게 다음 조건에 따라 그렇게 할 수 있도록 허용합니다.
위의 저작권 고지와 본 허가 고지는 소프트웨어의 모든 사본 또는 상당 부분에 포함됩니다.
소프트웨어는 상품성, 특정 목적에의 적합성 및 비침해에 대한 보증을 포함하되 이에 국한되지 않고 명시적이거나 묵시적인 어떠한 종류의 보증도 없이 "있는 그대로" 제공됩니다. 어떠한 경우에도 작성자나 저작권 보유자는 계약, 불법 행위 또는 기타 행위로 인해 소프트웨어나 사용 또는 기타 거래와 관련하여 발생하는 모든 청구, 손해 또는 기타 책임에 대해 책임을 지지 않습니다. 소프트웨어.