Загрузка данных


def parse_intent_with_ai(user_speech):
    global chat_history, user_name, current_lang
    chat_history.append(f"{user_name}: {user_speech}")
    
    context_slice = chat_history[-10:]
    context_str = "\n".join(context_slice)

    prompt = f"""
    Ты — Нова, элитный голосовой ассистент на ПК. Пользователя зовут "{user_name}". Текущий язык: "{current_lang}".
    Проанализируй фразу и верни СТРОГО JSON без markdown-оформления (без ```json):
    {{
      "action": "open_chat", "change_language", "set_name", "open_youtube", "google_search", "open_app", 
      "open_folder", "empty_recycle_bin", "shutdown_pc", "cancel_shutdown", "sleep_pc", 
      "time_info", "battery_info", "take_screenshot", "create_note", "copy_files", "exit", или "chat",
      "messenger": "telegram, discord или whatsapp",
      "chat_target": "имя контакта или чата",
      "new_lang": "код языка",
      "new_name": "новое имя",
      "query": "поисковый запрос",
      "app_name": "программа",
      "folder_name": "папка",
      "minutes": 0,
      "note_text": "текст",
      "source_path": "",
      "dest_path": "",
      "text": "ответ пользователю"
    }}

    История разговора:
    {context_str}
    
    Текущая фраза: "{user_speech}"
    """
    
    try:
        completion = client.chat.completions.create(
            model="llama-3.3-70b-versatile",
            messages=[{"role": "user", "content": prompt}],
            temperature=0.1
        )
        clean_text = completion.choices[0].message.content.replace("```json", "").replace("```", "").strip()
        result = json.loads(clean_text)
        
        if result.get("action") == "change_language":
            n_lang = result.get("new_lang")
            if n_lang:
                current_lang = n_lang.lower()
                app_settings["lang"] = current_lang
                save_settings(app_settings)
                
        if result.get("action") == "set_name":
            new_n = result.get("new_name")
            if new_n:
                user_name = new_n
                app_settings["user_name"] = user_name
                save_settings(app_settings)
                
        if result.get("action") in ["chat", "set_name", "change_language", "open_chat"]:
            chat_history.append(f"Нова: {result.get('text')}")
            
        save_memory()
        return result
    except Exception as e:
        print(f"Ошибка ИИ Groq: {e}")
        return {"action": "chat", "text": "Я не совсем поняла команду, повторите пожалуйста."}