Yermek68 commited on
Commit
dd3c4b9
·
verified ·
1 Parent(s): 6539c45

Create core/model_selector.py

Browse files
Files changed (1) hide show
  1. core/model_selector.py +29 -11
core/model_selector.py CHANGED
@@ -1,14 +1,32 @@
 
 
1
  def choose_model(user_input: str) -> str:
2
- """Автоматически выбирает модель Hugging Face по типу запроса"""
 
 
 
3
  text = user_input.lower()
4
 
5
- if any(word in text for word in ["объясни", "физика", "квант", "математика", "наука", "алгоритм", "данные"]):
6
- return "microsoft/phi-3.5-mini-instruct" # логическая, точная
7
- elif any(word in text for word in ["придумай", "сочини", "творчески", "история", "поэзия", "вообрази"]):
8
- return "mistralai/Mistral-7B-Instruct-v0.2" # креатив
9
- elif any(word in text for word in ["диалог", "совет", "эмоция", "отношения", "помоги понять"]):
10
- return "google/gemma-2-2b-it" # дружелюбная и эмпатичная
11
- elif any(word in text for word in ["код", "python", "программа", "ошибка", "скрипт"]):
12
- return "codellama/CodeLlama-7b-Instruct-hf" # тех-запросы
13
- else:
14
- return "microsoft/phi-3.5-mini-instruct" # по умолчанию — точная и быстрая
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from langdetect import detect
2
+
3
  def choose_model(user_input: str) -> str:
4
+ """
5
+ Автоматически подбирает оптимальную модель Hugging Face
6
+ в зависимости от языка, задачи и сложности запроса.
7
+ """
8
  text = user_input.lower()
9
 
10
+ # Определяем язык
11
+ try:
12
+ lang = detect(user_input)
13
+ except:
14
+ lang = "en"
15
+
16
+ # === Категории задач ===
17
+ if any(x in text for x in ["код", "python", "script", "программа", "function", "code"]):
18
+ return "codellama/CodeLlama-7b-Instruct-hf"
19
+
20
+ elif any(x in text for x in ["анализ", "объясни", "научи", "почему", "как работает"]):
21
+ return "mistralai/Mistral-7B-Instruct-v0.3"
22
+
23
+ elif any(x in text for x in ["текст", "переведи", "история", "расскажи", "объяснение"]):
24
+ return "google/gemma-2b-it"
25
+
26
+ elif any(x in text for x in ["чат", "ответь", "расскажи про", "что такое"]):
27
+ return "microsoft/Phi-3-mini-4k-instruct"
28
+
29
+ # === fallback ===
30
+ if lang != "ru":
31
+ return "mistralai/Mistral-7B-Instruct-v0.3"
32
+ return "microsoft/Phi-3-mini-4k-instruct"