Patel Traders commited on
Commit
0d61269
·
verified ·
1 Parent(s): 5eb83ac

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +53 -92
app.py CHANGED
@@ -1,91 +1,58 @@
1
- # --- 🔱 हनुमान AI: स्वदQwen संस ---
2
  # मार्गदर्शक: दिव्य पटेल जी | भारत 🇮🇳
3
- # मॉडल: Pateltraders55455/Qwen3.5-397B-A17B
4
- # विशेषता: Live Streaming, Transformers Optimization & Custom Bhagwa UI
5
 
6
  import gradio as gr
7
- import torch
8
- from transformers import AutoModelForCausalLM, AutoTokenizer, TextIteratorStreamer
9
- from threading import Thread
10
- import os
11
 
12
- # 🛡️ CPU/RAM को क्रैश े से बचान के लिए थ्रे्स सेट
13
- os.environ["OMP_NUM_THREADS"] = "4"
14
- torch.set_num_threads(4)
15
-
16
- # 🚀 दिव्य जी की अपनी रिपॉजिटरी
17
- HF_REPO = "Pateltraders55455/Qwen3.5-397B-A17B"
18
-
19
- print(f"🔱 हनुमान AI जागृत हो रहा है... '{HF_REPO}' लोड किया जा रहा है...")
20
 
 
 
21
  try:
22
- # Qwen े लि अतयंत सुरक्षि डिंग िधि
23
- tokenizer = AutoTokenizer.from_pretrained(HF_REPO)
24
- model = AutoModelForCausalLM.from_pretrained(
25
- HF_REPO,
26
- device_map="auto", # उपलब्ध हार्डवेयर के अनुसार स्वयं सेट हो जाएगा
27
- torch_dtype="auto", # मेमोरी बचाने के लिए स्वचालित डेटा टाइप
28
- low_cpu_mem_usage=True # RAM को ओवरलोड होने से बचाएगा
29
- )
30
- print("🔱 हनुमान AI: अजेय मॉडल सफलतापूर्वक लोड हो गया है!")
31
  except Exception as e:
32
- print(f"🔱 भीर त्रुटि: {e}")
33
- tokenizer, model = None, None
34
 
35
- # ============================================================================
36
- # रेशन फंक्शन (Live Streaming थ)
37
- # ============================================================================
38
- def generate_divine_text(prompt, max_tokens, temperature, top_k):
39
  if not prompt.strip():
40
- yield "Please enter a prompt to start."
41
  return
42
-
43
- if model is None or tokenizer is None:
44
- yield "🔱 सिस्टम त्रुटि: मॉडल लोड नहीं हो सका। कृपया स्पेस के लॉग्स (Logs) की जाँच करें।"
45
  return
46
 
47
- # Qwen के लिए सिस्टम निर्देश
48
- messages = [
49
- {"role": "system", "content": "You are 'Hanuman AI', a supreme intelligence model pioneered by Divy Patel in Bharat. You must provide clean, accurate, and highly detailed responses."},
50
- {"role": "user", "content": prompt}
51
- ]
52
-
53
  try:
54
- # आधुनिक Qwen चैट टे्पलेट
55
- text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
56
- except:
57
- # यदि मॉडधारण क्स्-मॉडल हु
58
- text = prompt
59
-
60
- model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
61
-
62
- # लाइव स््रीमिंग लिए स्ट्ीमर (Streamer) अस्त्र
63
- streamer = TextIteratorStreamer(tokenizer, timeout=30.0, skip_prompt=True, skip_special_tokens=True)
64
-
65
- top_k_val = int(top_k) if top_k > 0 else 50
66
-
67
- # जनरेशन के पैरामीटर्स
68
- generate_kwargs = dict(
69
- model_inputs,
70
- streamer=streamer,
71
- max_new_tokens=int(max_tokens),
72
- temperature=float(temperature),
73
- top_k=top_k_val,
74
- do_sample=True if temperature > 0.1 else False
75
- )
76
-
77
- # पीछे बैकग्राउंड में मॉडल को सोचने का आदेश देना
78
- t = Thread(target=model.generate, kwargs=generate_kwargs)
79
- t.start()
80
-
81
- # 🔄 जैसे-जैसे शब्द आएँगे, यूआई पर लाइव दिखेंगे
82
- accumulated_text = ""
83
- for new_token in streamer:
84
- accumulated_text += new_token
85
- yield accumulated_text
86
 
