import openai import gradio as gr import os # Set your OpenAI API key openai.api_key = os.getenv("OPENAI_API_KEY") def translate_dutch_to_hindi(dutch_text, model="gpt-4o-mini"): """ Translates Dutch text to both conversational and formal Hindi using OpenAI. Args: - dutch_text (str): The text in Dutch to be translated. - model (str): The model to use for translation (e.g., gpt-3.5-turbo, gpt-4-mini). Returns: - tuple: (Conversational Hindi Translation, Formal Hindi Translation) """ try: # Prompt for Conversational Hindi conversational_prompt = ( f"Translate the following Dutch text to Hindi in a conversational style used in Suriname country:\n\n" f"Dutch: {dutch_text}\n" f"Hindi:" ) # Prompt for Formal Hindi formal_prompt = ( f"Translate the following Dutch text to Hindi in a formal style:\n\n" f"Dutch: {dutch_text}\n" f"Hindi:" ) # OpenAI API call for Conversational Hindi conversational_response = openai.chat.completions.create( model=model, messages=[ {"role": "system", "content": "You are a translator converting dutch text to conversational hindi just like two common people talking between them."}, {"role": "user", "content": conversational_prompt} ], temperature=0.5 ) conversational_hindi = conversational_response.choices[0].message.content # OpenAI API call for Formal Hindi formal_response = openai.chat.completions.create( model=model, messages=[ {"role": "system", "content": "You are a professional translator."}, {"role": "user", "content": formal_prompt} ], temperature=0.5 ) formal_hindi = formal_response.choices[0].message.content return conversational_hindi, formal_hindi except openai.OpenAIError as e: # Corrected exception class error_message = f"An error occurred: {e}" return error_message, error_message # Define the Gradio interface def gradio_interface(dutch_text): conversational_hindi, formal_hindi = translate_dutch_to_hindi(dutch_text) return conversational_hindi, formal_hindi # Create the Gradio app with gr.Blocks() as app: gr.Markdown("## Dutch to Hindi Translator") gr.Markdown("Enter Dutch text below and click 'Translate' to see both Conversational and Formal Hindi translations.") # Input text box for Dutch text input_text = gr.Textbox(label="Enter Dutch Text", placeholder="Type Dutch text here...") # Output text boxes for Conversational and Formal Hindi output_conversational = gr.Textbox(label="Conversational Hindi", placeholder="Conversational Hindi translation will appear here...") output_formal = gr.Textbox(label="Formal Hindi", placeholder="Formal Hindi translation will appear here...") # Translate button translate_button = gr.Button("Translate") # Button click event translate_button.click( fn=gradio_interface, inputs=[input_text], outputs=[output_conversational, output_formal] ) # Launch the app if __name__ == "__main__": app.launch()