Patel Traders commited on
Commit
90f4299
·
verified ·
1 Parent(s): 31dcc18

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +51 -79
app.py CHANGED
@@ -1,127 +1,99 @@
1
-
2
- # --- 🔱 हनुमिज़न: पूर् मल्टीमॉडयूआई (Vision + Text) ---
3
- # ार्गदर्शक: दिव्य पटेल जी | भार🇮🇳
4
- # मॉडल: Qwen/Qwen2-VL-2B-Instruct
5
- # विशेषता: Live Chat, Image Upload, Text Input, CPU Optimized
6
 
7
  import gradio as gr
8
  import torch
9
- from transformers import Qwen2VLForConditionalGeneration, AutoProcessor, TextIteratorStreamer
10
- from qwen_vl_utils import process_vision_info
11
  from threading import Thread
12
  import os
13
 
14
- print("🔱 हनुम विज़न: मलटीमॉडसर्वर जागृत हो रहा है...")
15
 
16
- # 🛡️ CPU/RAM को क्रैश होने से बचाने का महामंत्र
17
  os.environ["OMP_NUM_THREADS"] = "4"
18
  torch.set_num_threads(4)
19
 
20
- # 🚀 िजन मॉडल
21
- MODEL_ID = "Qwen/Qwen2-VL-2B-Instruct"
22
 
23
  try:
24
- print(f"🔱 '{MODEL_ID}' लोड किया जा रहा है... (CPU पर सुरक्षित रूप से)")
25
- model = Qwen2VLForConditionalGeneration.from_pretrained(
 
 
 
 
26
  MODEL_ID,
27
- device_map="cpu",
28
- torch_dtype=torch.float32,
29
- low_cpu_mem_usage=True
 
30
  )
31
- processor = AutoProcessor.from_pretrained(MODEL_ID)
32
- print("🔱 हनुमान विज़न: आँखें (Vision) और मस्तिष्क (Text) स्थापित हो गए हैं!")
33
  except Exception as e:
34
- print(f"🔱 लोडिंग त्रुटि: {e}")
35
- model, processor = None, None
36
-
37
- def hanuman_multimodal_chat(message, history):
38
- """यह इंजन टेक्स्ट और चित्र दोनों को एक साथ ग्रहण करेगा"""
39
- if model is None or processor is None:
40
- yield "🔱 सिस्टम त्रुटि: मॉडल लोड नहीं हो सका। कृपया लॉग्स की जाँच करें।"
41
- return
42
-
43
- # 1. Gradio UI से टेक्स्ट और अपलोड की गई फाइलें (Images) निकालना
44
- text_input = message.get("text", "")
45
- files = message.get("files", [])
46
-
47
- if not text_input.strip() and not files:
48
- yield "कृपया कुछ प्रश्न पूछें या कोई चित्र/डॉक्यूमेंट का स्क्रीनशॉट अपलोड करें।"
49
- return
50
 
51
- # 2. Qwen विज़न के लिए संदेश तैयार करना
52
- content = []
53
-
54
- # यदि आपने कोई चित्र अपलोड किया है
55
- if files:
56
- for file_path in files:
57
- content.append({
58
- "type": "image",
59
- "image": file_path # मॉडल सीधे फाइल को पढ़ लेगा
60
- })
61
 
62
- # यदि आपने कोई टेक्स्ट लिखा है
63
- if text_input:
64
- content.append({
65
- "type": "text",
66
- "text": text_input
67
- })
68
 
69
- # िस्टम निर्देश
70
  messages = [
71
- {"role": "system", "content": "You are 'Hanuman Vision', a supreme Multimodal AI pioneered by Divy Patel in Bharat (India). You can analyze images, documents, and code flawlessly."},
72
- {"role": "user", "content": content}
73
  ]
 
 
 
 
 
 
 
74
 
75
  try:
