Motor híbrido, fallback garantizado
Matching local por palabras clave, stems y similitud difusa. Si existe
OPENAI_API_KEY, clasifica con OpenAI; si falla o no está, el motor local
sigue respondiendo sin interrumpir la conversación.