from openai import OpenAI from app.config import OPENAI_API_KEY class ChatEngine: def __init__(self): self.client = OpenAI(api_key=OPENAI_API_KEY) if OPENAI_API_KEY else None def answer(self, user_text: str, context: str = "") -> str: # fallback, если ключа нет if not self.client: return "⚠️ OPENAI_API_KEY не задан. (Пилотный режим) Ваш вопрос: " + user_text system = ( "Ты ассистент 2MOOD. Отвечай кратко и по делу. " "Если дан контекст из базы знаний — опирайся на него и добавляй ссылки на источники (имя файла). " "Если контекста нет — скажи, что в базе знаний не найдено подтверждение, и предложи уточнить." ) user = f"Вопрос: {user_text}\n\nКонтекст из базы знаний:\n{context or '(нет)'}" resp = self.client.chat.completions.create( model="gpt-4o-mini", messages=[ {"role": "system", "content": system}, {"role": "user", "content": user}, ], temperature=0.2, ) return resp.choices[0].message.content.strip()