From b85987e17955f109261d05d69feb15df3e1a963c Mon Sep 17 00:00:00 2001 From: Dylan De Faoite Date: Thu, 2 Apr 2026 18:59:32 +0100 Subject: [PATCH] docs: add system architecture diagram --- report/img/architecture.png | Bin 0 -> 72018 bytes report/main.tex | 8 +++++++- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 report/img/architecture.png diff --git a/report/img/architecture.png b/report/img/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..7544a53141cb20b7756bd249c7ff2eba13164d73 GIT binary patch literal 72018 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 literal 0 HcmV?d00001 diff --git a/report/main.tex b/report/main.tex index 14e525b..603cfc2 100644 --- a/report/main.tex +++ b/report/main.tex @@ -272,11 +272,17 @@ In addition, the simplification of complex human interactions and emotions into \subsubsection{Computational Constraints} The performance and speed of the system will be influenced by the computational resources available during development and execution. While the system will attempt to use GPU acceleration during NLP inference, these resource may not always be available or may not be particularly strong should they exist. -As a result, there are practical limits on the size of datasets that can be processed efficiently. Large datasets may produce long processing times, +As a result, there are practical limits on the size of datasets that can be processed efficiently. Large datasets may produce long processing times, \newpage \section{Design} \subsection{System Architecture} +\begin{figure}[h] + \centering + \includegraphics[width=1.2\textwidth]{img/architecture.png} + \caption{System Architecture Diagram} + \label{fig:architecture} +\end{figure} \newpage \section{Implementation}