giyos1212 commited on
Commit
8d5467d
Β·
verified Β·
1 Parent(s): d8a6148

Update app/services/models.py

Browse files
Files changed (1) hide show
  1. app/services/models.py +49 -15
app/services/models.py CHANGED
@@ -8,7 +8,7 @@ YAXSHILANISHLAR:
8
  3. βœ… TTS - Speed o'chirildi, faqat til parametri
9
  4. βœ… Error handling - Hamma joyda try-except
10
  5. βœ… Fallback responses - Xatolik bo'lsa default javob qaytarish
11
- """
12
 
13
  import subprocess
14
  import numpy as np
@@ -69,35 +69,51 @@ def load_models():
69
 
70
  # ========== STT MODELI ==========
71
  try:
72
- # --- SIZNING TAKLIFINGIZ BILAN YAXSHILANDI ---
73
- # Model va uning qismlarini (processor, tokenizer) alohida yuklash o'rniga,
74
- # to'g'ridan-to'g'ri pipeline orqali yuklaymiz. Bu ancha sodda va ishonchli.
75
- logger.info(" πŸ“₯ STT (islomov/whisper-small-uzbek) modeli pipeline orqali yuklanmoqda...")
76
- stt_model_id = "islomov/whisper-small-uzbek"
 
 
 
 
 
 
77
 
78
  MODELS["stt_pipeline"] = pipeline(
79
  "automatic-speech-recognition",
80
- model=stt_model_id,
 
 
 
81
  torch_dtype=TORCH_DTYPE,
82
  device=DEVICE,
83
  )
84
- # ------------------------------------------------
85
 
86
  MODEL_STATUS["stt"] = True
87
  logger.info(" βœ… STT modeli tayyor")
88
 
89
  except Exception as e:
90
- logger.error(f" ❌ STT modelini yuklashda xatolik: {e}", exc_info=True)
91
  MODEL_STATUS["stt"] = False
92
 
93
- # ========== TTS MODELLARI (Bu usulda o'zi to'g'ri edi) ==========
94
 
95
  # TTS O'ZBEKCHA
96
  try:
97
  logger.info(" 🎧 TTS O'ZBEKCHA (facebook/mms-tts-uzb-script_cyrillic) modeli yuklanmoqda...")
98
- MODELS["tts_uzb_pipeline"] = pipeline("text-to-speech", model="facebook/mms-tts-uzb-script_cyrillic", device=DEVICE)
 
 
 
 
 
 
 
99
  MODEL_STATUS["tts_uzb"] = True
100
  logger.info(" βœ… TTS O'ZBEK modeli tayyor")
 
101
  except Exception as e:
102
  logger.error(f" ❌ TTS O'ZBEK modelini yuklashda xatolik: {e}")
103
  MODEL_STATUS["tts_uzb"] = False
@@ -105,9 +121,17 @@ def load_models():
105
  # TTS INGLIZCHA
106
  try:
107
  logger.info(" 🎧 TTS INGLIZCHA (facebook/mms-tts-eng) modeli yuklanmoqda...")
108
- MODELS["tts_eng_pipeline"] = pipeline("text-to-speech", model="facebook/mms-tts-eng", device=DEVICE)
 
 
 
 
 
 
 
109
  MODEL_STATUS["tts_eng"] = True
110
  logger.info(" βœ… TTS INGLIZ modeli tayyor")
 
111
  except Exception as e:
112
  logger.error(f" ❌ TTS INGLIZ modelini yuklashda xatolik: {e}")
113
  MODEL_STATUS["tts_eng"] = False
@@ -115,9 +139,17 @@ def load_models():
115
  # TTS RUSCHA
116
  try:
117
  logger.info(" 🎧 TTS RUSCHA (facebook/mms-tts-rus) modeli yuklanmoqda...")
118
- MODELS["tts_rus_pipeline"] = pipeline("text-to-speech", model="facebook/mms-tts-rus", device=DEVICE)
 
 
 
 
 
 
 
119
  MODEL_STATUS["tts_rus"] = True
120
  logger.info(" βœ… TTS RUS modeli tayyor")
 
121
  except Exception as e:
122
  logger.error(f" ❌ TTS RUS modelini yuklashda xatolik: {e}")
123
  MODEL_STATUS["tts_rus"] = False
@@ -125,16 +157,18 @@ def load_models():
125
  # ========== LLM MODELI (Gemini) ==========
126
  try:
127
  logger.info(" 🧠 LLM (Gemini) modeli yuklanmoqda...")
128
- MODELS["llm"] = genai.GenerativeModel("gemini-1.5-flash")
 
129
  MODEL_STATUS["llm"] = True
130
  logger.info(" βœ… LLM modeli tayyor")
 
131
  except Exception as e:
132
  logger.error(f" ❌ LLM modelini yuklashda xatolik: {e}")
133
  MODEL_STATUS["llm"] = False
134
 
135
  # ========== NATIJA ==========
136
  if not any(MODEL_STATUS.values()):
137
- raise RuntimeError("❌ CRITICAL: Hech qanday AI modeli yuklanmadi. Ilova ishlay olmaydi.")
138
 
139
  logger.info("=" * 60)
140
  logger.info("βœ… Modellar yuklash yakunlandi:")
 
8
  3. βœ… TTS - Speed o'chirildi, faqat til parametri
9
  4. βœ… Error handling - Hamma joyda try-except
10
  5. βœ… Fallback responses - Xatolik bo'lsa default javob qaytarish
11
+ """
12
 