87
  # ============================================================================
88
- # 🔱 दिव्य भगवा यूआई (Gradio Interface)
89
  # ============================================================================
90
  divine_ui = """
91
  <style>
@@ -100,46 +67,40 @@ divine_ui = """
100
  .bhagwa-header p { font-size: 16px !important; opacity: 0.95; font-weight: 500; margin-top: 10px; }
101
  </style>
102
  <div class="bhagwa-header">
103
- <h1>🔱 Hanuman AI (Qwen Edition)</h1>
104
- <p>Pioneered by Divy Patel | Bharat 🇮🇳 | Hosted on Private Space</p>
105
  </div>
106
  """
107
 
108
- with gr.Blocks(title="Hanuman AI", theme=gr.themes.Soft()) as demo:
109
  gr.HTML(divine_ui)
110
 
111
  with gr.Row():
112
  with gr.Column(scale=2):
113
  prompt_input = gr.Textbox(
114
  label="Your Prompt",
115
- placeholder="Ask me to write a story, write code, or answer a question...",
116
- lines=4
117
  )
118
-
119
- with gr.Row():
120
- max_tokens_slider = gr.Slider(minimum=50, maximum=4096, value=512, step=10, label="Max Tokens")
121
- temperature_slider = gr.Slider(minimum=0.1, maximum=2.0, value=0.7, step=0.05, label="Temperature")
122
- top_k_slider = gr.Slider(minimum=0, maximum=100, value=50, step=5, label="Top-K (0 = disabled)")
123
-
124
- generate_btn = gr.Button("Generate Request", variant="primary")
125
 
126
  with gr.Column(scale=3):
127
  output_box = gr.Textbox(
128
- label="Generated Output",
129
- lines=16,
130
  show_copy_button=True
131
  )
132
 
133
- # इवेंट बाइंडिंग (Live Streaming Yield के लिए)
134
  generate_btn.click(
135
- fn=generate_divine_text,
136
- inputs=[prompt_input, max_tokens_slider, temperature_slider, top_k_slider],
137
  outputs=output_box
138
  )
139
 
140
- gr.Markdown(f"""
141
  ---
