该工具允许您测试各种人工智能探测器的准确性。它是一个命令行工具,旨在使用相同的数据轻松地同时测试大量探测器。
该工具获取一组文本文件,并通过多个人工智能检测器运行它们。然后它将结果输出到 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”或“人类”,该列用于命名输出中的行
要添加检测器,您需要执行以下操作:
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 遵守以下规定:
我们希望了解您使用该工具的体验 - 好的和坏的。让我们知道什么有效,什么无效。分享该工具如何帮助您的研究的故事。您的反馈越多,我们就越能为每个人打造更好的工具!
感谢您的贡献!
麻省理工学院许可证
版权所有 (c) [2023] [Originality.AI]
特此免费授予获得本软件和相关文档文件(“软件”)副本的任何人不受限制地使用本软件,包括但不限于使用、复制、修改、分发的权利、再许可和/或销售软件的副本,并允许向其提供软件的人员这样做,但须满足以下条件:
上述版权声明和本许可声明应包含在本软件的所有副本或主要部分中。
本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途的适用性和不侵权的保证。在任何情况下,作者或版权持有者均不对因本软件或本软件中的使用或其他交易而产生或与之相关的任何索赔、损害或其他责任负责,无论是合同、侵权行为还是其他行为。软件。