13
  import subprocess
14
  import numpy as np
 
69
 
70
  # ========== STT MODELI ==========
71
  try:
72
+ logger.info(" πŸ“₯ STT (islomov/rubaistt_v2_medium) modeli yuklanmoqda...")
73
+ stt_model_id = "islomov/rubaistt_v2_medium"
74
+
75
+ stt_model = AutoModelForSpeechSeq2Seq.from_pretrained(
76
+ stt_model_id,
77
+ torch_dtype=TORCH_DTYPE,
78
+ low_cpu_mem_usage=True,
79
+ use_safetensors=True
80
+ )
81
+ stt_model.to(DEVICE)
82
+ stt_processor = AutoProcessor.from_pretrained(stt_model_id)
83
 
84
  MODELS["stt_pipeline"] = pipeline(
85
  "automatic-speech-recognition",
86
+ model=stt_model,
87
+ tokenizer=stt_processor.tokenizer,
88
+ feature_extractor=stt_processor.feature_extractor,
89
+ max_new_tokens=128,
90
  torch_dtype=TORCH_DTYPE,
91
  device=DEVICE,
92
  )
 
93
 
94
  MODEL_STATUS["stt"] = True
95
  logger.info(" βœ… STT modeli tayyor")
96
 
97
  except Exception as e:
98
+ logger.error(f" ❌ STT modelini yuklashda xatolik: {e}")
99
  MODEL_STATUS["stt"] = False
100
 
101
+ # ========== TTS MODELLARI (3 ta: uzb, eng, rus) ==========
102
 
103
  # TTS O'ZBEKCHA
104
  try:
105
  logger.info(" 🎧 TTS O'ZBEKCHA (facebook/mms-tts-uzb-script_cyrillic) modeli yuklanmoqda...")
106
+ tts_model_path = "facebook/mms-tts-uzb-script_cyrillic"
107
+
108
+ MODELS["tts_uzb_pipeline"] = pipeline(
109
+ "text-to-speech",
110
+ model=tts_model_path,
111
+ device=DEVICE
112
+ )
113
+
114
  MODEL_STATUS["tts_uzb"] = True
115
  logger.info(" βœ… TTS O'ZBEK modeli tayyor")
116
+
117
  except Exception as e:
118
  logger.error(f" ❌ TTS O'ZBEK modelini yuklashda xatolik: {e}")
119
  MODEL_STATUS["tts_uzb"] = False
 
121
  # TTS INGLIZCHA
122
  try:
123
  logger.info(" 🎧 TTS INGLIZCHA (facebook/mms-tts-eng) modeli yuklanmoqda...")
124
+ tts_eng_path = "facebook/mms-tts-eng"
125
+
126
+ MODELS["tts_eng_pipeline"] = pipeline(
127
+ "text-to-speech",
128
+ model=tts_eng_path,
129
+ device=DEVICE
130
+ )
131
+
132
  MODEL_STATUS["tts_eng"] = True
133
  logger.info(" βœ… TTS INGLIZ modeli tayyor")
134
+
135
  except Exception as e:
136
  logger.error(f" ❌ TTS INGLIZ modelini yuklashda xatolik: {e}")
137
  MODEL_STATUS["tts_eng"] = False
 
139
  # TTS RUSCHA
140
  try:
141
  logger.info(" 🎧 TTS RUSCHA (facebook/mms-tts-rus) modeli yuklanmoqda...")
142
+ tts_rus_path = "facebook/mms-tts-rus"
143
+
144
+ MODELS["tts_rus_pipeline"] = pipeline(
145
+ "text-to-speech",
146
+ model=tts_rus_path,
147
+ device=DEVICE
148
+ )
149
+
150
  MODEL_STATUS["tts_rus"] = True
151
  logger.info(" βœ… TTS RUS modeli tayyor")
152
+
153
  except Exception as e:
154
  logger.error(f" ❌ TTS RUS modelini yuklashda xatolik: {e}")
155
  MODEL_STATUS["tts_rus"] = False
 
157
  # ========== LLM MODELI (Gemini) ==========
158
  try:
159
  logger.info(" 🧠 LLM (Gemini) modeli yuklanmoqda...")
160
+ # Sizning kodingizda "gemini-2.0-flash-exp" ishlatilgan ekan, shuni qoldiramiz
161
+ MODELS["llm"] = genai.GenerativeModel("gemini-2.0-flash-exp")
162
  MODEL_STATUS["llm"] = True
163
  logger.info(" βœ… LLM modeli tayyor")
164
+
165
  except Exception as e:
166
  logger.error(f" ❌ LLM modelini yuklashda xatolik: {e}")
167
  MODEL_STATUS["llm"] = False
168
 
169
  # ========== NATIJA ==========
170
  if not any(MODEL_STATUS.values()):
171
+ raise RuntimeError("❌ CRITICAL: Hech qanday model yuklanmadi. Loyiha ishlay olmaydi.")
172
 
173
  logger.info("=" * 60)
174
  logger.info("βœ… Modellar yuklash yakunlandi:")