import base64 import io import cv2 import requests import json import gradio as gr import os from PIL import Image # Accessing a specific environment variable api_key = os.environ.get('PXiVision') # Checking if the environment variable exists if not api_key: print("PXiVision environment variable is not set.") exit() # Define a function to call the API and get the results def get_results(image): threshold = 0.5 # Convert the NumPy array to PIL image image = Image.fromarray(image) # Convert the image to base64 string with io.BytesIO() as output: image.save(output, format="JPEG") base64str = base64.b64encode(output.getvalue()).decode("utf-8") # Prepare the payload payload = json.dumps({"base64str": base64str, "UID": "huggingfacetestsayed"}) # Send the request to the API response = requests.put(api_key, data=payload) # Parse the JSON response data = response.json() # data = json.loads(data) # Access the values num = data['num'] char = data['char'] timeOfResponse = data['time'] requestInfo = data['info'] return [num, char, timeOfResponse, requestInfo] # Define the input component for Gradio image_input = gr.inputs.Image() # Adjust the shape according to your requirements # Define the output components for Gradio output_components = [] for label in ["Numbers", "char", "Time of Response", "Request Info"]: output_components.append(gr.outputs.Textbox(label=label)) # Launch the Gradio interface gr.Interface(fn=get_results,examples=["test.jpg"], inputs=image_input, outputs=output_components).launch(share=False)