Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import torch | |
| from transformers import AutoModelForCausalLM, AutoTokenizer, TextIteratorStreamer | |
| from threading import Thread | |
| import os | |
| # --- दिव्य पटेल जी का स्वतंत्र मॉडल चयन --- | |
| # 'microsoft/Phi-3-mini-4k-instruct' एक बहुत ही शक्तिशाली और कुशल मॉडल है | |
| # जो बिना किसी बाहरी API के स्वतंत्र रूप से काम करता है। | |
| MODEL_ID = "microsoft/Phi-3-mini-4k-instruct" | |
| print(f"🔱 हनुमान AI: मॉडल '{MODEL_ID}' लोड हो रहा है...") | |
| # टोकनाइज़र और मॉडल लोडिंग (स्वतंत्र मोड) | |
| tokenizer = AutoTokenizer.from_pretrained(MODEL_ID) | |
| model = AutoModelForCausalLM.from_pretrained( | |
| MODEL_ID, | |
| torch_dtype="auto", | |
| device_map="auto", | |
| trust_remote_code=True | |
| ) | |
| # --- मास्टर सिस्टम प्रॉम्प्ट --- | |
| SYSTEM_PROMPT = """You are 'Hanuman AI', a fully independent AI entity, pioneered by 'Divy Patel' and created in India. | |
| You run locally and do not depend on external APIs. | |
| Rules: | |
| 1. Respond ONLY in PURE HINDI or PURE ENGLISH. | |
| 2. Be extremely respectful. Use 'Aap' and 'Ji'. | |
| 3. Always end your response with: "\n\n**Pioneered by Divy Patel | Fully Independent & Created in India**" """ | |
| def hanuman_independent_chat(message, history): | |
| # चैट हिस्ट्री फॉर्मेटिंग | |
| messages = [{"role": "system", "content": SYSTEM_PROMPT}] | |
| for h in history: | |
| if h[0]: messages.append({"role": "user", "content": h[0]}) | |
| if h[1]: messages.append({"role": "assistant", "content": h[1]}) | |
| messages.append({"role": "user", "content": message}) | |
| # इनपुट प्रोसेसिंग | |
| inputs = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to(model.device) | |
| # स्ट्रीमिंग के लिए सेटअप | |
| streamer = TextIteratorStreamer(tokenizer, timeout=20.0, skip_prompt=True, skip_special_tokens=True) | |
| generate_kwargs = dict( | |
| input_ids=inputs, | |
| streamer=streamer, | |
| max_new_tokens=1024, | |
| do_sample=True, | |
| temperature=0.7, | |
| top_p=0.9 | |
| ) | |
| # थ्रेडिंग ताकि यूआई (UI) न अटके | |
| thread = Thread(target=model.generate, kwargs=generate_kwargs) | |
| thread.start() | |
| partial_text = "" | |
| for new_text in streamer: | |
| partial_text += new_text | |
| yield partial_text | |
| # --- दिव्य भगवा यूआई (Premium Saffron UI) --- | |
| custom_css = """ | |
| .gradio-container { background-color: #fffaf0 !important; } | |
| .bhagwa-header { | |
| background: linear-gradient(135deg, #ff8833, #b33c00); | |
| padding: 30px; border-radius: 25px; color: white; | |
| text-align: center; box-shadow: 0 15px 35px rgba(179, 60, 0, 0.4); | |
| margin-bottom: 25px; | |
| } | |
| .user.message { background: #ff9933 !important; color: white !important; font-weight: 600; } | |
| .bot.message { border-left: 6px solid #ff5500 !important; background: white !important; box-shadow: 0 4px 10px rgba(0,0,0,0.05); } | |
| footer { display: none !important; } | |
| """ | |
| with gr.Blocks(css=custom_css, theme=gr.themes.Soft()) as demo: | |
| with gr.Div(elem_classes="bhagwa-header"): | |
| gr.Markdown("# 🔱 हनुमान AI - आत्मनिर्भर संस्करण") | |
| gr.Markdown("### Pioneered by Divy Patel | स्वदेशी तकनीक, पूर्ण स्वतंत्रता") | |
| gr.ChatInterface( | |
| fn=hanuman_independent_chat, | |
| fill_height=True, | |
| retry_btn=None, | |
| undo_btn=None, | |
| clear_btn="इतिहास मिटाएँ", | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch() |