Spaces:
Paused
Paused
| # import gradio as gr | |
| # import numpy as np | |
| # import cv2 as cv | |
| # import requests | |
| # import time | |
| # import os | |
| # host = os.environ.get("host") | |
| # code = os.environ.get("code") | |
| # model_llm = os.environ.get("model") | |
| # content = os.environ.get("content") | |
| # state = os.environ.get("state") | |
| # system = os.environ.get("system") | |
| # auth = os.environ.get("auth") | |
| # data = None | |
| # model = None | |
| # image = None | |
| # prediction = None | |
| # labels = None | |
| # print('START') | |
| # np.set_printoptions(suppress=True) | |
| # data = np.ndarray(shape=(1, 224, 224, 3), dtype=np.float32) | |
| # with open("labels.txt", "r") as file: | |
| # labels = file.read().splitlines() | |
| # messages = [ | |
| # {"role": "system", "content": system} | |
| # ] | |
| # def classify(UserInput, Image, Textbox2, Textbox3): | |
| # if Textbox3 == code: | |
| # print("Image: ", Image) | |
| # if Image is not None: | |
| # output = [] | |
| # image_data = np.array(Image) | |
| # image_data = cv.resize(image_data, (224, 224)) | |
| # image_array = np.asarray(image_data) | |
| # normalized_image_array = (image_array.astype(np.float32) / 127.0) - 1 | |
| # data[0] = normalized_image_array | |
| # import tensorflow as tf | |
| # model = tf.keras.models.load_model('keras_model.h5') | |
| # prediction = model.predict(data) | |
| # max_label_index = None | |
| # max_prediction_value = -1 | |
| # print('Prediction') | |
| # Textbox2 = Textbox2.replace("[", "").replace("]", "").replace("'", "") | |
| # Textbox2 = Textbox2.split(",") | |
| # Textbox2_edited = [x.strip() for x in Textbox2] | |
| # Textbox2_edited = list(Textbox2_edited) | |
| # Textbox2_edited.append(UserInput) | |
| # messages.append({"role": "user", "content": UserInput}) | |
| # for i, label in enumerate(labels): | |
| # prediction_value = float(prediction[0][i]) | |
| # rounded_value = round(prediction_value, 2) | |
| # print(f'{label}: {rounded_value}') | |
| # if prediction_value > max_prediction_value: | |
| # max_label_index = i | |
| # max_prediction_value = prediction_value | |
| # if max_label_index is not None: | |
| # max_label = labels[max_label_index].split(' ', 1)[1] | |
| # max_rounded_prediction = round(max_prediction_value, 2) | |
| # print(f'Maximum Prediction: {max_label} with a value of {max_rounded_prediction}') | |
| # time.sleep(1) | |
| # if max_rounded_prediction > 0.5: | |
| # print("\nWays to dispose of this waste: " + max_label) | |
| # messages.append({"role": "user", "content": content + " " + max_label}) | |
| # headers = { | |
| # "Content-Type": "application/json", | |
| # "Authorization": f"Bearer {auth}" | |
| # } | |
| # response = requests.post(host, headers=headers, json={ | |
| # "messages": messages, | |
| # "model": model_llm | |
| # }).json() | |
| # reply = response["choices"][0]["message"]["content"] | |
| # messages.append({"role": "assistant", "content": reply}) | |
| # output.append({"Mode": "Image", "type": max_label, "prediction_value": max_rounded_prediction, "content": reply}) | |
| # elif max_rounded_prediction < 0.5: | |
| # output.append({"Mode": "Image", "type": "Not predictable", "prediction_value": max_rounded_prediction, "content": "Seems like the prediction rate is too low due to that won't be able to predict the type of material. Try again with a cropped image or different one."}) | |
| # return output | |
| # else: | |
| # output = [] | |
| # Textbox2 = Textbox2.replace("[", "").replace("]", "").replace("'", "") | |
| # Textbox2 = Textbox2.split(",") | |
| # Textbox2_edited = [x.strip() for x in Textbox2] | |
| # Textbox2_edited = list(Textbox2_edited) | |
| # Textbox2_edited.append(UserInput) | |
| # for i in Textbox2_edited: | |
| # messages.append( | |
| # {"role": "user", "content": i} | |
| # ) | |
| # print("messages after appending:", messages) | |
| # time.sleep(1) | |
| # messages.append({"role": "user", "content": UserInput}) | |
| # headers = { | |
| # "Content-Type": "application/json", | |
| # "Authorization": f"Bearer {auth}" | |
| # } | |
| # response = requests.post(host, headers=headers, json={ | |
| # "messages": messages, | |
| # "model": model_llm | |
| # }).json() | |
| # reply = response["choices"][0]["message"]["content"] | |
| # messages.append({"role": "assistant", "content": reply}) | |
| # output.append({"Mode": "Chat", "content": reply}) | |
| # return output | |
| # else: | |
| # return "Unauthorized" | |
| # user_inputs = [ | |
| # gr.Textbox(label="User Input", type="text"), | |
| # gr.Image(), | |
| # gr.Textbox(label="Textbox2", type="text"), | |
| # gr.Textbox(label="Textbox3", type="password") | |
| # ] | |
| # iface = gr.Interface( | |
| # fn=classify, | |
| # inputs=user_inputs, | |
| # outputs=gr.outputs.JSON(), | |
| # title="Classifier", | |
| # ) | |
| # iface.launch() | |
| # import gradio as gr | |
| # import numpy as np | |
| # import cv2 as cv | |
| # import requests | |
| # import time | |
| # import os | |
| # host = os.environ.get("host") | |
| # code = os.environ.get("code") | |
| # model_llm = os.environ.get("model") | |
| # content = os.environ.get("content") | |
| # state = os.environ.get("state") | |
| # system = os.environ.get("system") | |
| # auth = os.environ.get("auth") | |
| # auth2 = os.environ.get("auth2") | |
| # data = None | |
| # model = None | |
| # image = None | |
| # prediction = None | |
| # labels = None | |
| # print('START') | |
| # np.set_printoptions(suppress=True) | |
| # data = np.ndarray(shape=(1, 224, 224, 3), dtype=np.float32) | |
| # with open("labels.txt", "r") as file: | |
| # labels = file.read().splitlines() | |
| # messages = [ | |
| # {"role": "system", "content": system} | |
| # ] | |
| # def classify(platform,UserInput, Image, Textbox2, Textbox3): | |
| # if Textbox3 == code: | |
| # if Image is not None: | |
| # output = [] | |
| # headers = { | |
| # "Authorization": f"Bearer {auth2}" | |
| # } | |
| # if platform == "wh": | |
| # get_image = requests.get(Image, headers=headers) | |
| # print(get_image.content) | |
| # elif platform == "web": | |
| # print("WEB") | |
| # else: | |
| # pass | |
| # image_data = np.array(get_image) | |
| # image_data = cv.resize(image_data, (224, 224)) | |
| # image_array = np.asarray(image_data) | |
| # normalized_image_array = (image_array.astype(np.float32) / 127.0) - 1 | |
| # data[0] = normalized_image_array | |
| # import tensorflow as tf | |
| # model = tf.keras.models.load_model('keras_model.h5') | |
| # prediction = model.predict(data) | |
| # max_label_index = None | |
| # max_prediction_value = -1 | |
| # print('Prediction') | |
| # Textbox2 = Textbox2.replace("[", "").replace("]", "").replace("'", "") | |
| # Textbox2 = Textbox2.split(",") | |
| # Textbox2_edited = [x.strip() for x in Textbox2] | |
| # Textbox2_edited = list(Textbox2_edited) | |
| # Textbox2_edited.append(UserInput) | |
| # messages.append({"role": "user", "content": UserInput}) | |
| # for i, label in enumerate(labels): | |
| # prediction_value = float(prediction[0][i]) | |
| # rounded_value = round(prediction_value, 2) | |
| # print(f'{label}: {rounded_value}') | |
| # if prediction_value > max_prediction_value: | |
| # max_label_index = i | |
| # max_prediction_value = prediction_value | |
| # if max_label_index is not None: | |
| # max_label = labels[max_label_index].split(' ', 1)[1] | |
| # max_rounded_prediction = round(max_prediction_value, 2) | |
| # print(f'Maximum Prediction: {max_label} with a value of {max_rounded_prediction}') | |
| # time.sleep(1) | |
| # if max_rounded_prediction > 0.5: | |
| # print("\nWays to dispose of this waste: " + max_label) | |
| # messages.append({"role": "user", "content": content + " " + max_label}) | |
| # headers = { | |
| # "Content-Type": "application/json", | |
| # "Authorization": f"Bearer {auth}" | |
| # } | |
| # response = requests.post(host, headers=headers, json={ | |
| # "messages": messages, | |
| # "model": model_llm | |
| # }).json() | |
| # reply = response["choices"][0]["message"]["content"] | |
| # messages.append({"role": "assistant", "content": reply}) | |
| # output.append({"Mode": "Image", "type": max_label, "prediction_value": max_rounded_prediction, "content": reply}) | |
| # elif max_rounded_prediction < 0.5: | |
| # output.append({"Mode": "Image", "type": "Not predictable", "prediction_value": max_rounded_prediction, "content": "Seems like the prediction rate is too low due to that won't be able to predict the type of material. Try again with a cropped image or different one."}) | |
| # return output | |
| # else: | |
| # output = [] | |
| # Textbox2 = Textbox2.replace("[", "").replace("]", "").replace("'", "") | |
| # Textbox2 = Textbox2.split(",") | |
| # Textbox2_edited = [x.strip() for x in Textbox2] | |
| # Textbox2_edited = list(Textbox2_edited) | |
| # Textbox2_edited.append(UserInput) | |
| # for i in Textbox2_edited: | |
| # messages.append( | |
| # {"role": "user", "content": i} | |
| # ) | |
| # print("messages after appending:", messages) | |
| # time.sleep(1) | |
| # messages.append({"role": "user", "content": UserInput}) | |
| # headers = { | |
| # "Content-Type": "application/json", | |
| # "Authorization": f"Bearer {auth}" | |
| # } | |
| # response = requests.post(host, headers=headers, json={ | |
| # "messages": messages, | |
| # "model": model_llm | |
| # }).json() | |
| # reply = response["choices"][0]["message"]["content"] | |
| # messages.append({"role": "assistant", "content": reply}) | |
| # output.append({"Mode": "Chat", "content": reply}) | |
| # return output | |
| # else: | |
| # return "Unauthorized" | |
| # user_inputs = [ | |
| # gr.Textbox(label="Platform", type="text"), | |
| # gr.Textbox(label="User Input", type="text"), | |
| # gr.Textbox(label="Image", type="text"), | |
| # gr.Textbox(label="Textbox2", type="text"), | |
| # gr.Textbox(label="Textbox3", type="password") | |
| # ] | |
| # iface = gr.Interface( | |
| # fn=classify, | |
| # inputs=user_inputs, | |
| # outputs=gr.outputs.JSON(), | |
| # title="Classifier", | |
| # ) | |
| # iface.launch() | |
| import gradio as gr | |
| import numpy as np | |
| import cv2 as cv | |
| import requests | |
| import io | |
| from PIL import Image | |
| import os | |
| import tensorflow as tf | |
| host = os.environ.get("host") | |
| code = os.environ.get("code") | |
| model_llm = os.environ.get("model") | |
| content = os.environ.get("content") | |
| state = os.environ.get("state") | |
| system = os.environ.get("system") | |
| auth = os.environ.get("auth") | |
| auth2 = os.environ.get("auth2") | |
| data = None | |
| np.set_printoptions(suppress=True) | |
| # Load the model outside of the function | |
| model = tf.keras.models.load_model('keras_model.h5') | |
| # Load labels from a file | |
| with open("labels.txt", "r") as file: | |
| labels = file.read().splitlines() | |
| messages = [ | |
| {"role": "system", "content": system} | |
| ] | |
| def classify(platform, UserInput, Images, Textbox2, Textbox3): | |
| if Textbox3 == code: | |
| imageData = None | |
| if Image is not None: | |
| output = [] | |
| headers = { | |
| "Authorization": f"Bearer {auth2}" | |
| } | |
| if platform == "wh": | |
| get_image = requests.get(Images, headers=headers) | |
| if get_image.status_code == 200: | |
| # print(get_image.content) | |
| # imageData = cv.imdecode(np.asarray(bytearray(get_image.content), dtype="uint8"), cv.IMREAD_COLOR) | |
| image_bytes = get_image.content | |
| image = Image.open(io.BytesIO(image_bytes)) | |
| image_data = cv.cvtColor(np.array(image), cv.COLOR_RGB2BGR) | |
| elif platform == "web": | |
| print("WEB") | |
| # Handle web case if needed | |
| else: | |
| pass | |
| image_data = cv.resize(image_data, (224, 224)) | |
| normalized_image_array = (image_data.astype(np.float32) / 127.0) - 1 | |
| data = np.zeros((1, 224, 224, 3)) | |
| data[0] = normalized_image_array | |
| prediction = model.predict(data) | |
| # image_data = cv.resize(imageData, (224, 224)) | |
| # normalized_image_array = (image_data.astype(np.float32) / 127.0) - 1 | |
| # data[0] = normalized_image_array | |
| # prediction = model.predict(data) | |
| max_label_index = None | |
| max_prediction_value = -1 | |
| print('Prediction') | |
| Textbox2 = Textbox2.replace("[", "").replace("]", "").replace("'", "") | |
| Textbox2 = Textbox2.split(",") | |
| Textbox2_edited = [x.strip() for x in Textbox2] | |
| Textbox2_edited = list(Textbox2_edited) | |
| Textbox2_edited.append(UserInput) | |
| messages.append({"role": "user", "content": UserInput}) | |
| for i, label in enumerate(labels): | |
| prediction_value = float(prediction[0][i]) | |
| rounded_value = round(prediction_value, 2) | |
| print(f'{label}: {rounded_value}') | |
| if prediction_value > max_prediction_value: | |
| max_label_index = i | |
| max_prediction_value = prediction_value | |
| if max_label_index is not None: | |
| max_label = labels[max_label_index].split(' ', 1)[1] | |
| max_rounded_prediction = round(max_prediction_value, 2) | |
| print(f'Maximum Prediction: {max_label} with a value of {max_rounded_prediction}') | |
| if max_rounded_prediction > 0.5: | |
| print("\nWays to dispose of this waste: " + max_label) | |
| messages.append({"role": "user", "content": content + " " + max_label}) | |
| headers = { | |
| "Content-Type": "application/json", | |
| "Authorization": f"Bearer {auth}" | |
| } | |
| response = requests.post(host, headers=headers, json={ | |
| "messages": messages, | |
| "model": model_llm | |
| }).json() | |
| reply = response["choices"][0]["message"]["content"] | |
| messages.append({"role": "assistant", "content": reply}) | |
| output.append({"Mode": "Image", "type": max_label, "prediction_value": max_rounded_prediction, "content": reply}) | |
| elif max_rounded_prediction < 0.5: | |
| output.append({"Mode": "Image", "type": "Not predictable", "prediction_value": max_rounded_prediction, "content": "Seems like the prediction rate is too low due to that won't be able to predict the type of material. Try again with a cropped image or different one"}) | |
| return output | |
| else: | |
| output = [] | |
| Textbox2 = Textbox2.replace("[", "").replace("]", "").replace("'", "") | |
| Textbox2 = Textbox2.split(",") | |
| Textbox2_edited = [x.strip() for x in Textbox2] | |
| Textbox2_edited = list(Textbox2_edited) | |
| Textbox2_edited.append(UserInput) | |
| for i in Textbox2_edited: | |
| messages.append({"role": "user", "content": i}) | |
| print("messages after appending:", messages) | |
| messages.append({"role": "user", "content": UserInput}) | |
| headers = { | |
| "Content-Type": "application/json", | |
| "Authorization": f"Bearer {auth}" | |
| } | |
| response = requests.post(host, headers=headers, json={ | |
| "messages": messages, | |
| "model": model_llm | |
| }).json() | |
| reply = response["choices"][0]["message"]["content"] | |
| messages.append({"role": "assistant", "content": reply}) | |
| output.append({"Mode": "Chat", "content": reply}) | |
| return output | |
| else: | |
| return "Unauthorized" | |
| user_inputs = [ | |
| gr.Textbox(label="Platform", type="text"), | |
| gr.Textbox(label="User Input", type="text"), | |
| gr.Textbox(label="Image", type="text"), | |
| gr.Textbox(label="Textbox2", type="text"), | |
| gr.Textbox(label="Textbox3", type="password") | |
| ] | |
| iface = gr.Interface( | |
| fn=classify, | |
| inputs=user_inputs, | |
| outputs=gr.outputs.JSON(), | |
| title="Classifier", | |
| ) | |
| iface.launch() | |