Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import requests | |
| from PIL import Image | |
| import dwani | |
| import os | |
| import tempfile | |
| dwani.api_key = os.getenv("DWANI_API_KEY") | |
| dwani.api_base = os.getenv("DWANI_API_BASE_URL") | |
| # Language options as simple array | |
| language_options = ["english", "kannada", "hindi"] | |
| def visual_query(image, src_lang, tgt_lang, prompt): | |
| # Save PIL Image to a temporary file | |
| with tempfile.NamedTemporaryFile(suffix=".png", delete=False) as temp_file: | |
| image.save(temp_file.name, format="PNG") # Explicitly save as PNG | |
| temp_file_path = temp_file.name | |
| try: | |
| # Call the API with the file path | |
| result = dwani.Vision.caption( | |
| file_path=temp_file_path, | |
| query=prompt, | |
| src_lang=src_lang, | |
| tgt_lang=tgt_lang | |
| ) | |
| print(result) | |
| return result | |
| finally: | |
| # Clean up the temporary file | |
| os.unlink(temp_file_path) | |
| # Create Gradio interface | |
| iface = gr.Interface( | |
| fn=visual_query, | |
| inputs=[ | |
| gr.Image(type="pil", label="Upload Image"), | |
| gr.Dropdown( | |
| choices=language_options, | |
| label="Source Language", | |
| value="english", # Default value | |
| info="Select the source language for the query" | |
| ), | |
| gr.Dropdown( | |
| choices=language_options, | |
| label="Target Language", | |
| value="kannada", # Default value | |
| info="Select the target language for the response" | |
| ), | |
| gr.Textbox( | |
| label="Prompt", | |
| placeholder="e.g., describe the image" | |
| ) | |
| ], | |
| outputs=gr.JSON(label="API Response"), | |
| title="Visual Query API Interface", | |
| description="Upload an image, select source and target languages, and provide a prompt to query the visual API." | |
| ) | |
| # Launch the interface | |
| iface.launch() |