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()