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."