sayedM's picture
Create app.py
d5080b5
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)