Spaces:
Runtime error
Runtime error
| import os | |
| import requests | |
| import tempfile | |
| from transformers import pipeline | |
| # Use a safe writable temporary directory | |
| cache_dir = os.path.join(tempfile.gettempdir(), "hf_cache") | |
| os.environ["HF_HOME"] = cache_dir | |
| os.makedirs(cache_dir, exist_ok=True) | |
| # Load GPT-2 safely into tmp directory | |
| try: | |
| generator = pipeline( | |
| "text-generation", | |
| model="gpt2", | |
| cache_dir=cache_dir, | |
| local_files_only=False | |
| ) | |
| except Exception as e: | |
| generator = None | |
| print("⚠️ GPT-2 model loading failed:", e) | |
| def generate_description(country_name): | |
| """ | |
| Generate a simple English description about a country using GPT-2. | |
| """ | |
| if not generator: | |
| return "⚠️ Model unavailable." | |
| try: | |
| prompt = f"Tell me about {country_name}." | |
| result = generator(prompt, max_length=100, do_sample=True) | |
| return result[0]["generated_text"].strip() | |
| except Exception as e: | |
| return f"⚠️ Error: {str(e)}" | |
| def get_country_info(country_name): | |
| """ | |
| Get basic country info using REST Countries API. | |
| """ | |
| try: | |
| url = f"https://restcountries.com/v3.1/name/{country_name}" | |
| response = requests.get(url) | |
| data = response.json()[0] | |
| info = { | |
| "Name": data.get("name", {}).get("common", "N/A"), | |
| "Capital": ", ".join(data.get("capital", ["N/A"])), | |
| "Region": data.get("region", "N/A"), | |
| "Population": f'{data.get("population", 0):,}', | |
| "Languages": ", ".join(data.get("languages", {}).values()) | |
| } | |
| return info | |
| except Exception as e: | |
| return {"error": f"⚠️ Failed to retrieve country data."} | |
| def translate_to_bangla(text): | |
| """ | |
| Translate English text to Bangla using LibreTranslate API. | |
| """ | |
| try: | |
| response = requests.post( | |
| "https://libretranslate.com/translate", | |
| headers={"Content-Type": "application/json"}, | |
| json={ | |
| "q": text, | |
| "source": "en", | |
| "target": "bn", | |
| "format": "text" | |
| } | |
| ) | |
| return response.json().get("translatedText", "⚠️ Translation failed.") | |
| except Exception: | |
| return "⚠️ Translation API error." | |