76
- # 3. चित्र और टेक्ट को प्ोसेसर में डालना
77
- text_prompt = processor.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
78
- image_inputs, video_inputs = process_vision_info(messages)
79
-
80
- inputs = processor(
81
- text=[text_prompt],
82
- images=image_inputs,
83
- videos=video_inputs,
84
- padding=True,
85
- return_tensors="pt"
86
- ).to(model.device)
87
 
88
- # 4. लाइव स्ट्रीमिंग (Live Streaming)
89
- streamer = TextIteratorStreamer(processor.tokenizer, timeout=120.0, skip_prompt=True, skip_special_tokens=True)
90
 
91
  generate_kwargs = dict(
92
  **inputs,
93
  streamer=streamer,
94
  max_new_tokens=1024,
95
  temperature=0.7,
 
96
  do_sample=True
97
  )
98
 
 
99
  t = Thread(target=model.generate, kwargs=generate_kwargs)
100
  t.start()
101
 
 
102
  accumulated_text = ""
103
  for new_token in streamer:
104
  accumulated_text += new_token
105
  yield accumulated_text
106
 
107
  except Exception as e:
108
- yield f"🔱 प्रेसि त्रुटि: {str(e)}"
109
 
110
  # ============================================================================
111
- # 🔱 ्य और पूरणतः का्यशील यूज़इंटरफ़ेस (Gradio ChatInterface)
112
  # ============================================================================
113
-
114
- # 'multimodal=True' करने से चैटबॉक्स में अपने आप 'चित्र अपलोड (Upload)' का बटन आ जाता है!
115
  demo = gr.ChatInterface(
116
- fn=hanuman_multimodal_chat,
117
- multimodal=True, # यही वह जादू है जो फोटो और डॉक्यूमेंट अपलोड करने देगा!
118
- title="🔱 Hanuman Vision AI",
119
- description="**Pioneered by Divy Patel | Bharat 🇮🇳**<br>यहाँ आप कोई भी चित्र, डॉक्यूमेंट का स्क्रीनशॉट अपलोड कर सकते हैं और उसके बारे में प्रश्न पूछ सकते हैं।",
120
- theme=gr.themes.Soft(primary_hue="orange"),
121
- textbox=gr.MultimodalTextbox(
122
- placeholder="यहाँ टेक्स्ट लिखें या 📎 बटन दबाकर चित्र अपलोड करें...",
123
- file_types=["image"], # चित्रों और स��क्रीनशॉट्स के लिए
124
- ),
125
  concurrency_limit=1
126
  )
127
 
 
1
+ # --- 🔱 वेदिका 3.5 फ्लैश: भारत का अपना शक्तिशाली 2B AI ---
2
+ # रचयित मार्गदर्शक: दिवय पजी | भारत 🇮🇳
3
+ # पैरमीटर्: 2 Billion (2B) | विशेषा: Ultra-Fast, RAM Safe
 
 
4
 
5
  import gradio as gr
6
  import torch
7
+ from transformers import AutoModelForCausalLM, AutoTokenizer, TextIteratorStreamer
 
8
  from threading import Thread
9
  import os
10
 
11
+ print("🔱 रत का अजेय AI 'ेदिका 3.5 फ्लैश' जागृत हो रहा है...")
12
 
13
+ # 🛡️ CPU को सुरक्षित रखने का मंत्र
14
  os.environ["OMP_NUM_THREADS"] = "4"
15
  torch.set_num_threads(4)
16
 
17
+ # 🚀 िव्य ी का अप स्वदेशी 2B मॉडल
18
+ MODEL_ID = "pateltraders55455/Vedika-3.5-flash"
19
 
20
  try:
21
+ print(f"🔱 '{MODEL_ID}' (2 Billion Parameters) लोड किया जा रहा है...")
22
+
23
+ # चूँकि यह 2B मॉडल है, यह मुफ़्त CPU पर सीधे ट्रांसफॉर्मर्स के माध्यम से
24
+ # बिना GGUF के भी मक्खन की तरह चल सकता है!
25
+ tokenizer = AutoTokenizer.from_pretrained(MODEL_ID, trust_remote_code=True)
26
+ model = AutoModelForCausalLM.from_pretrained(
27
  MODEL_ID,
28
+ device_map="cpu", # CPU पर चलेगा
29
+ torch_dtype=torch.float32, # सुरक्षित डेटा प्रकार
30
+ low_cpu_mem_usage=True, # रैम बचाने की तकनीक
31
+ trust_remote_code=True
32
  )
