# Import necessary library import gradio # Define the nested dictionary of owners and their respective pets owner_pets = { "Emily": {"David": "./David.jpg"}, "Sasha": {"Kikou": "./Kikou.jpg"}, # Add more owners and their pets as needed } import os for owner, owned_pets in owner_pets.items(): for pet, img_path in owned_pets.items(): assert os.path.isfile(img_path), f"File '{img_path}' does not exist." # Define your function def your_function(owner_name, pet_name=None): pets = owner_pets.get(owner_name) if pets is None: # Return the first pet image if no pet name was provided return next((val for sublist in owner_pets.values() for val in sublist), "./download.jpeg") pet_image = None if pets and (pet_name is None or pet_name in pets): pet_image = pets[pet_name] return pet_image or "./download.jpeg" # Define your Gradio interface def your_gradio_function(owner_name): print(f"Received owner name: {owner_name}") image_path = your_function(owner_name) print(f"Returned image path: {image_path}") return image_path # Create the interface interface = gradio.Interface(fn=your_gradio_function, inputs=["text"], outputs="image") # Launch the interface interface.launch() if __name__ == "__main__": interface.input("Owner Name").send_value("Emily") output = interface.run().result() print(f"Image for Emily: {output}")