diff --git a/README.md b/README.md index f727489..aa287e2 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ ```mermaid graph TB - subgraph "Основной цикл (app/main.py)" + subgraph "Основной цикл" A[main() - основной цикл] --> B{Режим активации} B -->|Ожидание wake word| C[wait_for_wakeword()] B -->|Режим диалога| D[listen() в режиме follow-up] @@ -38,23 +38,22 @@ graph TB E --> F[Анализ команды] end - subgraph "Аудио подсистема (app/audio/)" - C1[wakeword.py
- wait_for_wakeword()
- check_wakeword_once()] - E1[stt.py
- listen()
- get_recognizer()] - G1[tts.py
- speak()
- initialize()] - H1[sound_level.py
- parse_volume_text()
- set_volume()] + subgraph "Аудио подсистема" + C1[wait_for_wakeword()
wakeword.py
check_wakeword_once()] + E1[listen()
stt.py
get_recognizer()] + G1[speak()
tts.py
initialize()] + H1[parse_volume_text()
sound_level.py
set_volume()] C1 -.-> E1 E1 -.-> G1 H1 -.-> G1 end - subgraph "Ядро (app/core/)" - F1[commands.py
- is_stop_command()
- _normalize_text()] - F2[ai.py
- ask_ai_stream()
- translate_text()] - F3[cleaner.py
- clean_response()] - F4[config.py
- Настройки проекта] - F5[smalltalk.py
- get_smalltalk_response()] + subgraph "Ядро" + F1[is_stop_command()
commands.py
_normalize_text()] + F2[ask_ai_stream()
ai.py
translate_text()] + F3[clean_response()
cleaner.py] + F5[get_smalltalk_response()
smalltalk.py] F --> F1 F --> F2 @@ -62,13 +61,13 @@ graph TB F --> F5 end - subgraph "Функции (app/features/)" - I1[weather.py
- get_weather_report()] - I2[timer.py
- get_timer_manager()] - I3[alarm.py
- get_alarm_clock()] - I4[stopwatch.py
- get_stopwatch_manager()] - I5[music.py
- get_music_controller()] - I6[cities_game.py
- get_cities_game()] + subgraph "Функции" + I1[get_weather_report()
weather.py] + I2[get_timer_manager()
timer.py] + I3[get_alarm_clock()
alarm.py] + I4[get_stopwatch_manager()
stopwatch.py] + I5[get_music_controller()
music.py] + I6[get_cities_game()
cities_game.py] F --> I1 F --> I2 @@ -138,7 +137,7 @@ graph TB ```mermaid graph TD subgraph "Активация и распознавание" - A[wakeword.py
wait_for_wakeword()] --> B[stt.py
listen()] + A[wait_for_wakeword()
wakeword.py] --> B[listen()
stt.py] B --> C[Распознанный текст] end @@ -147,21 +146,21 @@ graph TD end subgraph "Обработка специфических команд" - D -->|Small talk| E[smalltalk.py
get_smalltalk_response()] - D -->|Стоп команда| F[commands.py
is_stop_command()] - D -->|Таймер| G[timer.py
parse_command()] - D -->|Будильник| H[alarm.py
parse_command()] - D -->|Секундомер| I[stopwatch.py
parse_command()] - D -->|Громкость| J[sound_level.py
parse_volume_text()
set_volume()] - D -->|Погода| K[weather.py
get_weather_report()] - D -->|Музыка| L[music.py
parse_command()] - D -->|Перевод| M[ai.py
parse_translation_request()
translate_text()] - D -->|Города| N[cities_game.py
handle()] - D -->|Обычный вопрос| O[ai.py
ask_ai_stream()] + D -->|Small talk| E[get_smalltalk_response()
smalltalk.py] + D -->|Стоп команда| F[is_stop_command()
commands.py] + D -->|Таймер| G[parse_command()
timer.py] + D -->|Будильник| H[parse_command()
alarm.py] + D -->|Секундомер| I[parse_command()
stopwatch.py] + D -->|Громкость| J[parse_volume_text()
sound_level.py
set_volume()] + D -->|Погода| K[get_weather_report()
weather.py] + D -->|Музыка| L[parse_command()
music.py] + D -->|Перевод| M[parse_translation_request()
ai.py
translate_text()] + D -->|Города| N[handle()
cities_game.py] + D -->|Обычный вопрос| O[ask_ai_stream()
ai.py] end subgraph "Ответ пользователю" - E --> P[cleaner.py
clean_response()] + E --> P[clean_response()
cleaner.py] F --> P G --> P H --> P @@ -172,7 +171,7 @@ graph TD M --> P N --> P O --> P - P --> Q[tts.py
speak()] + P --> Q[speak()
tts.py] end subgraph "Цикл управления"