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() # Adjust the shape according to your requirements output_component = gr.outputs.Label(num_top_classes=len(output_labels)) # Launch the Gradio interface gr.Interface(fn=get_results, inputs=image_input, outputs=output_component).launch()