File size: 2,262 Bytes
41073c3
e31c2f9
6bf08a0
f97694d
e31c2f9
6bf08a0
 
 
 
41073c3
6bf08a0
41073c3
 
 
 
6bf08a0
 
41073c3
 
 
6bf08a0
41073c3
 
 
 
 
 
 
6bf08a0
0a22369
41073c3
 
 
6bf08a0
41073c3
6bf08a0
0a22369
f97694d
 
 
6bf08a0
f97694d
e31c2f9
f97694d
 
 
 
 
 
 
 
 
 
e31c2f9
41073c3
 
6bf08a0
41073c3
f97694d
 
 
41073c3
f97694d
 
41073c3
 
 
 
 
 
 
 
 
 
 
6bf08a0
41073c3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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."