sayedM's picture
Update app.py
ba38597
raw
history blame
1.73 kB
import base64
import io
import cv2
import requests
import json
import gradio as gr
# Define a function to call the API and get the results
import os
# Accessing a specific environment variable
api_key = os.environ.get('PXiVision')
# Checking if an environment variable exists
if 'PXiVision' in os.environ:
api_key = os.environ['PXiVision']
else:
print("API_KEY environment variable is not set.")
def get_results(image):
threshold=0.5
# 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()
# 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 the values as a list
return [firstName, secondName, address1, address2, nationalIdNumber, timeOfResponse, requestInfo]
# Define the input and output components for Gradio
image_input = gr.inputs.Image()
output_labels = ["First Name", "Second Name", "Address 1", "Address 2", "National ID Number", "Time of Response", "Request Info"]
output_component = gr.outputs.Label(num_top_classes=len(output_labels), labels=output_labels)
# Launch the Gradio interface
gr.Interface(fn=get_results, inputs=image_input, outputs=output_component).launch()