| | import gradio as gr |
| | from gemini_client import ask_gemini, translate_to_bangla |
| | from country_info import get_country_info |
| |
|
| | def ai_tour_guide(country_name): |
| | if not country_name.strip(): |
| | return "⚠️ Please enter a country name.", "", "" |
| |
|
| | |
| | try: |
| | english_text = ask_gemini(f"Tell me about {country_name}") |
| | except Exception as e: |
| | english_text = f"⚠️ Gemini error: {e}" |
| |
|
| | |
| | try: |
| | bangla_text = translate_to_bangla(english_text) |
| | except Exception as e: |
| | bangla_text = f"⚠️ অনুবাদ ব্যর্থ হয়েছে: {e}" |
| |
|
| | |
| | try: |
| | info = get_country_info(country_name) |
| | if "error" in info: |
| | raise ValueError(info["error"]) |
| | stats = f"Capital: {info.get('capital', 'N/A')}, Population: {info.get('population', 'N/A')}" |
| | except Exception as e: |
| | stats = f"⚠️ Country info error: {e}" |
| |
|
| | return english_text, bangla_text, stats |
| |
|
| | with gr.Blocks() as demo: |
| | gr.Markdown("## 🌍 AI Tour Guide (English ➡️ Bangla)") |
| | country = gr.Textbox(label="Enter a country name") |
| | btn = gr.Button("Explore") |
| | |
| | out_en = gr.Markdown(label="🇬🇧 Description (English)") |
| | out_bn = gr.Markdown(label="🇧🇩 Description (Bengali)") |
| | stats = gr.Markdown(label="🗺️ Quick Facts") |
| |
|
| | btn.click(fn=ai_tour_guide, inputs=country, outputs=[out_en, out_bn, stats]) |
| |
|
| | demo.launch() |
| |
|