Catalog PyPI
Back to packageRELEASE DETAILS

0.0.2

PyPI

aidetector

AiDetector provides a simple interface to train and run models to classify if text was generated by AI or not.

Published11 Jul 2023
Direct dependencies6
Transitive dependenciesNot calculated

README

Version 0.0.2 documentation

AI Detector: Detecting AI Generated Text

Overview

AI Detector is a Python module, based on PyTorch, that simplifies the process of training and deploying a classification model to detect whether a given text has been generated by AI. It is designed to be platform-agnostic, making AI detection capabilities accessible to users across different work environments.


Installation

There are two methods available for installing the AI Detector module:

  • Using pip: You can install AI Detector directly from PyPI using pip by running the following command:

    pip3 install aidetector

  • From this repository: Alternatively, you can clone this repository and install it locally:

    git clone https://github.com/baileytec-labs/aidetector.git
    cd aidetector
    pip3 install .
    

Usage

AI Detector can be operated in two modes: training and inference.

Training

To train a new model, you need a CSV dataset with a classification column (labels: 0 for human-written and 1 for AI-generated text) and a text column (the text data). The script takes the following command-line arguments:

aidetector train --datafile [path_to_data] --modeloutputfile [path_to_model] --vocaboutputfile [path_to_vocab] --tokenmodel [SpaCy model] --percentsplit [percentage_for_test_split] --classificationlabel [classification_label_in_data] --textlabel [text_label_in_data] --download  --lowerbound [lower_bound_for_early_stopping] --upperbound [upper_bound_for_early_stopping] --epochs [number_of_epochs]

Inference

To make predictions with a trained model, you need to provide the text you want to classify. The script takes the following command-line arguments:

aidetector infer --modelfile [path_to_trained_model] --vocabfile [path_to_vocab] --text [text_to_classify] --tokenmodel [SpaCy_model] --threshold [probability_threshold_for_classification] --download [flag_to_download_SpaCy_model]

The prediction will be printed to the console: "This was written by AI" or "This was written by a human."


Python API

You can use all the functionality of AiDetector in your python programs, it's as simple as starting with


from aidetector.aidetectorclass import *
from aidetector.inference import *
from aidetector.training import *
from aidetector.tokenization import *
#or
import aidetector as ad

From there, you have access to all of the training, inference, and tokenization capabilities.

for example,

#Getting inference of an AI model in python
from aidetector.tokenization import *
from aidetector.inference import *
from aidetector.aidetectorclass import *

tokenizer=get_tokenizer()
vocab=load_vocab("./myvocabfile.vocab")
model = AiDetector(len(vocab))

testtext="Is this written by AI?"


model.load_state_dict(torch.load("./mymodelfile.model"))
isai=check_input(
    model,
    vocab,
    testtext,
    tokenizer=tokenizer,
)

#returns 0 if human, 1 if AI.




Dependencies

The main dependencies for this project include:

PyTorch SpaCy Torchtext scikit-learn pandas argparse Halo

Note: For tokenization, the project uses SpaCy models. By default, it uses the multi-language model xx_ent_wiki_sm, but other models can be specified using the --tokenmodel argument. If the model is not already downloaded, you can use the --download flag to download the model.

Contributing

Contributions to the AI Detector project are welcome. Please review CONTRIBUTION.md for further instructions.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 6

Native requirements
6 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
spacy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
spacyruntime
torch
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
torchruntime
torchtext
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
torchtextruntime
halo
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
haloruntime
pandas
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
pandasruntime
scikit-learn
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
scikit-learnruntime

Distribution files

2 collected
aidetector-0.0.2-py3-none-any.whl

bdist_wheel · 13.77 KB · Python py3

Source file
aidetector-0.0.2.tar.gz

sdist · 13.17 KB · Python source

Source file

Metadata history

Meaningful changes
Current collected state Current

Observed since 21 Oct, 10:27 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:b9970bc7d4a26ec2b7296a76be7a39c7a71783e1caed24d73e1a09f95f3c6033

Other collected versions

View all collected versions →