ASD ForecastModuł Analityczno-Predykcyjny (AI)
Widok podstawowy
● Prezentacja modułu

Prognozy zapasów + doradca AI dla ASD Forecast

System analizuje historię magazynu, przewiduje, czego i kiedy zabraknie, a sztuczna inteligencja co cykl przygotowuje czytelny raport z rekomendacjami — co warto uzupełnić i dlaczego.

📈 Prognoza zapotrzebowania ⚠️ Ryzyko braków 🚚 Rekomendacje załadunku 🤖 Raport AI (AWS Bedrock) 🗓️ Cyklicznie i na żądanie
🗄️
Dane z systemuwydania, załadunki, stany magazynowe
📈
Silnik prognozśrednia + trend + reguły (proste, bez „magii")
🤖
Doradca AIAWS Bedrock — streszczenie i rekomendacje
🖥️
Interfejs w ASD Forecastnowa zakładka „Prognozowanie"
Po co to jest

Trzy pytania, na które system odpowiada za Ciebie

Zamiast ręcznie przeglądać setki produktów, magazynier i kierownik dostają gotowe odpowiedzi.

📦

Czego zabraknie?

Dla każdego produktu w każdym punkcie system liczy przewidywany stan i ostrzega, gdy grozi brak — z informacją za ile dni.

🚚

Co i ile załadować?

System proponuje ilość uzupełnienia, tak aby pokryć prognozowane zapotrzebowanie i nie przekroczyć pojemności punktu.

🤖

Na czym się skupić?

AI co cykl streszcza sytuację po polsku i wskazuje priorytety — które pozycje wymagają reakcji w pierwszej kolejności.

Ważne: system doradza, nie działa sam. Wszystkie rekomendacje to sugestie — decyzję o uzupełnieniu czy zmianie progu podejmuje człowiek.
🔍 Szczegóły techniczne
Każda prognoza (dokument ProductForecast) zawiera: średnie dzienne zapotrzebowanie, trend, prognozę popytu w horyzoncie (domyślnie 14 dni), przewidywany stan, dni do wyczerpania, poziom ryzyka (None/Low/Medium/High), rekomendowany załadunek i sugerowane minimum. Wyniki są zapisywane per organizacja (multi-tenant) i udostępniane przez API.
Jak to działa — przepływ

Od danych w magazynie do rekomendacji AI

Cztery kroki. Każdy klocek robi jedną rzecz i przekazuje wynik dalej.

1
🗄️

Dane historyczne

Wydania, załadunki, zwroty i aktualne stany — prosto z modułów ASD Forecast.

🔍 Szczegóły
Z modułu Transactions (GetProductOperationsRequest) i DistributionPoints (GetDistributionPointsStockRequest) — przez wewnętrzne kontrakty modułowe.
2
📈

Silnik prognoz

Prosta matematyka: średnia zużycia + trend + reguły progowe. Bez uczenia maszynowego.

🔍 Szczegóły
Średnia ruchoma z 30 dni + regresja liniowa (trend) + reguły ryzyka. Wynik: ProductForecast per produkt/punkt.
3
🤖

Doradca AI

Bierze gotowe prognozy i tworzy raport: streszczenie + priorytety + rekomendacje.

🔍 Szczegóły
AWS Bedrock (Converse API). Wejście = zdystylowane prognozy (nie surowe transakcje). Wyjście = JSON.
4
🖥️

Interfejs

Tabela prognoz, wykresy, rekomendacje i raporty AI w aplikacji ASD Forecast.

🔍 Szczegóły
Nowy moduł frontendu „Prognozowanie" (React + MUI), 4 zakładki (Prognozy, Rekomendacje, Raporty AI, Ustawienia). Wyniki przez REST API.
Dlaczego AI dostaje gotowe prognozy, a nie surowe dane? Matematyka już wyłuskała sygnał (popyt, trend, ryzyko). AI skupia się na tym, w czym jest najlepsze: ocenie i ułożeniu priorytetów dla setek produktów — taniej i trafniej niż przeliczanie liczb od zera.
Moduł AI — część doradcza

Jak AI łączy się z modelem i co zwraca

☁️ Połączenie: AWS Bedrock

Aplikacja woła model w chmurze AWS przez Amazon Bedrock. Bezpiecznie, bez wysyłania danych do zewnętrznych firm — wszystko zostaje w infrastrukturze AWS klienta.

🧠 Model: Gemma 3 12B IT

W prezentowanej konfiguracji używamy Gemma 3 12B IT (google.gemma-3-12b-it) w regionie eu-west-1: dobry kompromis jakości, szybkości i kosztu.

🧾 Pełna kontrola kosztu

Raport zapisuje wykorzystane tokeny, a koszt wynika z prostego wzoru: input tokens × cena wejścia + output tokens × cena wyjścia. Model można zmienić z konfiguracji.

📋 Co AI zwraca (raport doradczy)

Ustrukturyzowana odpowiedź — nie luźny tekst:

Streszczenie po polsku

kondycja zapasów w 3–4 zdaniach

Ocena zdrowia 0–100

jeden wskaźnik „na pierwszy rzut oka"

Kluczowe ryzyka

lista najważniejszych zagrożeń

Rekomendacje z priorytetem

akcja, uzasadnienie, pewność

KrytycznyWysokiŚredniNiski
AI ocenia „czy warto coś zrobić" — ale nie robi tego samo. Zwraca rekomendacje jako dane; zastosowanie (np. zmiana minimum, zlecenie załadunku) pozostaje decyzją człowieka. To zgodne z zasadą ASD Forecast: moduł pełni funkcję wspierającą.
🔍 Szczegóły techniczne — integracja AI
• Klient: AWSSDK.BedrockRuntime, metoda ConverseAsync (uniwersalna dla modeli).
• Model: google.gemma-3-12b-it w eu-west-1; ustawiany przez forecasting:ai:bedrock:modelId.
• Provider: forecasting:ai:provider=Bedrock; model musi być włączony na koncie AWS i dostępny w wybranym regionie.
• Fallback lokalny jest wyłączony (AllowLocalFallback=false), żeby nie udawać AI wynikiem z reguł — błąd Bedrock daje status Failed i widoczny generationError.
// Odpowiedź AI (zapisywana jako dokument AiReport)
{
  "overallHealthScore": 58,
  "executiveSummary": "Umiarkowana kondycja...",
  "keyRisks": [ "Wiertło 10mm — brak za ~5 dni" ],
  "recommendations": [{
    "scope": "Product",
    "actionType": "ReplenishNow",
    "priority": "Critical",
    "rationale": "Prognoza 32,6 przy stanie 10",
    "suggestedValue": 30,
    "confidence": 0.9
  }]
}
📨 Co dokładnie trafia do modelu (wejście)
Do modelu lecą dwie wiadomości przez Bedrock Converse: system prompt (rola + wymagany format) oraz user prompt (polecenie + zdystylowany kontekst w JSON). Wysyłamy tylko policzone prognozy i agregaty — żadnych surowych transakcji ani danych osobowych. Parametry wywołania: maxTokens=3000, temperature 0.3, modelId z konfiguracji.
① System prompt — rola + kontrakt wyjścia
// rola modelu (skrót, wiernie)
Jesteś starszym analitykiem zarządzania
zapasami. Rola WYŁĄCZNIE doradcza — nie
podejmujesz decyzji, tylko oceniasz dane
i proponujesz priorytety (wdraża je człowiek).
Dostajesz przetworzone prognozy (sygnał już
policzony przez warstwę deterministyczną).
Odpowiadaj tylko po polsku.
Zwróć wyłącznie poprawny JSON o strukturze:
{ executiveSummary, overallHealthScore 0-100,
  overallAssessment, keyRisks[],
  recommendations[{ scope, actionType,
    priority, title, rationale,
    suggestedValue, confidence 0-1 }] }
② User prompt — polecenie + kontekst (JSON)
// polecenie
Przeanalizuj poniższe dane prognostyczne
i wygeneruj raport doradczy w formacie JSON.
Skup się na priorytetyzacji ryzyk i
konkretnych, wykonalnych rekomendacjach.
// kontekst — zdystylowany (przykład)
{
  "periodFrom":"2026-05-17", "periodTo":"2026-06-16",
  "productsCovered":4, "distributionPointsCovered":1,
  "forecastsIncluded":4, "forecastsOmitted":0,
  "riskDistribution":{ "high":1,"medium":0,"low":1,"none":2 },
  "loadingRecommendationCount":1, "slowMoverCount":2,
  "selectionPolicy":"wszystkie prognozy / wycinek wg ryzyka",
  "forecasts":[{
    "distributionPointName":"Magazyn Hala A",
    "productName":"Wiertło 10mm", "productNumber":"NR-...",
    "averageDailyDemand":1.08, "demandTrendPerDay":0.04,
    "currentStock":10, "upperLimit":60,
    "forecastedDemand":32.6, "predictedStockLevel":-22.6,
    "daysUntilStockout":5, "shortageRisk":"High",
    "recommendedLoadingQuantity":30, "suggestedMinimumLevel":16
  }]
}
Każda pozycja forecasts[] niesie 16 policzonych pól (popyt, trend, dni z popytem, stan, prognoza, dni do wyczerpania, ryzyko, rekomendowany załadunek, sugerowane minimum). Przy wielu produktach lista to priorytetowy wycinek (≤200) uporządkowany wg ryzyka i pilności, a pełną skalę opisują riskDistribution + liczniki — model dostaje o tym jawną informację w selectionPolicy.
Koszt AI

Ile kosztuje jedno wygenerowanie raportu?

Koszt nie zależy od liczby wszystkich produktów w bazie wprost. Zależy od tego, ile prognoz wkładamy do payloadu AI, ile szczegółowych przykładów ryzyka dodajemy i jak długą odpowiedź wygeneruje model.

Rekomendowany wybór

Gemma 3 12B IT google.gemma-3-12b-it w eu-west-1. W praktyce: zauważalnie szybsza niż 27B, a nadal wystarczająco dobra do polskiego raportu doradczego JSON.

📦 Ile danych trafia do modelu?

W przykładowym raporcie analizowany był okres 90 dni (2026-03-19 – 2026-06-16). Do modelu trafiają agregaty dla całej organizacji oraz domyślnie maks. 12 szczegółowych prognoz (MaxForecastsInAiPayload=12) + przykłady ryzyk.

🧮 Wzór kosztu

koszt = inputTokens / 1M × cenaInput + outputTokens / 1M × cenaOutput. Backend zapisuje dziś TokensUsed jako sumę tokenów; kalkulator rozdziela je jawnie na input/output.

Przykład z ostatniego raportu3 118tokenów łącznie zapisanych jako TokensUsed
Koszt 1 raportu Gemma 12B$0.00053dla domyślnego splitu 2 300 input + 818 output
Input tokens2 300prompt + JSON z prognozami i przykładami
Output tokens818wygenerowany raport JSON

⚙️ Kalkulator zależny od ustawień

input ≈ 2 300 output = 818 miesięcznie ≈ $0.00053
Model do testówModel ID / uwagaInput / 1MOutput / 1MKoszt 1 raportuKoszt / mies.
Wybrany Gemma 3 12B ITgoogle.gemma-3-12b-it$0.11$0.34
Gemma 3 4B ITgoogle.gemma-3-4b-it — szybki baseline$0.05$0.09
Gemma 3 27B ITgoogle.gemma-3-27b-it — wariant jakościowy$0.27$0.45
Claude Haiku 4.5eu.anthropic.claude-haiku-4-5... — cena publiczna Anthropic; Bedrock do potwierdzenia$1.00$5.00
GPT OSS 120Bopenai.gpt-oss-120b-1:0 — test porównawczy$0.1545$0.6180
Interpretacja: dla obecnego payloadu koszt pojedynczego raportu Gemma 12B jest ułamkiem centa. Znaczący koszt pojawi się dopiero przy bardzo dużej liczbie organizacji, częstych raportach lub zwiększeniu MaxForecastsInAiPayload do setek pozycji.
🔍 Szczegóły techniczne — od czego koszt naprawdę zależy
Input rośnie z liczbą pozycji w payloadzie: min(liczba prognoz, MaxForecastsInAiPayload) × ok. 70 tokenów + przykłady ryzyk + stały prompt systemowy.
Output rośnie z długością JSON-a: liczba rekomendacji, szczegółowość uzasadnień, lista ryzyk; górny limit trzyma forecasting:ai:bedrock:MaxTokens.
Ustawienia prognoz (horyzont, okno analizy, progi ryzyka) nie powiększają promptu liniowo, ale zmieniają liczbę pozycji wysokiego/średniego ryzyka, więc mogą zwiększyć liczbę rekomendacji i output.
Model i region zmieniają stawkę za 1M tokenów. Slajd używa stawek on-demand Standard dla Europe (Ireland) tam, gdzie AWS publikuje regionalny cennik.
Źródła cen i dostępności: AWS Bedrock Pricing, Gemma 3 12B, Claude Haiku 4.5 pricing, GPT OSS 120B. Ceny są szacunkiem — przed ofertą handlową trzeba potwierdzić region, tier, cache i batch w konsoli AWS.
Konfiguracja

Parametry prognoz ustawiasz sam — per organizacja

Zakładka „Ustawienia" steruje tym, jak liczone są prognozy. Te same wartości obowiązują przy generowaniu na żądanie i w nocnym przebiegu — nie ma sztywno zaszytych liczb.

🎯 Horyzont i analiza

Horyzont — na ile dni w przód prognozujemy (np. 7 / 14 / 30). Okno analizy — ile historii zasila średnią i trend. Pokrycie — bufor sugerowanego minimum.

🛟 Zapas bezpieczeństwa

Czas dostawy, poziom obsługi (z) i tłumienie trendu — sterują pokryciem na czas dostawy, zapasem bezpieczeństwa i ostrożnością ekstrapolacji.

🚦 Progi ryzyka

Niezależne od horyzontu: po ilu dniach do wyczerpania pozycja jest wysokiego / niskiego ryzyka.

🗓️ Harmonogram AI

Konfiguracja cyklicznego raportu AI mieści się w tej samej zakładce — jedno miejsce na całą konfigurację modułu.

Jeden punkt prawdy: zmiana horyzontu czy progów od razu zmienia rozkład ryzyka, rekomendacje i przewidywany stan — w UI, przy generowaniu ręcznym i w nocnym odświeżaniu.
🔍 Szczegóły techniczne — jak to działa
• Zapis per organizacja jako dokument ForecastingSettings; gdy brak — obowiązują domyślne ForecastingOptions.
• Rozwiązywanie parametrów w jednym miejscu: żądanie → ustawienia organizacji → domyślne, więc nocny job też respektuje wybór.
• Progi ryzyka odłączone od horyzontu: HighRiskDays / LowRiskDays (0 = wyprowadź z horyzontu).
• Endpointy: GET/PUT /forecasting/settings (zapis: Administrator).
Na żywo

Kalkulator

Ten sam algorytm co w produkcie, policzony w przeglądarce. Suwaki po lewej to dane wejściowe; po prawej widzisz, co system z nich wylicza — w czasie rzeczywistym.

Popyt (dane historyczne)
30
4
0.06
25
0
Magazyn
40
120
Parametry (Ustawienia)
14
7
3
1.64
0.85
14
28
Ocena ryzyka braku:
Średni popyt / dzień
Trend / dzień
Prognoza popytu (horyzont)
Dni z popytem
Przewidywany stan (koniec horyzontu)
Dni do wyczerpania
Sugerowane minimum
Rekomendowany załadunek
Popyt historyczny Prognoza popytu Przewidywany stan Sugerowane minimum
To realny silnik: kod policzający te liczby to wierny port produkcyjnego MovingAverageTrendForecaster — średnia z pełnego okna analizy, istotny statystycznie i tłumiony trend, pokrycie czasu dostawy, zapas bezpieczeństwa z·σ·√(czas dostawy), oraz te same reguły ryzyka i rekomendacji.
🔍 Szczegóły techniczne — co dokładnie liczy
Kalkulator pokazuje ten sam mechanizm decyzyjny co backend: z historii wydań buduje dzienny popyt, symuluje przyszłe zejście zapasu, liczy sugerowane minimum i dopiero na końcu nadaje ryzyko. W produkcji popyt pochodzi z operacji Withdrawal; w kalkulatorze suwaki generują przykładową serię danych, żeby dało się zobaczyć wpływ parametrów na żywo.

Popyt (dane historyczne)

Okno analizy (dni)

Ile ostatnich dni historii bierze algorytm. Dłuższe okno wygładza wynik, krótsze szybciej reaguje na zmianę zużycia.

Bazowy popyt / dzień

Średni poziom zużycia w symulacji. W produkcji wynika z sumy wydań magazynowych podzielonej przez liczbę dni w oknie analizy.

Trend / dzień

Symulowany kierunek zmian popytu. Dodatni trend oznacza rosnące zużycie, ujemny malejące. Algorytm użyje go tylko wtedy, gdy jest statystycznie wiarygodny.

Zmienność (%)

Jak bardzo dzienny popyt skacze wokół średniej. Zwiększa odchylenie standardowe σ, a więc zapas bezpieczeństwa i sugerowane minimum.

Rzadkość — dni bez popytu (%)

Symuluje produkty pobierane sporadycznie. Dużo dni zerowych obniża średnią i utrudnia zaufanie trendowi.

Dni z popytem

Wynik pomocniczy: ile dni w oknie miało zużycie większe od zera. Pokazuje, czy produkt rotuje regularnie, czy sporadycznie.

Magazyn

Stan bieżący

Ile sztuk jest teraz w danym punkcie dystrybucyjnym. Od tego odejmowana jest prognozowana konsumpcja w kolejnych dniach.

Limit górny

Maksymalna pojemność lub sensowny poziom zatowarowania. Rekomendowany załadunek nie przekroczy wolnego miejsca: limit - stan.

Przewidywany stan

Stan po zakończeniu horyzontu: max(0, stan - prognozowany popyt). Spadek poniżej minimum daje ryzyko średnie.

Dni do wyczerpania

Pierwszy dzień, w którym symulowany stan spada do zera lub niżej. To główny sygnał dla wysokiego i niskiego ryzyka.

Parametry (Ustawienia)

Horyzont (dni)

Na ile dni do przodu liczymy popyt i stan. Wpływa na sumę prognozowanego popytu oraz przewidywany stan końcowy.

Pokrycie minimum (dni)

Ile dni zapasu chcemy mieć po uzupełnieniu. Razem z czasem dostawy buduje część deterministyczną sugerowanego minimum.

Czas dostawy (dni)

Ile dni mija od decyzji o uzupełnieniu do realnej dostępności towaru. Im dłuższy, tym większy zapas bezpieczeństwa.

Poziom obsługi (z)

Współczynnik ochrony przed brakiem. Wyższe z oznacza większy bufor dla produktów o zmiennym popycie.

Tłumienie trendu

Współczynnik φ od 0 do 1. Niższy szybciej wygasza trend, wyższy pozwala trendowi mocniej działać w kolejnych dniach.

Próg wysokiego ryzyka

Jeśli wyczerpanie nastąpi w ciągu tylu dni, produkt dostaje ryzyko wysokie i trafia na górę listy.

Próg niskiego ryzyka

Jeśli wyczerpanie jest dalsze niż próg wysoki, ale nadal mieści się w tym progu, produkt dostaje ryzyko niskie.

Rekomendowany załadunek

Ilość potrzebna, żeby pokryć popyt w horyzoncie i zakończyć z zapasem co najmniej na poziomie sugerowanego minimum.

Obliczenia krok po kroku

1. Średni popyt
avg = suma(dzienny_popyt) / liczba_dni. Dni bez popytu zostają w oknie, więc produkty sporadyczne mają niższą średnią.
2. Zmienność
σ = odchylenie standardowe(dzienny_popyt). Im większe wahania, tym większy bufor bezpieczeństwa.
3. Trend
Liczymy nachylenie regresji liniowej. Trend wchodzi do prognozy tylko przy co najmniej 14 obserwacjach i |slope| / se ≥ 2; inaczej slope = 0.
4. Prognoza dzienna
forecast(t) = max(0, level + slope × Σφ^k). Suma Σφ^k tłumi trend, żeby nie rósł bez końca.
5. Popyt w horyzoncie
forecastedDemand = Σ forecast(t) dla dni od 1 do horyzontu.
6. Stan dzienny
stock(t) = stan_bieżący - Σ forecast(i). Pierwszy dzień z stock(t) ≤ 0 to dni do wyczerpania.
7. Sugerowane minimum
minimum = ceil(avg × (pokrycie + czas_dostawy) + z × σ × √czas_dostawy). To połączenie pokrycia deterministycznego i bezpieczeństwa.
8. Ryzyko
High: wyczerpanie ≤ próg wysoki. Medium: stan końcowy < minimum. Low: wyczerpanie ≤ próg niski. W innym przypadku None.
9. Załadunek
recommended = ceil(max(0, forecastedDemand + minimum - stan)), potem ograniczenie do wolnej pojemności: min(recommended, limit - stan).
10. Brak popytu
Jeśli avg = 0, system nie rekomenduje załadunku. To chroni przed automatycznym zatowarowaniem pozycji, które nie rotują.
Cykliczność

Raport AI generuje się automatycznie — wedle ustawień

W interfejsie ustawiasz, jak często system ma sam przygotować raport. Można też wygenerować go ręcznie w każdej chwili.

🗓️

Co tydzień

dla szybko rotujących magazynów

🗓️

Co miesiąc

domyślny, najczęstszy wybór

🗓️

Co kwartał

przegląd strategiczny

🗓️

Co N dni

dowolny własny interwał

Plus zawsze „na żądanie": przycisk „Generuj raport AI teraz" uruchamia model w tle — raport pojawia się ze statusem „Generowanie" i sam się odświeża po zakończeniu. Przydatne na spotkaniu lub przed zamówieniem.
🔍 Szczegóły techniczne — jak działa cykl
• Konfigurowane w zakładce „Ustawienia"; zapisywane per organizacja jako dokument AiReportSchedule (częstotliwość, nextRunAt, włączony tak/nie).
• Zadanie Quartz (GenerateScheduledAiReportsJob) co godzinę skanuje harmonogramy i uruchamia generację dla tych, których termin minął — następnie przesuwa nextRunAt o jeden okres.
• Harmonogram jest idempotentny: termin przesuwa się przed właściwą (wolną) pracą AI, więc ponowne uruchomienie nie generuje raportu dwa razy.
Interfejs w ASD Forecast

Nowa zakładka „Prognozowanie" — w stylu reszty aplikacji

Prognozy
Prognozy — 4 zakładki, karty ryzyka, aktywne parametry i tabela pozycji
Rekomendacje
Rekomendacje — konkretne pozycje, ryzyko, sugerowane minimum i ilość uzupełnienia
Interfejs — AI i ustawienia

Raport doradczy AI i ustawienia modułu

Raport AI
Raport AI — wskaźnik zdrowia, streszczenie, typy problemów i przykłady pozycji
Ustawienia
Ustawienia — parametry prognoz (horyzont, progi ryzyka) i harmonogram AI
🔍 Szczegóły techniczne — dostęp i role
Generowanie i konfigurację harmonogramu może wykonać Administrator organizacji; Magazynier ma dostęp tylko do odczytu. Dane są ściśle odseparowane między organizacjami (multi-tenant).
Nowa identyfikacja

ASD Forecast

Nazwa jednoznacznie łączy markę ASD z modułem prognozowania zapasów i decyzji magazynowych.

ASD
marka
+
ASD Forecast
PRODUKCJA · MAGAZYN · AI
nowa nazwa i logo

🔤 Skąd nazwa

ASD — spójność z marką i ekosystemem klienta. Forecast — jasna obietnica produktu: prognozowanie zapotrzebowania, ryzyka braków i rekomendacji uzupełnień.

🎨 Nowe logo

Znak „rosnącego przepływu / prognozy" (węzły i strzałka w górę) — symbolizuje optymalizację i predykcję. Spójny z kolorystyką aplikacji.

Zakres zmiany: nazwa i logo w interfejsie (panel boczny, logowanie, tytuły), dokumentacji i tej prezentacji. Logika i działanie systemu pozostają bez zmian — to zmiana identyfikacji wizualnej i komunikacji produktu.
🔍 Szczegóły techniczne — co dokładnie zmieniono
Podmieniono: logo (panel boczny + ekran logowania), tytuł aplikacji, teksty interfejsu (PL/EN/DE), strony regulaminu/polityki, dokumentację oraz tę prezentację. Wewnętrzna struktura kodu (nazwy techniczne modułów, identyfikatory systemowe) pozostała nietknięta — zmiana dotyczy warstwy marki, więc nie wpływa na stabilność działania.
Podsumowanie

Co zostało zrobione

✅ Zrealizowane

Silnik prognoz

popyt, przewidywany stan, ryzyko, rekomendacje, sugerowane minimum

Doradca AI przez AWS Bedrock

raport po polsku + rekomendacje JSON; model Gemma 3 12B IT

Cykliczność + konfiguracja w UI

tydzień / miesiąc / kwartał / co N dni + na żądanie

Konfigurowalne parametry per organizacja

horyzont, okno analizy, progi ryzyka i zapas bezpieczeństwa — sterują prognozą na żądanie i nocną

Moduł frontendu

4 zakładki w stylu ASD Forecast, wykresy, role i wielojęzyczność (PL/EN/DE)

🧩 Architektura w skrócie

Backend: .NET 8 (modularny monolit), nowy moduł Forecasting. Frontend: React + MUI, moduł forecasting. AI: AWS Bedrock. Dane: per-organizacja, bezpiecznie odseparowane.

📌 Do zrobienia

Hosting aplikacji na AWS

uruchomienie środowiska demonstracyjnego lub produkcyjnego, konfiguracja infrastruktury i dostępów

Stworzenie repozytorium na GitLab

przygotowanie miejsca na kod, historię zmian, dostęp zespołu i późniejszy proces CI/CD

🎯 Najważniejsze przesłanie

System przewiduje i doradza — pokazuje, czego zabraknie i co warto zrobić. AI dokłada inteligentne streszczenie i priorytety, ale decyzję zawsze podejmuje człowiek.

🔍 Szczegóły techniczne — komponenty i API
Dokumenty (baza, schemat module_forecasting):
ProductForecast — prognoza per produkt/punkt
ForecastingRun — metadane przebiegu
AiReport — raport AI (streszczenie + rekomendacje)
AiReportSchedule — harmonogram per organizacja
ForecastingSettings — parametry prognoz per organizacja
Wybrane endpointy REST:
POST /forecasting/forecasts/generate
GET /forecasting/forecasts · /recommendations · /summary
POST /forecasting/ai-reports/generate
GET/PUT /forecasting/ai-reports/schedule
GET/PUT /forecasting/settings
Stack: Marten/PostgreSQL · MediatR · MassTransit · Quartz (harmonogram) · AWSSDK.BedrockRuntime · React + TanStack Query + chart.js. Weryfikacja: build bez błędów, testy jednostkowe oraz sprawdzenie na lokalnym API.