| import os | |
| import requests | |
| import gradio as gr | |
| ENDPOINT_URL = os.getenv("ENDPOINT_URL") | |
| SYSTEM_PROMPT = os.getenv("SYSTEM_PROMPT") | |
| if not ENDPOINT_URL or not SYSTEM_PROMPT: | |
| raise ValueError("Set ENDPOINT_URL and SYSTEM_PROMPT env vars.") | |
| def build_prompt(sys_txt, usr_txt): | |
| usr_txt = usr_txt.replace('"', '') | |
| return f"<|system|>\n{sys_txt}\n<|user|>\nترجم النص الاتي: \"{usr_txt}\"\n<|assistant|>" | |
| def translate_to_arabic(text): | |
| try: | |
| prompt = build_prompt(SYSTEM_PROMPT, text) | |
| resp = requests.post(ENDPOINT_URL, json={"inputs": prompt}) | |
| resp.raise_for_status() | |
| data = resp.json() | |
| txt = data.get("generated_text") if isinstance(data, dict) else data[0].get("generated_text") | |
| return txt.strip() | |
| except: | |
| print("Talk to Admin") | |
| custom_theme = gr.themes.Soft(primary_hue="purple", secondary_hue= "purple") | |
| with gr.Blocks(theme=custom_theme) as iface: | |
| inp = gr.Textbox(label=None, lines=1, placeholder="Enter your text") | |
| btn = gr.Button("Translate", variant="primary") | |
| out = gr.Textbox(label=None, lines=1) | |
| btn.click(translate_to_arabic, inputs=inp, outputs=out) | |
| if __name__ == "__main__": | |
| iface.launch(share=True, max_threads=100) |