aiscore / app.py
anupam210's picture
Create app.py
13c0a49
import os
import openai
import pandas as pd
from sklearn.preprocessing import LabelEncoder
import numpy as np
import gradio as gr
openai.api_key = os.getenv("OPENAI_API_KEY")
def classify_defect(defect_description):
response = openai.Completion.create(
engine="text-davinci-003",
prompt= f"Classify the following defect description into one of the given classes:Software Issue, Hardware Issue, Access Issue \nDefect Description:{defect_description}\nDefect Class:",
temperature= 0,
max_tokens= 50,
n=1,
stop=None
#timeout=15,
)
classification = response.choices[0].text.strip()
return classification
def access(defect_description):
response = openai.Completion.create(
engine="text-davinci-003",
prompt=f"Classify the following defect description into one of the given classes:Login, Network \nDefect Description:{defect_description}\nDefect Class:",
max_tokens= 225,
n=1,
stop=None
#timeout=15,
)
classification = response.choices[0].text.strip()
return classification
def software(defect_description):
response = openai.Completion.create(
model="text-davinci-003",
prompt=f"identify the software from each item in below list:\n[{defect_description}]\nsoftware:",
temperature=0.71,
max_tokens=73,
top_p=1,
frequency_penalty=0,
presence_penalty=0
)
classification = response.choices[0].text.strip()
return classification
def hardware(defect_description):
response = openai.Completion.create(
engine="text-davinci-003",
prompt=f"identify the object from each item in below list:\n[{defect_description}]\nobject:",
temperature=0.71,
max_tokens=73,
top_p=1,
frequency_penalty=0,
presence_penalty=0
)
classification = response.choices[0].text.strip()
return classification
def mainissue(defect_description):
response = openai.Completion.create(
engine="text-davinci-003",
prompt=f"identify the main issue from defect description given below:\n{defect_description}\nmain issue:",
temperature=0.71,
max_tokens=73,
top_p=1,
frequency_penalty=0,
presence_penalty=0
)
classification = response.choices[0].text.strip()
return classification
def main(defect_description):
defect_class = classify_defect(defect_description)
main_issue = mainissue(defect_description)
if defect_class == "Software Issue":
sub_class = software(defect_description)
elif defect_class == "Hardware Issue":
sub_class = hardware(defect_description)
elif defect_class =="Access Issue":
sub_class = access(defect_description)
else:
sub_class = "Error"
return defect_class, sub_class, main_issue
inputs = gr.inputs.Textbox(label="Ticket Description")
outputs = [gr.outputs.Textbox(label="Ticket Category"), gr.outputs.Textbox(label="Ticket Sub Category"),gr.outputs.Textbox(label="Main Issue of The Ticket")]
demo = gr.Interface(fn=main,inputs=inputs,outputs=outputs, title="AI Based Ticket Classification")
demo.launch()