translate_hindi / app.py
Redmind's picture
Update app.py
5a9f41f verified
raw
history blame contribute delete
3.34 kB
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()