eroha-agentapi / core /model_selector.py
Yermek68's picture
Create core/model_selector.py
dd3c4b9 verified
raw
history blame
1.28 kB
from langdetect import detect
def choose_model(user_input: str) -> str:
"""
Автоматически подбирает оптимальную модель Hugging Face
в зависимости от языка, задачи и сложности запроса.
"""
text = user_input.lower()
# Определяем язык
try:
lang = detect(user_input)
except:
lang = "en"
# === Категории задач ===
if any(x in text for x in ["код", "python", "script", "программа", "function", "code"]):
return "codellama/CodeLlama-7b-Instruct-hf"
elif any(x in text for x in ["анализ", "объясни", "научи", "почему", "как работает"]):
return "mistralai/Mistral-7B-Instruct-v0.3"
elif any(x in text for x in ["текст", "переведи", "история", "расскажи", "объяснение"]):
return "google/gemma-2b-it"
elif any(x in text for x in ["чат", "ответь", "расскажи про", "что такое"]):
return "microsoft/Phi-3-mini-4k-instruct"
# === fallback ===
if lang != "ru":
return "mistralai/Mistral-7B-Instruct-v0.3"
return "microsoft/Phi-3-mini-4k-instruct"