33
+ print("🔱 विजय! 'वेदिका 3.5 फ्लैश' 16GB रैम में सफलतापूर्वक स्थापित हो गया है!")
34
+
35
  except Exception as e:
36
+ print(f"🔱 मॉडोडिंग में त्रुटि (कृपया सुनिश्चित करें कि मॉडल रिपॉजिटरी में फाइलें मौजूद हैं): {e}")
37
+ model, tokenizer = None, None
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
 
39
+ def generate_vedika_magic(message, history):
40
+ """वेदिका 3.5 फ्लैश का तीव्र गति (Flash Speed) वाला इंजन"""
 
 
 
 
 
 
 
 
41
 
42
+ if model is None or tokenizer is None:
43
+ yield "🔱 सिस्टम त्रुटि: मॉडल लोड नहीं हो सका। कृपया अपनी रिपॉजिटरी की जाँच करें।"
44
+ return
 
 
 
45
 
46
+ # वेदिका के लिए कड़े निर्देश
47
  messages = [
48
+ {"role": "system", "content": "You are 'Vedika 3.5 Flash', an ultra-fast, 2 Billion parameter AI model created entirely by Divy Patel in Bharat (India). Always be highly intelligent, respectful, and proud of your Indian origin."},
 
49
  ]
50
+
51
+ # इतिहास (History) जोड़ना
52
+ for user_msg, ai_msg in history:
53
+ messages.append({"role": "user", "content": user_msg})
54
+ messages.append({"role": "assistant", "content": ai_msg})
55
+
56
+ messages.append({"role": "user", "content": message})
57
 
58
  try:
59
+ # ्रॉम्ट को तैयाकरना
60
+ text_prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
61
+ inputs = tokenizer([text_prompt], return_tensors="pt").to(model.device)
 
 
 
 
 
 
 
 
62
 
63
+ # लाइव स्ट्रीमिंग (Live Streaming) अस्त्र
64
+ streamer = TextIteratorStreamer(tokenizer, timeout=60.0, skip_prompt=True, skip_special_tokens=True)
65
 
66
  generate_kwargs = dict(
67
  **inputs,
68
  streamer=streamer,
69
  max_new_tokens=1024,
70
  temperature=0.7,
71
+ top_p=0.9,
72
  do_sample=True
73
  )
74
 
75
+ # जनरेशन को बैकग्राउंड में शुरू करना
76
  t = Thread(target=model.generate, kwargs=generate_kwargs)
77
  t.start()
78
 
79
+ # एक-एक शब्द को यूज़र तक पहुँचाना
80
  accumulated_text = ""
81
  for new_token in streamer:
82
  accumulated_text += new_token
83
  yield accumulated_text
84
 
85
  except Exception as e:
86
+ yield f"🔱 प्रसंस्करण त्रुटि: {str(e)}"
87
 
88
  # ============================================================================
89
+ # 🔱 वेदिका 3.5 लैश का भव्य आधुनिक यूआई (Gradio ChatInterface)
90
  # ============================================================================
 
 
91
  demo = gr.ChatInterface(
92
+ fn=generate_vedika_magic,
93
+ title="🔱 Vedika 3.5 Flash (2B)",
94
+ description="**Pioneered by Divy Patel | Bharat 🇮🇳**<br>यह भारत का अपना स्वदेशी 2 बिलियन पैरामीटर वाला AI मॉडल है, जो असीम तीव्र (Flash) और सुरक्षित है।",
95
+ theme=gr.themes.Soft(primary_hue="blue", secondary_hue="indigo"),
96
+ textbox=gr.Textbox(placeholder="वेदिका 3.5 फ्लैश से कुछ भी पूछें..."),
 
 
 
 
97
  concurrency_limit=1
98
  )
99