WSP.54.81631°N 21.36988°E
HEX0x1d97ba::881f
STATUS SYSTEMUOPTYMALNY

Baza wiedzy

Rdzeń Python

Architektura i technologia

Źródło: dokumentacja Julia AI v1.0 oraz JULIA SYSTEM ARCHITECTURE (PL). Rdzeń to aplikacja Python 3.10+ integrująca MSFS (SimConnect), GUI, audio i HTTP do usług zewnętrznych oraz API Gemini. W repozytorium Pilot Hangar mogą istnieć dodatkowe moduły (np. julia/new1.py) — traktuj je jako powiązane narzędzia/wzorce, nie jako jedyny wpis punktowy Julii opisanej w PDF.

Rola procesu PythonRozwiń / zwiń
  • Logika czasu rzeczywistego — PTT, nagranie, STT, dobór danych (METAR/plan/telemetria), wywołanie LLM, TTS, aktualizacja UI.
  • Most z MSFSPython-SimConnect (telemetria, pozycja, parametry pokładowe).
  • Integracja sieciowaSimBrief, CheckWX, Firebase (REST/SDK — wg implementacji), Stripe/Make po stronie backendu/webhooków.
Hostowanie procesuRozwiń / zwiń
  • Środowisko użytkownika: natywny proces Windows obok MSFS (niska latencja, dostęp do SAPI5, win32api).
  • Dystrybucja komercyjna: dokumentacja przewiduje pakiet PyInstaller / Nuitka + obfuskacja (patrz Bezpieczeństwo).
Wielowątkowość zamiast blokowania GUIRozwiń / zwiń

Zasada

Interfejs nigdy nie może zamierać podczas STT/LLM/pobierania METAR — „w kokpicie” zamrożenie GUI jest ryzykiem operacyjnym.

Podział (z dokumentacji)

WątekOdpowiedzialność
Główny (UI)mainloop() CustomTkinter, tooltipy, szybkie reakcje
SimConnectPętla odczytu telemetrii; ~500 ms w jednym z opisów odświeżania
Audio / AIŚcieżka PTT → plik audio → WhisperGemini → odpowiedź
TTSOsobne wątki dla mow, by synteza nie blokowała okna

Synchronizacja z UI

Z architektury PL: nie wolno zmieniać widgetów Tkinter bezpośrednio z wątków roboczych — wynik jest przekazywany do warstwy UI bezpiecznym mechanizmem (kolejka / after — implementacja w kodzie).

Biblioteki kluczoweRozwiń / zwiń

AI i mowa

  • Gemini 1.5 Pro/Flash — generacja odpowiedzi; kontekst z telemetrii, OFP, METAR.
  • Whisper — ASR; lokalnie lub API; uruchamianie po zwolnieniu PTT.
  • pyttsx3 + SAPI5 — TTS niskiej latencji na Windows.

Symulator i wejścia

  • Python-SimConnect — most danych z MSFS.
  • Pygame — joystick / zdarzenia w czasie rzeczywistym.
  • win32api — część mapowania PTT (wraz z klawiaturą).

GUI

  • CustomTkinter — główne okno, kontrolki, kafelki trasy.
  • Tkinter — m.in. panel ZULU (METAR) i tooltipy.

Audio capture

  • pyaudio — nagrywanie chunkowe dla krótszego TTI po PTT.
PTT i wejściaRozwiń / zwiń
  • Klasa PTTMappingContainer — obsługa wielu wejść (klawiatura + joystick) i global hooking (ograniczenie wycieku klawiszy do innych aplikacji) — opis w dokumentacji technicznej v1.0.
Potok po zwolnieniu PTTRozwiń / zwiń
  1. VAD — przycięcie ciszy.
  2. Whisper — plik .wav → tekst (prompty lotnicze).
  3. Intent routing — pogoda / nawigacja / wyliczenia / procedury.
  4. HTTP — SimBrief (plan), CheckWX (METAR), ewentualnie inne endpointy.
  5. Gemini — odpowiedź na podstawie składanego promptu systemowego.
  6. TTS + aktualizacja ZULU, logu, kafelków.
Integracja z Firebase (klient Python)Rozwiń / zwiń

Z dokumentacji biznesowej:

  • Weryfikacja HWID i pól isPaid przy starcie / cyklicznie (szczegół w kodzie produktu).
  • Synchronizacja ustawień użytkownika (głos, interwały, PTT).
  • Logi „czarnej skrzynki” / telemetryczne — zgodnie z polityką retencji.

Konfiguracja: używaj zmiennych środowiskowych / plików lokalnych poza repozytorium — nie commituj kluczy API.

Model hybrydowy (edge + chmura)Rozwiń / zwiń
  • Lokalnie: STT (Whisper), TTS (SAPI5), SimConnect — działanie przy gorszym łączu.
  • Chmura: Gemini — ciężka analityka; dokumentacja podkreśla odporność na chwilowe problemy sieci dzięki warstwie lokalnej.
Obsługa błędówRozwiń / zwiń
  • NullWriter na stdout/stderr — zapobieganie crashom przy bibliotekach piszących do konsoli w trybie GUI (szczegóły w Bezpieczeństwo).
  • Recovery — zatrzymanie mowy, reset wejścia, przywrócenie spójnego stanu (architektura PL).
  • Timeouty na wywołaniach sieciowych; defensive coding w integracjach.
Konfiguracja (prefiks przykładowy)Rozwiń / zwiń

Dopasuj do faktycznego kodu; typowe kategorie:

  • klucze Gemini / CheckWX / SimBrief,
  • identyfikacja Firebase projektu,
  • ścieżki profili audio i urządzeń wejścia.
Testy (zalecenia inżynierskie)Rozwiń / zwiń
  • Testy bez sieci — parsowanie OFP, kolorowanie METAR, logika intencji (jeśli wydzielona).
  • Testy integracyjne — Symulator / SimConnect w środowisku developerskim; mock HTTP dla SimBrief/CheckWX.
  • Snapshoty promptów — regresja, czy kontekst zawiera METAR/OFP zamiast halucynacji.
ShutdownRozwiń / zwiń
  • Czyste zamknięcie wątków audio i SimConnect; anulowanie zadań przy SIGTERM (jeśli uruchamiane jako usługa); nie polegaj wyłącznie na atexit w środowisku spakowanym exe.
Checklist rdzeniaRozwiń / zwiń
  • Brak sekretów w repo.
  • UI nigdy nie blokuje się na STT/LLM/TTS.
  • SimConnect ma ścieżkę reconnect bez crasha całości.
  • PTT — wzajemne wykluczanie z TTS (PTT_ACTIVE / stop_julia_mowy).
  • Wersja buildu widoczna w logu startowym.
© 2026 Julia System. Wszelkie prawa zastrzeżone. Zaprojektowane dla wszystkich pilotów.