Spaces:
Sleeping
Sleeping
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) |