diff --git a/Folien/AISE502_Projekt_Folien.pdf b/Folien/AISE502_Projekt_Folien.pdf index 0dbf4d3..1a8640c 100644 Binary files a/Folien/AISE502_Projekt_Folien.pdf and b/Folien/AISE502_Projekt_Folien.pdf differ diff --git a/Folien/AISE502_Projekt_Folien.tex b/Folien/AISE502_Projekt_Folien.tex index a6a9694..03c7cb5 100644 --- a/Folien/AISE502_Projekt_Folien.tex +++ b/Folien/AISE502_Projekt_Folien.tex @@ -212,10 +212,10 @@ The next frames show \textbf{low-fidelity sketches} of the platform from the use \begin{frame}{Three users, one system -- and one working day} \begin{columns}[T] -\begin{column}{0.62\textwidth} +\begin{column}{0.64\textwidth} \includegraphics[width=\linewidth]{../project_exercise/ui_sketches/00_user_journey.png} \end{column} -\begin{column}{0.37\textwidth} +\begin{column}{0.35\textwidth} \footnotesize \begin{itemize}\setlength\itemsep{3pt} \item \textbf{Analyst}: trusts the numbers, checks the explanations @@ -229,10 +229,10 @@ The next frames show \textbf{low-fidelity sketches} of the platform from the use \begin{frame}{Sketch 1 -- portfolio overview} \begin{columns}[T] -\begin{column}{0.62\textwidth} +\begin{column}{0.64\textwidth} \includegraphics[width=\linewidth]{../project_exercise/ui_sketches/01_portfolio_dashboard.png} \end{column} -\begin{column}{0.37\textwidth} +\begin{column}{0.35\textwidth} \footnotesize \begin{itemize}\setlength\itemsep{3pt} \item Positions from \texttt{PortfolioService}; return and Sharpe from \texttt{PerformanceService}; volatility and VaR from \texttt{RiskService} (Sections 2.3, 2.4) @@ -245,10 +245,10 @@ The next frames show \textbf{low-fidelity sketches} of the platform from the use \begin{frame}{Sketch 2 -- market data} \begin{columns}[T] -\begin{column}{0.62\textwidth} +\begin{column}{0.64\textwidth} \includegraphics[width=\linewidth]{../project_exercise/ui_sketches/02_market_data.png} \end{column} -\begin{column}{0.37\textwidth} +\begin{column}{0.35\textwidth} \footnotesize \begin{itemize}\setlength\itemsep{3pt} \item Configurable tickers, historical and recent prices; the live API is rate-limited, so the \textbf{mandatory cache/snapshot fallback} takes over and every figure is marked \emph{snapshot} (Section 2.1) @@ -261,10 +261,10 @@ The next frames show \textbf{low-fidelity sketches} of the platform from the use \begin{frame}{Sketch 3 -- news and insights} \begin{columns}[T] -\begin{column}{0.62\textwidth} +\begin{column}{0.64\textwidth} \includegraphics[width=\linewidth]{../project_exercise/ui_sketches/03_news_insights.png} \end{column} -\begin{column}{0.37\textwidth} +\begin{column}{0.35\textwidth} \footnotesize \begin{itemize}\setlength\itemsep{3pt} \item Raw news stored with provenance by \texttt{NewsIngestionService}; the \texttt{ResearchAgent} returns a strict, schema-validated \texttt{Insight} (Section 2.2) @@ -277,10 +277,10 @@ The next frames show \textbf{low-fidelity sketches} of the platform from the use \begin{frame}{Sketch 4 -- the advisor} \begin{columns}[T] -\begin{column}{0.62\textwidth} +\begin{column}{0.64\textwidth} \includegraphics[width=\linewidth]{../project_exercise/ui_sketches/04_advisor.png} \end{column} -\begin{column}{0.37\textwidth} +\begin{column}{0.35\textwidth} \footnotesize \begin{itemize}\setlength\itemsep{3pt} \item \texttt{AdvisorAgent} orchestrates \texttt{ResearchAgent}, \texttt{RiskAgent}, \texttt{OptimizationAgent} through \textbf{service contracts only} (Section 2.5) @@ -293,10 +293,10 @@ The next frames show \textbf{low-fidelity sketches} of the platform from the use \begin{frame}{Sketch 5 -- risk and optimisation} \begin{columns}[T] -\begin{column}{0.62\textwidth} +\begin{column}{0.64\textwidth} \includegraphics[width=\linewidth]{../project_exercise/ui_sketches/05_optimisation.png} \end{column} -\begin{column}{0.37\textwidth} +\begin{column}{0.35\textwidth} \footnotesize \begin{itemize}\setlength\itemsep{3pt} \item Mean--variance optimisation with constraints; the three analysis services are \textbf{pure and deterministic}: same input, same output (Section 2.3) @@ -309,10 +309,10 @@ The next frames show \textbf{low-fidelity sketches} of the platform from the use \begin{frame}{Sketch 6 -- system status: the measurement contract, live} \begin{columns}[T] -\begin{column}{0.62\textwidth} +\begin{column}{0.64\textwidth} \includegraphics[width=\linewidth]{../project_exercise/ui_sketches/06_system_status.png} \end{column} -\begin{column}{0.37\textwidth} +\begin{column}{0.35\textwidth} \footnotesize \begin{itemize}\setlength\itemsep{3pt} \item \textbf{Basic observability} of cost and latency per request is mandatory (Section 5); budgets, eval threshold, and module-boundary check are \textbf{CI gates} (M2, M5) diff --git a/project_exercise/ui_sketches/00_user_journey.html b/project_exercise/ui_sketches/00_user_journey.html index 55dc7c7..7d22fc4 100644 --- a/project_exercise/ui_sketches/00_user_journey.html +++ b/project_exercise/ui_sketches/00_user_journey.html @@ -42,7 +42,7 @@

