Create app.py
Browse files
app.py
ADDED
@@ -0,0 +1,85 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import os
|
2 |
+
import openai
|
3 |
+
import pandas as pd
|
4 |
+
from sklearn.preprocessing import LabelEncoder
|
5 |
+
import numpy as np
|
6 |
+
import gradio as gr
|
7 |
+
|
8 |
+
openai.api_key = os.getenv("OPENAI_API_KEY")
|
9 |
+
|
10 |
+
def classify_defect(defect_description):
|
11 |
+
response = openai.Completion.create(
|
12 |
+
engine="text-davinci-003",
|
13 |
+
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:",
|
14 |
+
temperature= 0,
|
15 |
+
max_tokens= 50,
|
16 |
+
n=1,
|
17 |
+
stop=None
|
18 |
+
#timeout=15,
|
19 |
+
)
|
20 |
+
classification = response.choices[0].text.strip()
|
21 |
+
return classification
|
22 |
+
def access(defect_description):
|
23 |
+
response = openai.Completion.create(
|
24 |
+
engine="text-davinci-003",
|
25 |
+
prompt=f"Classify the following defect description into one of the given classes:Login, Network \nDefect Description:{defect_description}\nDefect Class:",
|
26 |
+
max_tokens= 225,
|
27 |
+
n=1,
|
28 |
+
stop=None
|
29 |
+
#timeout=15,
|
30 |
+
)
|
31 |
+
classification = response.choices[0].text.strip()
|
32 |
+
return classification
|
33 |
+
def software(defect_description):
|
34 |
+
response = openai.Completion.create(
|
35 |
+
model="text-davinci-003",
|
36 |
+
prompt=f"identify the software from each item in below list:\n[{defect_description}]\nsoftware:",
|
37 |
+
temperature=0.71,
|
38 |
+
max_tokens=73,
|
39 |
+
top_p=1,
|
40 |
+
frequency_penalty=0,
|
41 |
+
presence_penalty=0
|
42 |
+
)
|
43 |
+
classification = response.choices[0].text.strip()
|
44 |
+
return classification
|
45 |
+
def hardware(defect_description):
|
46 |
+
response = openai.Completion.create(
|
47 |
+
engine="text-davinci-003",
|
48 |
+
prompt=f"identify the object from each item in below list:\n[{defect_description}]\nobject:",
|
49 |
+
temperature=0.71,
|
50 |
+
max_tokens=73,
|
51 |
+
top_p=1,
|
52 |
+
frequency_penalty=0,
|
53 |
+
presence_penalty=0
|
54 |
+
)
|
55 |
+
classification = response.choices[0].text.strip()
|
56 |
+
return classification
|
57 |
+
def mainissue(defect_description):
|
58 |
+
response = openai.Completion.create(
|
59 |
+
engine="text-davinci-003",
|
60 |
+
prompt=f"identify the main issue from defect description given below:\n{defect_description}\nmain issue:",
|
61 |
+
temperature=0.71,
|
62 |
+
max_tokens=73,
|
63 |
+
top_p=1,
|
64 |
+
frequency_penalty=0,
|
65 |
+
presence_penalty=0
|
66 |
+
)
|
67 |
+
classification = response.choices[0].text.strip()
|
68 |
+
return classification
|
69 |
+
def main(defect_description):
|
70 |
+
defect_class = classify_defect(defect_description)
|
71 |
+
main_issue = mainissue(defect_description)
|
72 |
+
if defect_class == "Software Issue":
|
73 |
+
sub_class = software(defect_description)
|
74 |
+
elif defect_class == "Hardware Issue":
|
75 |
+
sub_class = hardware(defect_description)
|
76 |
+
elif defect_class =="Access Issue":
|
77 |
+
sub_class = access(defect_description)
|
78 |
+
else:
|
79 |
+
sub_class = "Error"
|
80 |
+
return defect_class, sub_class, main_issue
|
81 |
+
inputs = gr.inputs.Textbox(label="Ticket Description")
|
82 |
+
outputs = [gr.outputs.Textbox(label="Ticket Category"), gr.outputs.Textbox(label="Ticket Sub Category"),gr.outputs.Textbox(label="Main Issue of The Ticket")]
|
83 |
+
|
84 |
+
demo = gr.Interface(fn=main,inputs=inputs,outputs=outputs, title="AI Based Ticket Classification")
|
85 |
+
demo.launch()
|