# core/mbti_analyzer.py from transformers import pipeline import asyncio MBTI_MODEL = "f3nsmart/MBTIclassifier" mbti_pipe = pipeline("text-classification", model=MBTI_MODEL, return_all_scores=True) async def analyze_mbti_async(user_text: str): """Асинхронный MBTI-анализ.""" loop = asyncio.get_event_loop() return await loop.run_in_executor(None, lambda: mbti_pipe(user_text)[0]) def analyze_mbti(user_text: str): """Генератор для стриминга результата.""" yield "⏳ Analyzing personality traits..." res = asyncio.run(analyze_mbti_async(user_text)) res_sorted = sorted(res, key=lambda x: x["score"], reverse=True) mbti_text = "\n".join([f"{r['label']} → {r['score']:.3f}" for r in res_sorted[:3]]) yield mbti_text