Laska1 / app.py
Aist1's picture
Update app.py
8ca6c35 verified
import gradio as gr
import numpy as np
import pandas as pd
from datetime import datetime, timedelta
import json
import random
class DeepSelfDiscovery:
def __init__(self):
self.user_data = {}
def values_clarification(self, user_id="default"):
"""Метод 1: Кларификация ценностей (Стивен Хейс)"""
core_values = [
"Свобода", "Любовь", "Честность", "Развитие", "Служение",
"Семья", "Творчество", "Стабильность", "Приключения", "Духовность",
"Здоровье", "Дружба", "Обучение", "Успех", "Гармония",
"Смелость", "Справедливость", "Благодарность", "Простота", "Наследие"
]
prompt = """
## 🎯 Кларификация жизненных ценностей
**Инструкция:** Выберите 5-7 ценностей, которые наиболее важны для вас в жизни.
Затем ранжируйте их по степени важности.
**Вопросы для размышления:**
- Какие ценности направляют ваши решения?
- Что придает смысл вашей жизни?
- Ради чего вы готовы преодолевать трудности?
**Ваши основные ценности:**
"""
return prompt + "\n".join([f"- {value}" for value in random.sample(core_values, 10)])
def shadow_work(self, user_id="default"):
"""Метод 2: Работа с тенью (Карл Юнг)"""
shadow_aspects = [
"Непринятые эмоции", "Скрытые таланты", "Подавленные желания",
"Детские травмы", "Внутренний критик", "Неосознанные страхи",
"Запрещенные чувства", "Скрытая агрессия", "Невыраженная сексуальность"
]
journal_prompts = [
"Какие качества в других людях вызывают у вас сильное раздражение?",
"О чем вы чаще всего сожалеете?",
"Какие мысли вы никогда никому не расскажете?",
"В каких ситуациях вы чувствуете себя неадекватно?",
"Что вы скрываете даже от самых близких людей?"
]
prompt = f"""
## 🌑 Работа с Тенью
**Выявленный аспект тени:** {random.choice(shadow_aspects)}
**Упражнение для осознания:**
{random.choice(journal_prompts)}
**Техника интеграции:**
1. Признайте существование этой части себя без осуждения
2. Исследуйте ее происхождение и защитную функцию
3. Найдите здоровые способы выражения этой энергии
4. Интегрируйте ее как источник силы и мудрости
"""
return prompt
def life_purpose(self, user_id="default"):
"""Метод 3: Исследование жизненного предназначения"""
ikigai_questions = [
"Что вы любите делать больше всего?",
"В чем вы действительно хороши?",
"За что люди готовы вам платить?",
"Что нужно миру от вас?",
"Что заставляет вас забыть о времени?"
]
prompt = f"""
## 🌟 Поиск предназначения (Икигай)
**Ключевой вопрос:** {random.choice(ikigai_questions)}
**Упражнение 'Мое идеальное будущее':**
Представьте себя через 5 лет, живущим наиболее осмысленную и наполненную жизнь:
1. **Чем вы занимаетесь ежедневно?**
2. **Какие люди вас окружают?**
3. **Какой вклад вы вносите в мир?**
4. **Что чувствуете, просыпаясь утром?**
**Признаки вашего предназначения:**
- Деятельность, которая приносит радость и ощущение потока
- То, что естественно получается и приносит пользу другим
- Сфера, где ваши таланты встречаются с потребностями мира
"""
return prompt
def inner_child_healing(self, user_id="default"):
"""Метод 4: Исцеление внутреннего ребенка"""
healing_questions = [
"Что нужно было услышать маленькому вам?",
"В каких ситуациях вы чувствуете себя уязвимым как ребенок?",
"Какие детские мечты вы не реализовали?",
"Что бы вы хотели сказать своим родителям?",
"Какой поддержки вам не хватало в детстве?"
]
prompt = f"""
## 👶 Диалог с Внутренним Ребенком
**Вопрос для исцеления:** {random.choice(healing_questions)}
**Техника работы:**
1. **Визуализация:** Представьте себя в детском возраста
2. **Диалог:** Спросите, что ему/ей нужно
3. **Поддержка:** Дайте то, чего не хватало
4. **Интеграция:** Обнимите и примите эту часть себя
**Аффирмации для внутреннего ребенка:**
- "Я вижу тебя и принимаю таким, какой ты есть"
- "Ты в безопасности, я всегда буду о тебе заботиться"
- "Твои чувства важны и имеют значение"
- "Ты достоин любви просто по праву своего существования"
"""
return prompt
def mindfulness_practice(self, user_id="default"):
"""Метод 5: Практики осознанности"""
practices = [
"Телесное сканирование",
"Дыхательная медитация",
"Осознанная ходьба",
"Практика благодарности",
"Наблюдение мыслей"
]
prompt = f"""
## 🧘 Практика Осознанности
**Техника:** {random.choice(practices)}
**Инструкция к практике:**
1. Примите удобное положение и закройте глаза
2. Направьте внимание на настоящее мгновение
3. Наблюдайте свои ощущения без оценки
4. Когда ум отвлекается, мягко возвращайте внимание
5. Практикуйте 5-10 минут
**Вопросы для рефлексии:**
- Что я сейчас действительно чувствую?
- О чем мне говорят мои телесные ощущения?
- Какие мысли проходят через мой ум?
- Чего я действительно хочу в этот момент?
"""
return prompt
def strengths_identification(self, user_id="default"):
"""Метод 6: Идентификация сильных сторон"""
strength_categories = {
"Мудрость": ["Любознательность", "Любовь к обучению", "Критическое мышление"],
"Мужество": ["Храбрость", "Настойчивость", "Честность"],
"Человечность": ["Любовь", "Доброта", "Социальный интеллект"],
"Справедливость": ["Работа в команде", "Справедливость", "Лидерство"],
"Умеренность": ["Прощение", "Скромность", "Благоразумие"],
"Трансцендентность": ["Ценность прекрасного", "Благодарность", "Надежда"]
}
category = random.choice(list(strength_categories.keys()))
strengths = strength_categories[category]
prompt = f"""
## 💪 Идентификация сильных сторон
**Категория:** {category}
**Потенциальные сильные стороны:** {', '.join(strengths)}
**Упражнение 'Мои суперсилы':**
1. Вспомните 3 ситуации, когда вы чувствовали себя наиболее живым и эффективным
2. Какие качества проявлялись в этих ситуациях?
3. Что люди часто просят у вас помощи?
4. Какая деятельность дается вам легко и приносит радость?
**Признаки вашей суперсилы:**
- Деятельность, которая заряжает энергией
- То, что получается естественно, без усилий
- Сфера, где вы приносите уникальную ценность
"""
return prompt
def daily_practice(self, user_id="default"):
"""Ежедневная практика самопознания"""
practices = [
"Утренние страницы (3 страницы рукописного текста)",
"Вечерний обзор дня",
"Медитация на дыхание 10 минут",
"Практика благодарности (3 вещи)",
"Телесное сканирование перед сном",
"Осознанная прогулка на природе",
"Диалог с внутренним советником"
]
today_practice = random.choice(practices)
prompt = f"""
## 📅 Сегодняшняя практика
**Рекомендуемая практика:** {today_practice}
**Вопросы для ежедневной рефлексии:**
1. Что я чувствую прямо сейчас?
2. За что я благодарен сегодня?
3. Что я узнал о себе сегодня?
4. Как я могу позаботиться о себе завтра?
**Аффирмация дня:**
"Я открываюсь познанию себя с любовью и принятием"
"""
return prompt
def integration_exercise(self, user_id="default"):
"""Интеграционное упражнение"""
prompt = """
## 🔄 Интеграция открытий
**Упражнение 'Собирая пазл себя':**
1. **Выберите 3 самых важных открытия** из последних практик
2. **Создайте образ целостности** - как эти части сочетаются вместе?
3. **Определите следующий шаг** - какое маленькое действие вы можете сделать сегодня?
4. **Напишите письмо себе** с поддержкой и ободрением
**Вопросы для интеграции:**
- Как новые знания о себе влияют на мои решения?
- Какие старые убеждения готовы трансформироваться?
- Как я могу проявлять свою истинную природу чаще?
- Что мешает мне быть более аутентичным?
"""
return prompt
def create_personal_map(self, user_id="default"):
"""Создание персональной карты самопознания"""
prompt = """
## 🗺️ Ваша карта самопознания
**Сферы для исследования:**
🎯 **Ценности и смыслы** - Что действительно важно?
🌑 **Тень и подавленное** - Что скрыто от осознания?
🌟 **Предназначение** - В чем мой уникальный вклад?
👶 **Внутренний ребенок** - Какие раны нуждаются в исцелении?
🧘 **Осознанность** - Как присутствовать в настоящем?
💪 **Сильные стороны** - В чем моя уникальная сила?
**Рекомендации по движению:**
- Начинайте с той сферы, которая сейчас наиболее актуальна
- Практикуйте регулярно, но без насилия над собой
- Доверяйте внутреннему процессу и срокам
- Отмечайте каждый шаг, каким бы маленьким он ни был
"""
return prompt
# Создаем экземпляр приложения
app = DeepSelfDiscovery()
def create_interface():
with gr.Blocks(
title="Глубинное Самопознание - Путь к Истинному Я",
theme=gr.themes.Soft(primary_hue="purple", secondary_hue="pink"),
css="""
.gradio-container {
max-width: 1200px !important;
margin: 0 auto;
}
.practice-card {
background: white;
padding: 20px;
border-radius: 15px;
border-left: 5px solid #8B5CF6;
margin: 10px 0;
box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}
.insight-box {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 25px;
border-radius: 15px;
margin: 15px 0;
}
.btn-custom {
background: linear-gradient(135deg, #8B5CF6, #EC4899) !important;
color: white !important;
border: none !important;
border-radius: 10px !important;
padding: 15px 20px !important;
margin: 8px !important;
font-size: 14px !important;
min-width: 200px !important;
}
.btn-custom:hover {
transform: translateY(-2px);
box-shadow: 0 6px 12px rgba(0,0,0,0.2);
}
.practice-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 15px;
margin: 20px 0;
}
"""
) as interface:
gr.Markdown("""
# 🌌 Глубинное Самопознание
## Путешествие к вашему Истинному Я
*«Познай себя — и ты познаешь Вселенную и богов»* — Надпись в Дельфийском храме
""")
with gr.Tab("🧭 Начать путешествие"):
gr.Markdown("""
### Выберите направление исследования
Каждая практика — это шаг к более глубокому пониманию себя.
Начните с того, что resonates с вами прямо сейчас.
""")
# Создаем отдельные кнопки с явными именами
with gr.Row():
with gr.Column():
btn_values = gr.Button("🎯 Ценности и смыслы", elem_classes="btn-custom")
btn_shadow = gr.Button("🌑 Работа с Тенью", elem_classes="btn-custom")
btn_purpose = gr.Button("🌟 Жизненное предназначение", elem_classes="btn-custom")
btn_child = gr.Button("👶 Исцеление Внутреннего Ребенка", elem_classes="btn-custom")
with gr.Column():
btn_mindfulness = gr.Button("🧘 Практики осознанности", elem_classes="btn-custom")
btn_strengths = gr.Button("💪 Сильные стороны", elem_classes="btn-custom")
btn_daily = gr.Button("📅 Сегодняшняя практика", elem_classes="btn-custom")
btn_integration = gr.Button("🔄 Интеграция открытий", elem_classes="btn-custom")
btn_map = gr.Button("🗺️ Моя карта самопознания", variant="primary", size="lg", elem_classes="btn-custom")
# Область для вывода практики
practice_output = gr.Markdown(
value="## 🧭 Выберите практику для начала\n\nНажмите на любую кнопку выше, чтобы начать работу с выбранным методом самопознания.",
label="Практика самопознания",
elem_classes="practice-card"
)
with gr.Tab("📖 Практика и рефлексия"):
gr.Markdown("### Углубляйте свои открытия через практику")
with gr.Row():
with gr.Column():
# Здесь practice_output уже создан, используем его
reflection_input = gr.Textbox(
label="Ваши инсайты и размышления",
placeholder="Запишите здесь свои открытия, чувства, осознания...",
lines=6
)
save_reflection_btn = gr.Button("💾 Сохранить инсайт")
with gr.Column():
insights_display = gr.Markdown(
label="Ваши сохраненные инсайты",
elem_classes="insight-box"
)
with gr.Tab("📊 Прогресс и интеграция"):
gr.Markdown("### Отслеживайте свой путь трансформации")
with gr.Row():
with gr.Column():
progress_output = gr.Markdown(label="Ваш прогресс")
integration_report_btn = gr.Button("🔄 Создать интеграционный отчет")
with gr.Column():
timeline_output = gr.Markdown(label="Хронология открытий")
with gr.Tab("💫 Экспресс-практики"):
gr.Markdown("### Быстрые практики для повседневности")
with gr.Row():
quick_practice_1 = gr.Button("🌬️ 5-минутная медитация")
quick_practice_2 = gr.Button("📝 Утренние страницы")
quick_practice_3 = gr.Button("🙏 Практика благодарности")
quick_output = gr.Markdown(label="Быстрая практика")
# Обработчики для основных практик - назначаем на каждую кнопку отдельно
btn_values.click(
fn=app.values_clarification,
outputs=practice_output
)
btn_shadow.click(
fn=app.shadow_work,
outputs=practice_output
)
btn_purpose.click(
fn=app.life_purpose,
outputs=practice_output
)
btn_child.click(
fn=app.inner_child_healing,
outputs=practice_output
)
btn_mindfulness.click(
fn=app.mindfulness_practice,
outputs=practice_output
)
btn_strengths.click(
fn=app.strengths_identification,
outputs=practice_output
)
btn_daily.click(
fn=app.daily_practice,
outputs=practice_output
)
btn_integration.click(
fn=app.integration_exercise,
outputs=practice_output
)
btn_map.click(
fn=app.create_personal_map,
outputs=practice_output
)
# Обработчики для быстрых практик
quick_practice_1.click(
fn=lambda: """
## 🌬️ 5-минутная медитация осознанности
1. **Сядьте удобно** и закройте глаза
2. **Направьте внимание на дыхание** - просто наблюдайте вдохи и выдохи
3. **Когда ум отвлекается** - мягко верните внимание к дыханию
4. **Расширьте осознавание** на все тело и звуки вокруг
5. **Постепенно возвращайтесь** - откройте глаза
*Практикуйте 5 минут, возвращаясь к настоящему моменту*
""",
outputs=quick_output
)
quick_practice_2.click(
fn=lambda: """
## 📝 Утренние страницы
**Инструкция:**
- Пишите 3 страницы от руки сразу после пробуждения
- Пишите все, что приходит в голову, без цензуры
- Не перечитывайте и не анализируйте
- Позвольте мыслям течь свободно
**Вопросы для начала:**
- О чем я думаю прямо сейчас?
- Что меня беспокоит?
- Чего я хочу сегодня?
- Что требует моего внимания?
""",
outputs=quick_output
)
quick_practice_3.click(
fn=lambda: """
## 🙏 Практика благодарности
**Составьте список из 10 вещей, за которые вы благодарны:**
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
**Глубинные вопросы:**
- Кому я благодарен и почему?
- Какие трудности принесли мне ценные уроки?
- За какие простые радости я благодарен сегодня?
- Как благодарность меняет мое восприятие жизни?
""",
outputs=quick_output
)
# Сохранение рефлексий
def save_insight(reflection, user_id="default"):
if not reflection.strip():
return "Введите ваши размышления", insights_display.value
if user_id not in app.user_data:
app.user_data[user_id] = {"insights": [], "practices": []}
insight = {
"text": reflection,
"timestamp": datetime.now().isoformat(),
"type": "reflection"
}
app.user_data[user_id]["insights"].append(insight)
# Обновляем отображение инсайтов
insights_text = "## 💫 Ваши инсайты:\n\n"
user_insights = app.user_data[user_id].get("insights", [])
if user_insights:
for i, ins in enumerate(reversed(user_insights[-5:]), 1):
date = datetime.fromisoformat(ins['timestamp']).strftime("%d.%m %H:%M")
insights_text += f"**{i}. {date}:** {ins['text'][:100]}...\n\n"
else:
insights_text += "Пока нет сохраненных инсайтов. Начните записывать свои мысли!"
return "✅ Инсайт сохранен!", insights_text
save_reflection_btn.click(
fn=save_insight,
inputs=[reflection_input],
outputs=[gr.Textbox(value="", visible=False), insights_display]
).then(
fn=lambda: "",
outputs=reflection_input
)
# Интеграционный отчет
def generate_integration_report(user_id="default"):
if user_id not in app.user_data or not app.user_data[user_id].get("insights"):
return "Пока недостаточно данных для отчета. Продолжайте практику!"
insights = app.user_data[user_id]["insights"]
total_insights = len(insights)
report = f"""
## 📊 Интеграционный отчет
**Всего инсайтов:** {total_insights}
**Период практики:** {len(insights)} дней
**Ключевые темы ваших открытий:**
- [Проанализируйте ваши записи и выделите повторяющиеся темы]
- [Какие паттерны мышления вы заметили?]
- [Что требует большего внимания и исследования?]
**Рекомендации для дальнейшего пути:**
1. Продолжайте ежедневную практику рефлексии
2. Углубляйте исследования в наиболее значимых для вас сферах
3. Практикуйте интеграцию открытий в повседневную жизнь
4. Будьте терпеливы и добры к себе в этом процессе
*Каждый инсайт — это шаг к большей целостности и осознанности.*
"""
return report
integration_report_btn.click(
fn=generate_integration_report,
outputs=progress_output
)
gr.Markdown("""
---
### 🌈 Принципы глубинного самопознания:
- **Присутствие** - Будьте здесь и сейчас
- **Принятие** - Принимайте все аспекты себя без осуждения
- **Любопытство** - Исследуйте с интересом, а не критикой
- **Терпение** - Позвольте процессу разворачиваться естественно
- **Целостность** - Помните, что вы уже целостны и совершенны
*«Ты должен сам стать тем изменением, которое хочешь увидеть в мире»* — Махатма Ганди
""")
return interface
# Создаем и запускаем интерфейс
demo = create_interface()
if __name__ == "__main__":
demo.launch(
server_name="0.0.0.0",
share=True
)