Aist1 commited on
Commit
b1a2629
·
verified ·
1 Parent(s): 2d7985a

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +78 -0
app.py ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import time
3
+ import random
4
+
5
+ # Списки для шага 4 (Наполнение)
6
+ sight_list = ["Тень от вазы на столе", "Фактура стены", "Игра света на экране", "Пылинка в луче солнца"]
7
+ sound_list = ["Тихий гул компьютера", "Пение птицы за окном", ["Собственное сердцебиение", "Собственное дыхание"]]
8
+ touch_list = ["Текстура ткани одежды на коже", "Прохлада воздуха при вдохе", "Твердая поверхность стула под вами"]
9
+
10
+ def start_practice(duration):
11
+ """
12
+ Запускает основную практику.
13
+ duration: общее время практики в секундах.
14
+ """
15
+ steps = [
16
+ "ШАГ 1: ОСНОВАНИЕ\nСосредоточьтесь на точке опоры. Почувствуйте, как стопы касаются пола, а тело — стула. Это ваша физическая основа в настоящем.",
17
+ "ШАГ 2: ДЫХАНИЕ\nПеренесите внимание на дыхание. Не меняйте его. Просто наблюдайте за естественным ритмом: вдох... и выдох... Дыхание — это якорь, который всегда с вами.",
18
+ "ШАГ 3: РАСШИРЕНИЕ\nРасширьте поле внимания. Одновременно с дыханием осознавайте всё своё тело. Ощущайте его как единое целое, находящееся здесь.",
19
+ "ШАГ 4: НАПОЛНЕНИЕ\nОткройтесь миру. Впустите в свое awareness окружающие ощущения: звуки, свет, температуру. Просто позвольте им быть, не оценивая."
20
+ ]
21
+
22
+ # Вычисляем время для каждого шага
23
+ step_time = duration / len(steps)
24
+ result = ""
25
+ current_step = 0
26
+
27
+ for i, step in enumerate(steps):
28
+ result += f"\n--- Шаг {i+1} из {len(steps)} ---\n"
29
+ result += f"{step}\n"
30
+ result += f"(Практикуйте это в течение {step_time} секунд...)\n\n"
31
+ # В реальном приложении здесь был бы таймер, но для простоты демонстрации мы имитируем паузу.
32
+ # В идеале нужно использовать JavaScript или обновление через gr.HTML для настоящего таймера.
33
+
34
+ result += f"\nПрактика завершена. Вы вернулись в 'Здесь и Сейчас'. Постарайтесь сохранить это ощущение в следующем действии."
35
+
36
+ # Генерация персонализированного напутствия для шага 4
37
+ random_sight = random.choice(sight_list)
38
+ random_sound = random.choice(sound_list)
39
+ random_touch = random.choice(touch_list)
40
+
41
+ sensory_note = f"\n\n✨ Подсказка для 'Наполнения':\n Посмотрите на: {random_sight}\n Прислушайтесь к: {random_sound}\n Ощутите: {random_touch}"
42
+
43
+ return result + sensory_note
44
+
45
+ # Создаем интерфейс Gradio
46
+ with gr.Blocks(theme=gr.themes.Soft(), title="Якорь в Сейчас") as demo:
47
+ gr.Markdown(
48
+ """
49
+ # 🎯 Якорь в Сейчас
50
+ *Простой и эффективный метод вернуться в настоящий момент.*
51
+ """)
52
+ with gr.Row():
53
+ with gr.Column(scale=1):
54
+ duration_slider = gr.Slider(minimum=60, maximum=300, value=120, step=30, label="Время практики (секунды)")
55
+ start_btn = gr.Button("Начать практику 'Якорь в Сейчас'", variant="primary")
56
+ with gr.Column(scale=2):
57
+ output_text = gr.Textbox(label="Ваш гид", lines=15, interactive=False)
58
+
59
+ # Обработчик нажатия кнопки
60
+ start_btn.click(
61
+ fn=start_practice,
62
+ inputs=[duration_slider],
63
+ outputs=[output_text]
64
+ )
65
+
66
+ gr.Markdown(
67
+ """
68
+ ### Почему это работает?
69
+ * **Шаг 1 (Основание):** Укореняет вас в физической реальности, отрывая от мыслей.
70
+ * **Шаг 2 (Дыхание):** Использует дыхание как биологический якорь, успокаивая нервную систему.
71
+ * **Шаг 3 (Расширение):** Включает в осознание всё тело, предотвращая сужение внимания на проблемах.
72
+ * **Шаг 4 (Наполнение):** Интегрирует вас с окружающим миром, создав��я чувство связи и принятия настоящего.
73
+
74
+ **Просто нажмите кнопку и следуйте инструкциям. Не стремитесь к идеальному выполнению, просто будьте.**
75
+ """)
76
+
77
+ # Для запуска на Spaces
78
+ demo.launch(debug=False, share=True)