import requests import json import gradio as gr import os # Define the function to call the API def translate(text, lang): if not lang: return "Error: Please select a translation language." if not text: return "Error: Please enter text for translation." url = os.getenv("TRANSLATION_URL") payload = json.dumps({ "text": text, "lang": lang # Add language to the payload }) headers = { 'Content-Type': 'application/json' } # Make the API request response = requests.request("POST", url, headers=headers, data=payload) # Parse the response and handle potential errors response_data = response.json() # Parse the JSON response if "errors" in response_data: lang_error = response_data["errors"].get("lang", ["An error occurred"])[0] return f"Error: {lang_error}" # Return the error message translation = response_data.get("translation", "Translation not found") # Get the translation return translation # Create the Gradio interface with a textbox and dropdown textbox = gr.Textbox(placeholder="Enter text to translate...") dropdown = gr.Dropdown(choices=["", "english-twi", "twi-english"], label="Select Translation Language", value="") # Include a default empty option # Pass both inputs to the translate function demo = gr.Interface(fn=translate, inputs=[textbox, dropdown], outputs="text") # Launch the Gradio app demo.launch()