request id → agent trace → each LLM call (prompt version, model, tokens, latency) → guard verdicts → cited Insight ids → the service calls that produced every number. Exportable as an audit record.

-
1API-first: every screen only calls the HTTP/JSON API; the dashboard holds no business logic (§2.6).
-
2Degrade gracefully and say so in the UI (§4.2) — the demo will hit a failing API.
+
1API-first: every screen only calls the HTTP/JSON API; the dashboard holds no business logic (§2.6).
+
2Degrade gracefully and say so in the UI (§4.2) — the demo will hit a failing API.
SKETCH 0/7 · wireframe, not a specification
diff --git a/project_exercise/ui_sketches/00_user_journey.png b/project_exercise/ui_sketches/00_user_journey.png index d3fd5a4..735e868 100644 Binary files a/project_exercise/ui_sketches/00_user_journey.png and b/project_exercise/ui_sketches/00_user_journey.png differ diff --git a/project_exercise/ui_sketches/01_portfolio_dashboard.html b/project_exercise/ui_sketches/01_portfolio_dashboard.html index c976523..f675bef 100644 --- a/project_exercise/ui_sketches/01_portfolio_dashboard.html +++ b/project_exercise/ui_sketches/01_portfolio_dashboard.html @@ -48,8 +48,8 @@ -
1Graceful degradation (§4.2): when the LLM or a data API is down, deterministic analysis still works and the UI says so.
-
2Every figure names the deterministic service that computed it (§2.3) — agents never compute numbers.
-
3Freshness stamp: "as of last completed ingestion" — the advisor may never claim fresher data.
+
1Graceful degradation (§4.2): when the LLM or a data API is down, deterministic analysis still works and the UI says so.
+
2Every figure names the deterministic service that computed it (§2.3) — agents never compute numbers.
+
3Freshness stamp: "as of last completed ingestion" — the advisor may never claim fresher data.
SKETCH 1/7 · wireframe, not a specification
diff --git a/project_exercise/ui_sketches/01_portfolio_dashboard.png b/project_exercise/ui_sketches/01_portfolio_dashboard.png index 7423199..9b7619a 100644 Binary files a/project_exercise/ui_sketches/01_portfolio_dashboard.png and b/project_exercise/ui_sketches/01_portfolio_dashboard.png differ diff --git a/project_exercise/ui_sketches/02_market_data.html b/project_exercise/ui_sketches/02_market_data.html index 1e4511c..39077de 100644 --- a/project_exercise/ui_sketches/02_market_data.html +++ b/project_exercise/ui_sketches/02_market_data.html @@ -56,8 +56,8 @@ -
1Mandatory cache/snapshot fallback when the live API is unavailable or rate-limited (§2.1).
-
2Stable, versioned interface for downstream services — the provider's format never leaks (§2.1).
-
3Resilience on every external call: timeout, retry with backoff, circuit breaker, defined fallback (§4.2).
+
1Mandatory cache/snapshot fallback when the live API is unavailable or rate-limited (§2.1).
+
2Stable, versioned interface for downstream services — the provider's format never leaks (§2.1).
+
3Resilience on every external call: timeout, retry with backoff, circuit breaker, defined fallback (§4.2).
SKETCH 2/7 · wireframe, not a specification
diff --git a/project_exercise/ui_sketches/02_market_data.png b/project_exercise/ui_sketches/02_market_data.png index bfd0828..b223ba9 100644 Binary files a/project_exercise/ui_sketches/02_market_data.png and b/project_exercise/ui_sketches/02_market_data.png differ diff --git a/project_exercise/ui_sketches/03_news_insights.html b/project_exercise/ui_sketches/03_news_insights.html index 933f90e..4f24763 100644 --- a/project_exercise/ui_sketches/03_news_insights.html +++ b/project_exercise/ui_sketches/03_news_insights.html @@ -40,8 +40,8 @@ -
1Ontology as run-time guard: valid ticker? valid sector? plausible event type? (§3.2, §4.2)
-
2Strict, schema-validated Insight — reject or repair non-conforming responses (§4.1).
-
3News text is untrusted input: a prompt-injection vector — treat it as data, never as instructions (§4 pitfalls).
+
1Ontology as run-time guard: valid ticker? valid sector? plausible event type? (§3.2, §4.2)
+
2Strict, schema-validated Insight — reject or repair non-conforming responses (§4.1).
+
3News text is untrusted input: a prompt-injection vector — treat it as data, never as instructions (§4 pitfalls).
SKETCH 3/7 · wireframe, not a specification
diff --git a/project_exercise/ui_sketches/03_news_insights.png b/project_exercise/ui_sketches/03_news_insights.png index 224595c..81c287d 100644 Binary files a/project_exercise/ui_sketches/03_news_insights.png and b/project_exercise/ui_sketches/03_news_insights.png differ diff --git a/project_exercise/ui_sketches/04_advisor.html b/project_exercise/ui_sketches/04_advisor.html index 7a19aa9..feb0d8a 100644 --- a/project_exercise/ui_sketches/04_advisor.html +++ b/project_exercise/ui_sketches/04_advisor.html @@ -48,8 +48,8 @@ -
1Agents interpret and explain; services compute (§2.5). An agent that "estimates" a volatility is an architecture defect.
-
2Sub-agents cooperate only through service contracts, never by sharing internal state (§2.5).
-
3Every claim carries a citation to a validated Insight; the freshness stamp bounds what may be claimed.
+
1Agents interpret and explain; services compute (§2.5). An agent that "estimates" a volatility is an architecture defect.
+
2Sub-agents cooperate only through service contracts, never by sharing internal state (§2.5).
+
3Every claim carries a citation to a validated Insight; the freshness stamp bounds what may be claimed.
SKETCH 4/7 · wireframe, not a specification
diff --git a/project_exercise/ui_sketches/04_advisor.png b/project_exercise/ui_sketches/04_advisor.png index ac02852..20009ee 100644 Binary files a/project_exercise/ui_sketches/04_advisor.png and b/project_exercise/ui_sketches/04_advisor.png differ diff --git a/project_exercise/ui_sketches/05_optimisation.html b/project_exercise/ui_sketches/05_optimisation.html index 30d30b3..723c615 100644 --- a/project_exercise/ui_sketches/05_optimisation.html +++ b/project_exercise/ui_sketches/05_optimisation.html @@ -51,7 +51,7 @@ -
1Performance, Risk, Optimization services are pure and deterministic; exact tests against the provided reference vectors (§2.3, §4.3).
-
2Agents explain the numbers; the OptimizationAgent calls OptimizationService and never computes an allocation itself (§2.5).
+
1Performance, Risk, Optimization services are pure and deterministic; exact tests against the provided reference vectors (§2.3, §4.3).
+
2Agents explain the numbers; the OptimizationAgent calls OptimizationService and never computes an allocation itself (§2.5).
SKETCH 5/7 · wireframe, not a specification
diff --git a/project_exercise/ui_sketches/05_optimisation.png b/project_exercise/ui_sketches/05_optimisation.png index 8037204..e1e4af7 100644 Binary files a/project_exercise/ui_sketches/05_optimisation.png and b/project_exercise/ui_sketches/05_optimisation.png differ diff --git a/project_exercise/ui_sketches/06_system_status.html b/project_exercise/ui_sketches/06_system_status.html index 1c66e92..4f93ce6 100644 --- a/project_exercise/ui_sketches/06_system_status.html +++ b/project_exercise/ui_sketches/06_system_status.html @@ -59,8 +59,8 @@ -
1Basic observability of cost and latency per request is mandatory (§5); budgets are CI-gated fitness functions (M2).
-
2Eval harness as a CI gate with accuracy and failure modes, not "it works" (§4.3, M5).
-
3Threat model incl. prompt injection via news; basic hardening (M5).
+
1Basic observability of cost and latency per request is mandatory (§5); budgets are CI-gated fitness functions (M2).
+
2Eval harness as a CI gate with accuracy and failure modes, not "it works" (§4.3, M5).
+
3Threat model incl. prompt injection via news; basic hardening (M5).
SKETCH 6/7 · wireframe, not a specification
diff --git a/project_exercise/ui_sketches/06_system_status.png b/project_exercise/ui_sketches/06_system_status.png index 63a8f40..fb45664 100644 Binary files a/project_exercise/ui_sketches/06_system_status.png and b/project_exercise/ui_sketches/06_system_status.png differ diff --git a/project_exercise/ui_sketches/sketch.css b/project_exercise/ui_sketches/sketch.css index 4bc464b..4831849 100644 --- a/project_exercise/ui_sketches/sketch.css +++ b/project_exercise/ui_sketches/sketch.css @@ -8,7 +8,7 @@ * { box-sizing: border-box; } html, body { margin: 0; padding: 0; background: var(--paper); color: var(--ink); font-family: "Chalkboard SE", "Comic Sans MS", "Marker Felt", cursive; font-size: 15px; } -.app { width: 1280px; height: 800px; position: relative; overflow: hidden; padding: 14px 18px; } +.app { width: 1280px; height: 720px; position: relative; overflow: hidden; padding: 14px 18px; } .sk { border: 2.2px solid var(--line); background: var(--card); border-radius: 255px 15px 225px 15px / 15px 225px 15px 255px; } .sk.grey { background: var(--grey); }