Skip to main content

Intentclassification AI in python, easy to use intentclassifier package.

Project description

Intentclassification

Install

pip install intentclassification

About

Intentclassification AI in python, easy to use intentclassifier package.

How to use

Import:

from intentclassification import IntentClassifier

Intents Structure:

{
    "intents": [
        {
            "tag": "lights_on",
            "patterns": ["Turn the light on", "Turn on the light", "Lights on"]
        },
        {
            "tag": "lights_off",
            "patterns": ["Turn the light off", "Turn off the light", "Lights off"]
        },
        {
            "tag": "fan_on",
            "patterns": ["Turn the fan on", "Turn on the fan", "Fan on"]
        },
        {
            "tag": "fan_off",
            "patterns": ["Turn the fan off", "Turn off the fan", "Fan off"]
        }
    ]
}

Example:

from intentclassification import IntentClassifier, handleTriggers

#Initialise intentclassifier (Intents path being the path to the intents.json file) (Output path being the path to the folder the model will be saved in)
IC = IntentClassifier(intents_path="./intents.json", output_path="./intentclassification")

#Fit the model Aka. train the model on the data in intents.json
IC.fit_model()
#Save the model after fitting
IC.save_model()

#Loading a previously fitted/trained model
#When you have a trained model you dont have to retrain everytime you run the program, just simply load the model like so
IC.load_model()

#Using the model is as simple as parsing a sentence to the predict function
result = IC.predict(input_text="Turn the lights on!")

#The predict function will return a json object including the name of the intent and the probability of that intent
print(result) # Example: {"intent": "lights_on", "probability": "0.999256"}

#Now how about we use this intent for something useful?
#We can define a function that will run whenever the lights_on intent reaches a certain probability
#Remember to give the functions and the intents the same name otherwise the triggerhandler wont work
def lights_on():
    print("Turning lights on!")
    #Run code for turning on your light here!
    #If anything in here is returned it will be parsed through the handleTriggers() function
    return "Lights have been turned on!"

def lights_off():
    print("Turning lights off!")
    #Run code for turning on your light here!
    #If anything in here is returned it will be parsed through the handleTriggers() function
    return "Lights have been turned off!"

def fan_on():
    print("Turning fan on!")
    #Run code for turning on your light here!
    #If anything in here is returned it will be parsed through the handleTriggers() function
    return "Fan has been turned on!"

def fan_off():
    print("Turning fan off!")
    #Run code for turning on your light here!
    #If anything in here is returned it will be parsed through the handleTriggers() function
    return "Fan has been turned off!"

#Create an array with all the trigger functions, this is how the handleTriggers() function accesses them.
trigger_functions = [lights_on]

#Handletriggers takes 2 arguments, the result from the IC.predict() function and a probability threshold value for activating the trigger functions
#The probability_threshold can be changed to accomodate any missfires, the threshold might have to be changed depending on the size of intents.json
returned_value = handleTriggers(prediction=result, probability_threshold=0.75, trigger_functions=trigger_functions)

#The returned value will be None by default depending on if the triggered trigger function returns anything, otherwise it will be the returned value
print(returned_value)

# The printed results of this full program will be the following:
# {'intent': 'lights_on', 'probability': '0.9999784'}
# Turning lights on!
# Lights have been turned on!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

intentclassification-0.0.6.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

intentclassification-0.0.6-py3-none-any.whl (4.4 kB view details)

Uploaded Python 3

File details

Details for the file intentclassification-0.0.6.tar.gz.

File metadata

  • Download URL: intentclassification-0.0.6.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.4

File hashes

Hashes for intentclassification-0.0.6.tar.gz
Algorithm Hash digest
SHA256 b51dd32663def5a53f4eb60aaeded72c651230f57a78bf93b76a4e69ea1a3b1d
MD5 4a40686bc146df4c72a6733a0712379e
BLAKE2b-256 b6a9ef54bdd36f2581acc4c25c9ec61910fefb91d70e4bc8f06988332aceea19

See more details on using hashes here.

File details

Details for the file intentclassification-0.0.6-py3-none-any.whl.

File metadata

File hashes

Hashes for intentclassification-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 1e04d368118d548e370450a2c6401b70fd0366195b893d15c3c1b83e0c8b0574
MD5 ddfb10152e267da8cdd4439f416bea75
BLAKE2b-256 1bd7208b4b9d2d1d2881383fa001cbd71ec3ec8dfe0d9783e9bc077ae293b3e5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page