Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import csv | |
| import gemini | |
| import base64 | |
| import httpx | |
| # Load the protected-birds.txt file into a dictionary | |
| protected_birds_dict = {} | |
| with open('protected-birds.txt', 'r') as txtfile: | |
| for line in txtfile: | |
| bird, confidence = line.strip().split(',') | |
| protected_birds_dict[bird.lower()] = float(confidence) | |
| # Initialize the gemini client | |
| def init_client(api_key): | |
| return gemini.Client(api_key) | |
| # Function to check if the feather is from a protected bird | |
| def check_feather(image_url, api_key): | |
| # Load the image | |
| image_media_type = "image/jpeg" | |
| image_data = base64.b64encode(httpx.get(image_url).content).decode("utf-8") | |
| # Make a prediction | |
| client = init_client(api_key) | |
| response = client.predict( | |
| model_id="text-bison-001", | |
| inputs={ | |
| "image": image_data, | |
| "question": "Describe this image." | |
| } | |
| ) | |
| model_predictions = response["candidates"][0]["output"] | |
| # Check if the feather is from a protected bird | |
| protected = False | |
| protected_birds_list = [] | |
| for bird, confidence in protected_birds_dict.items(): | |
| if bird in model_predictions.lower(): | |
| protected = True | |
| protected_birds_list.append([bird, confidence, model_predictions]) | |
| if protected: | |
| # Display the results | |
| gr.Interface(fn=lambda: protected_birds_list, inputs="text", outputs="text").launch() | |
| user_verification = gr.inputs.Checkbox(label="Verify the results") | |
| if user_verification: | |
| # Output the result in a table format | |
| gr.Interface(fn=lambda: protected_birds_list, inputs=user_verification, outputs="html").launch() | |
| # Prompt user to make a report | |
| gr.Interface(fn=lambda: "If confident, report to: https://www.fws.gov/contact-us", inputs=user_verification, outputs="text").launch() | |
| else: | |
| gr.Interface(fn=lambda: "No protected bird detected", inputs=image_url, outputs="text").launch() | |
| return protected, protected_birds_list | |
| # Gradio interface | |
| image_url = gr.inputs.Textbox() | |
| api_key = gr.inputs.Textbox(label="Google API Key") | |
| gr.Interface(fn=check_feather, inputs=[image_url, api_key], outputs="text").launch() | |