142
- **Model:** `[ {HF_REPO} ]` | **Architecture:** Qwen 3.5 | **Status:** Active & Ready
143
  """)
144
 
145
  if __name__ == "__main__":
 
1
+ # --- 🔱 हनुमान AI: अजय फ्र्रॉक्सी (Zero Storage, Zero Cost) ---
2
  # मार्गदर्शक: दिव्य पटेल जी | भारत 🇮🇳
3
+ # तकनीक: Space-to-Space Free API Proxy
4
+ # : कोई ट्रांसफॉर्मर्स नहीं, 0% स्टोरेज, पूर्णतः मुफ़्त और प्राइवेट
5
 
6
  import gradio as gr
7
+ from gradio_client import Client
 
 
 
8
 
9
+ print("🔱 हनुमान AI: मुफ़त औ अजय परॉक्र्वर जागृत हो है...")
 
 
 
 
 
 
 
10
 
11
+ # 🚀 दिव्य जी का मास्टरस्ट्रोक: Gradio Client
12
+ # हम सीधे मुफ़्त Qwen Space का उपयोग कर रहे हैं। कोई पेड API नहीं!
13
  try:
14
+ # यह सीधपब्लि पेसे जड़ेगा, बिना पैसे दिए।
15
+ client = Client("Qwen/Qwen3-Coder-WebDev")
16
+ print("🔱 हनुमान AI: महा-सर्वर से मुफ़्त संपर्क स्थापित हो गया है!")
 
 
 
 
 
 
17
  except Exception as e:
18
+ print(f"🔱 ्क त्रुटि: {e}")
19
+ client = None
20
 
21
+ def generate_divine_proxy(prompt):
22
+ """बिना मॉडल डाउलोडिए मुफ़ स्पेस से जवाब लानला इंजन"""
 
 
23
  if not prompt.strip():
24
+ yield "Please enter a prompt..."
25
  return
26
+
27
+ if client is None:
28
+ yield "🔱 सिस्टम त्रुटि: महा-सर्वर से संपर्क नहीं हो सका।"
29
  return
30
 
31
+ # सिस्टम के अजेय निर्देश
32
+ system_prompt = "You are 'Hanuman Coder', a supreme AI pioneered by Divy Patel in Bharat (India). Provide clean, highly optimized code."
33
+
 
 
 
34
  try:
35
+ # ⚡ दिव्य जी खोजी गई cURL कांड क आधार पर 2 पैरामीर भेजना
36
+ # .submit() का उपयोग करने से लाइव स्ट्रीमिंग (Live Streaming) प्राप्त होगी
37
+ job = client.submit(
38
+ prompt, # पहला ेटा:पका प्रश्न
39
+ system_prompt, # दूसरा डेटा: सिस्टम प्रॉम्प्ट
40
+ api_name="/generate_code"
41
+ )
42
+
43
+ # लाइव डे यूआई भेजना
44
+ for result in job:
45
+ # चूँकि रिजल्ट एक स्ट्रिंग या टपल हो सकता है, हम इसे सुरक्षित रूप से निकालते हैं
46
+ if isinstance(result, (tuple, list)):
47
+ yield result[0]
48
+ else:
49
+ yield result
50
+
51
+ except Exception as e:
52
+ yield f"🔱 तकनीकी बाधा: {str(e)}"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
 
54
  # ============================================================================
55
+ # 🔱 दिव्य भगवा यूआई (English UI as requested)
56
  # ============================================================================
57
  divine_ui = """
58
  <style>
 
67
  .bhagwa-header p { font-size: 16px !important; opacity: 0.95; font-weight: 500; margin-top: 10px; }
68
  </style>
69
  <div class="bhagwa-header">
70
+ <h1>🔱 Hanuman Coder (Free Proxy API)</h1>
71
+ <p>Pioneered by Divy Patel | Bharat 🇮🇳 | Zero Cost, Zero Storage</p>
72
  </div>
73
  """
74
 
75
+ with gr.Blocks(title="Hanuman Proxy", theme=gr.themes.Soft()) as demo:
76
  gr.HTML(divine_ui)
77
 
78
  with gr.Row():
79
  with gr.Column(scale=2):
80
  prompt_input = gr.Textbox(
81
  label="Your Prompt",
82
+ placeholder="Ask your coding questions here... (e.g., Build a React app)",
83
+ lines=5
84
  )
85
+ generate_btn = gr.Button("Generate Code", variant="primary")
 
 
 
 
 
 
86
 
87
  with gr.Column(scale=3):
88
  output_box = gr.Textbox(
89
+ label="Hanuman AI Response (Live Stream)",
90
+ lines=15,
91
  show_copy_button=True
92
  )
93
 
94
+ # लाइव जनरशन के लिए इवेंट बाइंडिंग
95
  generate_btn.click(
96
+ fn=generate_divine_proxy,
97
+ inputs=[prompt_input],
98
  outputs=output_box
99
  )
100
 
101
+ gr.Markdown("""
102
  ---
103
+ **Architecture:** Free Gradio Client Proxy | **Status:** Connected to Main Server | **Storage Used:** ~0 GB
104
  """)
105
 
106
  if __name__ == "__main__":