Adicionar app/services/model_router.py

This commit is contained in:
2026-08-19 19:57:40 -03:00
parent b9187dac12
commit 3dd909855b
+39
View File
@@ -0,0 +1,39 @@
import json
from services.ollama_service import OllamaService
from services.external_model_service import ExternalModelService
class ModelRouter:
def __init__(self):
self.ollama = OllamaService()
self.external = ExternalModelService()
with open("models.json", "r") as f:
self.models = json.load(f)
def pick_model(self, intent: str, mode: str):
# regras simples (pode ser expandido)
if intent == "document" and mode == "advogado":
return self.models["local"]["llama3.1-70b"]
if intent == "document" and mode == "corporativo":
return self.models["local"]["qwen2.5-7b"]
if intent == "search":
return self.models["external"]["claude-3.5-sonnet"]
if intent == "monitoring":
return self.models["external"]["mistral-large"]
# fallback
return self.models["local"]["llama3.1-8b"]
def generate(self, intent: str, mode: str, prompt: str):
model = self.pick_model(intent, mode)
if model["provider"] == "ollama":
return self.ollama.generate(prompt)
if model["provider"] in ["openai", "anthropic", "mistral"]:
return self.external.generate(model["provider"], model["model"], prompt)
return "Erro: modelo não encontrado."