sayedM's picture
Update app.py
dc45708
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, "threshold": threshold})
# 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
firstName = data['firstName']
secondName = data['secondName']
address1 = data['address1']
address2 = data['address2']
nationalIdNumber = data['nationalIdNumber']
timeOfResponse = data['timeOfResponse']
requestInfo = data['requestInfo']
return [firstName, secondName, address1, address2, nationalIdNumber, 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 ["First Name", "Second Name", "Address 1", "Address 2", "National ID Number", "Time of Response", "Request Info"]:
output_components.append(gr.outputs.Textbox(label=label))
# Launch the Gradio interface
gr.Interface(fn=get_results, inputs=image_input,background="Nat_ID_Post_Linked_In2.png", outputs=output_components).launch(share=False)