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

Update app/services/models.py

Browse files
Files changed (1) hide show
  1. app/services/models.py +12 -50
app/services/models.py CHANGED
@@ -69,31 +69,19 @@ def load_models():
69
 
70
  # ========== STT MODELI ==========
71
  try:
72
- # --- MUHIM O'ZGARTIRISH ---
73
- # Noto'g'ri yoki shaxsiy model identifikatori o'rniga
74
- # to'g'ri va ommaviy modelni ishlatamiz.
75
- logger.info(" πŸ“₯ STT (islomov/rubaistt_v2_medium) modeli yuklanmoqda...")
76
- stt_model_id = "islomov/rubaistt_v2_medium"
77
- # ---------------------------
78
-
79
- stt_model = AutoModelForSpeechSeq2Seq.from_pretrained(
80
- stt_model_id,
81
- torch_dtype=TORCH_DTYPE,
82
- low_cpu_mem_usage=True,
83
- use_safetensors=True
84
- )
85
- stt_model.to(DEVICE)
86
- stt_processor = AutoProcessor.from_pretrained(stt_model_id)
87
 
88
  MODELS["stt_pipeline"] = pipeline(
89
  "automatic-speech-recognition",
90
- model=stt_model,
91
- tokenizer=stt_processor.tokenizer,
92
- feature_extractor=stt_processor.feature_extractor,
93
- max_new_tokens=128,
94
  torch_dtype=TORCH_DTYPE,
95
  device=DEVICE,
96
  )
 
97
 
98
  MODEL_STATUS["stt"] = True
99
  logger.info(" βœ… STT modeli tayyor")
@@ -102,22 +90,14 @@ def load_models():
102
  logger.error(f" ❌ STT modelini yuklashda xatolik: {e}", exc_info=True)
103
  MODEL_STATUS["stt"] = False
104
 
105
- # ========== TTS MODELLARI (3 ta: uzb, eng, rus) ==========
106
 
107
  # TTS O'ZBEKCHA
108
  try:
109
  logger.info(" 🎧 TTS O'ZBEKCHA (facebook/mms-tts-uzb-script_cyrillic) modeli yuklanmoqda...")
110
- tts_model_path = "facebook/mms-tts-uzb-script_cyrillic"
111
-
112
- MODELS["tts_uzb_pipeline"] = pipeline(
113
- "text-to-speech",
114
- model=tts_model_path,
115
- device=DEVICE
116
- )
117
-
118
  MODEL_STATUS["tts_uzb"] = True
119
  logger.info(" βœ… TTS O'ZBEK modeli tayyor")
120
-
121
  except Exception as e:
122
  logger.error(f" ❌ TTS O'ZBEK modelini yuklashda xatolik: {e}")
123
  MODEL_STATUS["tts_uzb"] = False
@@ -125,17 +105,9 @@ def load_models():
125
  # TTS INGLIZCHA
126
  try:
127
  logger.info(" 🎧 TTS INGLIZCHA (facebook/mms-tts-eng) modeli yuklanmoqda...")
128
- tts_eng_path = "facebook/mms-tts-eng"
129
-
130
- MODELS["tts_eng_pipeline"] = pipeline(
131
- "text-to-speech",
132
- model=tts_eng_path,
133
- device=DEVICE
134
- )
135
-
136
  MODEL_STATUS["tts_eng"] = True
137
  logger.info(" βœ… TTS INGLIZ modeli tayyor")
138
-
139
  except Exception as e:
140
  logger.error(f" ❌ TTS INGLIZ modelini yuklashda xatolik: {e}")
141
  MODEL_STATUS["tts_eng"] = False
@@ -143,17 +115,9 @@ def load_models():
143
  # TTS RUSCHA
144
  try:
145
  logger.info(" 🎧 TTS RUSCHA (facebook/mms-tts-rus) modeli yuklanmoqda...")
146
- tts_rus_path = "facebook/mms-tts-rus"
147
-
148
- MODELS["tts_rus_pipeline"] = pipeline(
149
- "text-to-speech",
150
- model=tts_rus_path,
151
- device=DEVICE
152
- )
153
-
154
  MODEL_STATUS["tts_rus"] = True
155
  logger.info(" βœ… TTS RUS modeli tayyor")
156
-
157
  except Exception as e:
158
  logger.error(f" ❌ TTS RUS modelini yuklashda xatolik: {e}")
159
  MODEL_STATUS["tts_rus"] = False
@@ -161,18 +125,16 @@ def load_models():
161
  # ========== LLM MODELI (Gemini) ==========
162
  try:
163
  logger.info(" 🧠 LLM (Gemini) modeli yuklanmoqda...")
164
- # Eskirgan "gemini-2.0-flash-exp" o'rniga yangi va barqaror model
165
  MODELS["llm"] = genai.GenerativeModel("gemini-1.5-flash")
166
  MODEL_STATUS["llm"] = True
167
  logger.info(" βœ… LLM modeli tayyor")
168
-
169
  except Exception as e:
170
  logger.error(f" ❌ LLM modelini yuklashda xatolik: {e}")
171
  MODEL_STATUS["llm"] = False
172
 
173
  # ========== NATIJA ==========
174
  if not any(MODEL_STATUS.values()):
175
- raise RuntimeError("❌ CRITICAL: Hech qanday model yuklanmadi. Loyiha ishlay olmaydi.")
176
 
177
  logger.info("=" * 60)
178
  logger.info("βœ… Modellar yuklash yakunlandi:")
 
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")
 
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
  # 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
  # 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
  # ========== 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:")