Spaces:
Runtime error
Runtime error
File size: 4,292 Bytes
c4a182c 3599d25 c4a182c 3599d25 c4a182c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
import gradio as gr
import pandas as pd
import numpy as np
from joblib import dump, load
from sklearn.model_selection import train_test_split
from catboost import CatBoostClassifier, MetricVisualizer, Pool
from sklearn.model_selection import GridSearchCV
from sklearn.neighbors import KernelDensity
import matplotlib.pyplot as plt
import matplotlib
#Model Loading
model = load('modelUser_Behavior.pkl')
def predict_behavior_type(evaluation):
prediction = model.predict(evaluation)
return prediction
def analyze_data(inter_api_access_duration, api_access_uniqueness, sequence_length, vsession_duration, ip_type, num_sessions, num_users, num_unique_apis):
# Combine the input parameters into a single evaluation object or use them individually as needed
evaluation = [inter_api_access_duration, api_access_uniqueness, sequence_length, vsession_duration, ip_type, num_sessions, num_users, num_unique_apis]
# Call the model's predict function with the evaluation object or individual parameters as needed
prediction = predict_behavior_type(evaluation)
# Return the prediction or any output you desire
return prediction
# Create a Gradio Dataframe input with three columns and two rows
inter_api_access_duration_input = gr.inputs.Number(label="Inter API Access Duration (sec)")
api_access_uniqueness_input = gr.inputs.Number(label="API Access Uniqueness")
sequence_length_input = gr.inputs.Number(label="Sequence Length (count)")
vsession_duration_input = gr.inputs.Number(label="VSession Duration (min)")
ip_type_input = gr.inputs.Dropdown(choices=["default", "alternative","datacenter"], label="IP Type")
num_sessions_input = gr.inputs.Number(label="Number of Sessions")
num_users_input = gr.inputs.Number(label="Number of Users")
num_unique_apis_input = gr.inputs.Number(label="Number of Unique APIs")
Inputs = [inter_api_access_duration_input, api_access_uniqueness_input, sequence_length_input,
vsession_duration_input, ip_type_input, num_sessions_input, num_users_input, num_unique_apis_input]
# Define your output
output = gr.outputs.Textbox(label="Analysis Result")
examples = [
[0.000721, 0.019527, 12.960905, 273, "default", 708.0, 486.0, 123.0],
[0.000112, 0.002958, 20.859897, 109, "default", 1152.0, 778.0, 48.0],
[0.003907, 0.005867, 20.262226, 5635, "alternative", 1288.0, 1186.0, 141.0],
[0.120327, 0.5, 26, 188, "default", 8.0, 1.0, 13.0],
[0.000544, 0.128842, 8.294118, 28, "alternative", 134.0, 102.0, 109.0],
[852.92925, 0.5, 2.0, 102352, "datacenter", 2.0, 1.0, 1.0],
[59.243, 0.8, 5.0, 17773, "datacenter", 3.0, 1.0, 4.0],
[0.754, 0.6666666666666666, 3.0, 136, "datacenter", 2.0, 1.0, 2.0],
[66.93485714285714, 0.4285714285714285, 7.0, 28113, "datacenter", 3.0, 1.0, 3.0]
]
# Define your Gradio interface
interface = gr.Interface(fn=analyze_data, inputs=Inputs,examples=examples, outputs=output, title="API Data Analysis~ Group No. 12",
description='''
Analyze API data using the specified inputs.
inter_api_access_duration_input: It is a numerical input represented by a number field. Users can enter the duration of inter API access in seconds.
api_access_uniqueness_input: It is a numerical input represented by a number field. Users can enter the level of uniqueness in API access.
sequence_length_input: It is a numerical input represented by a number field. Users can enter the length of the sequence in counts.
vsession_duration_input: It is a numerical input represented by a number field. Users can enter the duration of virtual sessions in minutes.
ip_type_input: It is a dropdown input with two choices ("default" and "alternative"). Users can select the type of IP address.
num_sessions_input: It is a numerical input represented by a number field. Users can enter the number of sessions.
num_users_input: It is a numerical input represented by a number field. Users can enter the number of users.
num_unique_apis_input: It is a numerical input represented by a number field. Users can enter the number of unique APIs.
''',
layout="horizontal",
verbose=True)
# Launch the interface
interface.launch()
|