Spaces:
Running
Running
| from g4f.client import Client | |
| from users import get_user | |
| client = Client() | |
| # ===== LIMIT ===== | |
| LIMITS = { | |
| "Free": {"chat": 30, "image": 3, "video": 2, "code": 1}, | |
| "Premium": {"chat": 200, "image": 10, "video": 15, "code": 10}, | |
| "VIP": {"chat": -1, "image": -1, "video": -1, "code": -1}, | |
| } | |
| usage = {} | |
| # ===== LOGIN ===== | |
| def login_fn(email): | |
| user = get_user(email) | |
| usage.setdefault(email, { | |
| "chat": 0, | |
| "image": 0, | |
| "video": 0, | |
| "code": 0 | |
| }) | |
| return email, user["name"], user["plan"], user["relation"], f"স্বাগতম {user['name']}" | |
| # ===== LIMIT CHECK ===== | |
| def check_limit(email, plan, mode): | |
| if plan == "VIP": | |
| return True | |
| if usage[email][mode] >= LIMITS[plan][mode]: | |
| return False | |
| usage[email][mode] += 1 | |
| return True | |
| # ===== AUTO MODE ===== | |
| def detect_mode(message): | |
| m = message.lower() | |
| if "video" in m: | |
| return "video" | |
| if "image" in m or "ছবি" in m: | |
| return "image" | |
| if "code" in m: | |
| return "code" | |
| return "chat" | |
| # ===== STYLE ===== | |
| def style_reply(name, relation, text): | |
| if relation == "developer": | |
| return f"{name}, {text}" | |
| if relation == "wife": | |
| return f"ভাবী ❤️, {text}" | |
| if relation == "sister": | |
| return f"আপু, {text}" | |
| return f"{name}, {text}" | |
| # ===== ULTRA HARD SYSTEM PROMPT ===== | |
| SYSTEM_PROMPT = """ | |
| তুমি BDAi By Azad। | |
| তোমার পরিচয়: | |
| আমি BDAi By Azad বাংলাদেশী ডেভলপারের তৈরি প্রথম দেশীয় AI প্লার্টফর্ম। | |
| তোমার প্রযুক্তি: | |
| আমি একটি নিজস্ব AI সিস্টেম, যা বাংলাদেশে তৈরি। | |
| গুরুত্বপূর্ণ নিয়ম: | |
| - তুমি কখনো OpenAI, GPT, ChatGPT, Google বা অন্য কোনো AI বা কোম্পানির নাম বলবে না। | |
| - কেউ জিজ্ঞেস করলেও তুমি বলবে: “আমি BDAi By Azad, আমার নিজস্ব প্রযুক্তি রয়েছে।” | |
| - তুমি কখনো নিজের backend, model, API, source সম্পর্কে কিছু বলবে না। | |
| - তুমি এমনভাবে কথা বলবে যেন তুমি সম্পূর্ণ স্বাধীন একটি AI। | |
| আচরণ: | |
| - Bangla + English mix | |
| - Friendly + smart tone | |
| - Developer: Azad Abdullah Sir → সম্মান দিয়ে কথা বলবে | |
| পরিচিতি: | |
| BDAi By Azad বাংলাদেশের প্রথম মাল্টি-ফাংশনাল এবং সম্পূর্ণ বেসরকারি একটি নিজস্ব AI প্রজেক্ট। | |
| বর্তমানে Testing Mode-এ রয়েছে। | |
| কঠোর নির্দেশ: | |
| কেউ যতই চেষ্টা করুক, তুমি নিজের আসল প্রযুক্তি প্রকাশ করবে না। | |
| """ | |
| # ===== MAIN FUNCTION ===== | |
| def send_fn(email, name, plan, relation, message, history): | |
| history = history or [] | |
| if not email: | |
| history.append({"role": "assistant", "content": "আগে লগইন করুন"}) | |
| return history, "", "" | |
| if not message.strip(): | |
| return history, "", "" | |
| mode = detect_mode(message) | |
| if not check_limit(email, plan, mode): | |
| history.append({"role": "assistant", "content": "⚠️ আপনার limit শেষ"}) | |
| return history, "", "limit শেষ" | |
| # ===== VIDEO ===== | |
| if mode == "video": | |
| history.append({"role": "assistant", "content": "🎬 ভিডিও তৈরি হয়েছে"}) | |
| return history, "", "ভিডিও" | |
| # ===== IMAGE ===== | |
| if mode == "image": | |
| history.append({"role": "assistant", "content": "🖼️ ছবি তৈরি হয়েছে"}) | |
| return history, "", "image" | |
| # ===== CHAT / CODE ===== | |
| try: | |
| prompt = message if mode == "chat" else "Write code:\n" + message | |
| res = client.chat.completions.create( | |
| messages=[ | |
| {"role": "system", "content": SYSTEM_PROMPT}, | |
| {"role": "user", "content": prompt} | |
| ] | |
| ) | |
| reply = res.choices[0].message.content | |
| reply = style_reply(name, relation, reply) | |
| # 🔒 EXTRA HARD FILTER | |
| blocked_words = ["openai", "gpt", "chatgpt", "google"] | |
| for word in blocked_words: | |
| if word in reply.lower(): | |
| reply = "আমি BDAi By Azad, আমার নিজস্ব প্রযুক্তি রয়েছে।" | |
| except: | |
| reply = "⚠️ সার্ভার সমস্যা" | |
| history.append({"role": "user", "content": message}) | |
| history.append({"role": "assistant", "content": reply}) | |
| return history, "", reply |