該工具可讓您測試各種人工智慧探測器的準確性。它是一個命令列工具,旨在使用相同的數據輕鬆地同時測試大量探測器。
該工具獲取一組文字文件,並透過多個人工智慧檢測器運行它們。然後它將結果輸出到 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]
特此免費授予任何獲得本軟體和相關文件文件(「軟體」)副本的人不受限制地使用本軟體,包括但不限於使用、複製、修改、分發的權利、再授權和/或銷售軟體的副本,並允許向其提供軟體的人員這樣做,但須滿足以下條件:
上述版權聲明和本授權聲明應包含在本軟體的所有副本或主要部分中。
本軟體以「現況」提供,不提供任何明示或暗示的保證,包括但不限於適銷性、特定用途的適用性和不侵權的保證。 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE軟體.