Translation_App / app.py
FaizaRiaz's picture
Create app.py
03b46a5 verified
import os
import gradio as gr
import requests
# Get GROQ API key from Hugging Face secret
GROQ_API_KEY = os.getenv("GROQ_API_KEY")
API_URL = "https://api.groq.com/openai/v1/chat/completions"
LANGUAGES = [
"Urdu", "Hindi", "Arabic", "Spanish", "French", "German",
"Chinese", "Japanese", "Korean", "Turkish", "Italian", "Russian"
]
def translate_text(text, target_language):
headers = {
"Authorization": f"Bearer {GROQ_API_KEY}",
"Content-Type": "application/json"
}
prompt = f"""Translate the following English text into {target_language}:
English: "{text}"
{target_language}:"""
payload = {
"model": "llama3-70b-8192",
"messages": [
{"role": "system", "content": "You are a helpful assistant that translates English into other languages."},
{"role": "user", "content": prompt}
],
"temperature": 0.3
}
try:
response = requests.post(API_URL, headers=headers, json=payload)
if response.status_code != 200:
return f"❌ API Error {response.status_code}: {response.text}"
result = response.json()
if "choices" in result:
return result["choices"][0]["message"]["content"].strip()
else:
return f"❌ Unexpected response format: {result}"
except Exception as e:
return f"❌ Exception occurred: {str(e)}"
# Gradio UI
with gr.Blocks() as demo:
gr.Markdown("## 🌍 English Text Translator using GROQ API")
gr.Markdown("Translate English into your chosen language.")
with gr.Row():
input_text = gr.Textbox(label="✍️ Enter English text", lines=4, placeholder="Type something...")
output_text = gr.Textbox(label="πŸ”€ Translated Text", lines=4)
language_dropdown = gr.Dropdown(choices=LANGUAGES, label="🌐 Choose Target Language")
translate_btn = gr.Button("πŸ” Translate")
translate_btn.click(translate_text, inputs=[input_text, language_dropdown], outputs=output_text)
demo.launch()