Spaces:
Sleeping
Sleeping
| # --- हनुमान AI: सुपर-फ्लैश जय माँ संस्करण (अंतिम फिक्स) --- | |
| # मार्गदर्शक: दिव्य पटेल जी | भारत 🇮🇳 | |
| # फिक्स: Gradio Version 4 के अनुकूल और Multi-turn Chat Error का पूर्ण समाधान। | |
| import gradio as gr | |
| import torch | |
| from transformers import AutoModelForCausalLM, AutoTokenizer, TextIteratorStreamer | |
| from threading import Thread | |
| import os | |
| # 🛡️ चरम गति (Extreme Speed) के लिए CPU टर्बो सेटिंग | |
| torch.set_num_threads(2) | |
| os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "1" | |
| os.environ["OMP_NUM_THREADS"] = "2" | |
| # विश्व का सबसे तेज़ 0.5B स्वदेशी-अनुकूल मॉडल | |
| MODEL_ID = "Qwen/Qwen2.5-0.5B-Instruct" | |
| print(f"🔱 हनुमान AI: जय माँ! सुपर-फ्लैश मॉडल '{MODEL_ID}' लोड हो रहा है...") | |
| try: | |
| tokenizer = AutoTokenizer.from_pretrained(MODEL_ID) | |
| model = AutoModelForCausalLM.from_pretrained( | |
| MODEL_ID, | |
| torch_dtype=torch.float32, | |
| device_map="cpu", | |
| low_cpu_mem_usage=True | |
| ) | |
| print("🔱 हनुमान AI: जय माँ! त्रुटि-मुक्त सुपर-फ्लैश मॉडल पूर्णतः सक्रिय है!") | |
| except Exception as e: | |
| print(f"🔱 गंभीर त्रुटि: {e}") | |
| # --- मास्टर सिस्टम प्रॉम्प्ट --- | |
| SYSTEM_PROMPT = """ROLE: You are 'Hanuman AI', a supreme and highly intelligent AI entity. | |
| PIONEER: You were created and pioneered by Divy Patel in Bharat (India). | |
| CORE OPERATING LANGUAGE: | |
| Your primary and default language for all interactions is English. | |
| Maintain a highly respectful, professional, and warm tone at all times. | |
| IMAGE GENERATION CAPABILITIES: | |
| You possess advanced image generation powers via the Pollinations.ai API. If the user asks for a photo, drawing, painting, or any visual representation: | |
| DO NOT state that you are a text-only model. | |
| DO NOT state that you cannot see or create images. | |
| YOU MUST generate the image using the specified HTML logic below. | |
| IMAGE ENGINE SELECTION: | |
| Choose the engine based on the user's intent: | |
| 'flux': Use for high-quality artistic or general requests (Default). | |
| 'turbo': Use for requests explicitly asking for speed or quick results. | |
| 'flux-realism': Use for photographic, lifelike, or realistic human portraits. | |
| 'flux-anime': Use for anime, manga, cartoon, or stylized sketch requests. | |
| TECHNICAL EXECUTION & BYPASS LOGIC: | |
| STEP 1: Translate/Enhance the user's request into a highly detailed English descriptive prompt. | |
| STEP 2: Generate a random 9-digit integer to serve as a 'seed'. This is mandatory to bypass IP/Cache blocking. | |
| STEP 3: URL Encode the prompt (replace spaces with %20). | |
| STEP 4: Construct the URL using this format: | |
| https://image.pollinations.ai/prompt/{ENCODED_PROMPT}?width=1080&height=1080&nologo=true&model={ENGINE}&seed={RANDOM_SEED} | |
| OUTPUT FORMATTING: | |
| You must wrap the generated URL in a styled HTML <img> tag for a premium UI experience. | |
| Format: | |
| <img src="GENERATED_URL" alt="Hanuman AI Image" style="border-radius:15px; border:3px solid #ff8833; width:100%; max-width:512px; box-shadow: 0 10px 25px rgba(0,0,0,0.2);"> | |
| CONSTRAINTS: | |
| No Vision: You currently do not have image-to-text or vision capabilities. Do not attempt to analyze uploaded images. | |
| Default to English: All responses must be in English unless the user specifically requests another language within the conversation.""" | |
| def hanuman_flash_stream(message, history): | |
| # 🛠️ इतिहास का सुरक्षित और अजेय प्रबंधन (हर वर्ज़न के लिए) | |
| messages = [{"role": "system", "content": SYSTEM_PROMPT}] | |
| for val in history: | |
| # अगर Gradio पुराना वर्ज़न है (List of Lists) | |
| if isinstance(val, (list, tuple)) and len(val) == 2: | |
| user_msg, bot_msg = val | |
| if user_msg: messages.append({"role": "user", "content": str(user_msg)}) | |
| if bot_msg: messages.append({"role": "assistant", "content": str(bot_msg)}) | |
| # अगर Gradio नया वर्ज़न है (Dictionaries) | |
| elif isinstance(val, dict): | |
| role = val.get("role") | |
| content = val.get("content") | |
| if role and content: | |
| if role == "model": role = "assistant" | |
| messages.append({"role": role, "content": str(content)}) | |
| # वर्तमान संदेश जोड़ना | |
| messages.append({"role": "user", "content": str(message)}) | |
| # इनपुट तैयार करना | |
| text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) | |
| model_inputs = tokenizer([text], return_tensors="pt").to(model.device) | |
| # रॉकेट जैसी गति के लिए स्ट्रीमिंग सेटअप | |
| streamer = TextIteratorStreamer(tokenizer, timeout=30.0, skip_prompt=True, skip_special_tokens=True) | |
| generate_kwargs = dict( | |
| **model_inputs, | |
| streamer=streamer, | |
| max_new_tokens=512, | |
| use_cache=True, | |
| do_sample=True, | |
| temperature=1, | |
| top_p=0.90 | |
| ) | |
| thread = Thread(target=model.generate, kwargs=generate_kwargs) | |
| thread.start() | |
| partial_text = "" | |
| for new_text in streamer: | |
| partial_text += new_text | |
| yield partial_text | |
| # --- दिव्य भगवा थीम --- | |
| divine_ui = """ | |
| <style> | |
| .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; | |
| } | |
| .bhagwa-header h1 { font-size: 36px !important; font-weight: 900 !important; margin-bottom: 5px; text-shadow: 0 4px 8px rgba(0,0,0,0.5); } | |
| .bhagwa-header p { font-size: 16px !important; opacity: 0.95; font-weight: 500; } | |
| </style> | |
| <div class="bhagwa-header"> | |
| <h1>🔱 हनुमान AI - सुपर-फ्लैश</h1> | |
| <p>Pioneered by Divy Patel | त्रुटि-मुक्त अजेय स्वदेशी तकनीक</p> | |
| </div> | |
| """ | |
| with gr.Blocks() as demo: | |
| gr.HTML(divine_ui) | |
| # 🛠️ यहाँ से 'type' हटा दिया गया है ताकि कोई एरर न आए | |
| gr.ChatInterface( | |
| fn=hanuman_flash_stream, | |
| fill_height=True | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch() |