|
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 |
|
|
|
) |
|
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 |
|
|
|
) |
|
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() |