## 3 Model-Driven Approach to QoS Estimation Using Neo4j Graph Database Aided by ChatGPT
### ChatGPT and Large Language Models  
ChatGPT [24] is a conversational agent service based on a large language model (LLM) for text generation, providing the ability to handle conversation in the form of dialogue. During the process of conversation, the user provides input in the form of a question, together with optional context containing additional facts that can be taken into account by ChatGPT in order to generate a more specific answer. It was publicly released by the OpenAI organization towards the end of 2022. Shortly after that, it started to draw large audience and public attention because of its comprehensiveness, thanks to the enormous amount of data used for the training of the underlying GPT model, which captured the state of the World Wide Web in textual form until late 2021. From poetry and essay writing, data analysis, code generation, and debugging to playing board games [24], ChatGPT has impressed its users around the world with its comprehensive and quite accurate answers. When it comes to the process of training, a customized transfer learning-alike approach was used, utilizing both supervised and reinforcement learning technique elements. \begin{table}
\begin{tabular}{c c c} \hline \hline
**Step** & **Neo4j Query** & **Input** & **Output** \\ \hline \multirow{4}{*}{Import data} & LOAD CSV WITH HEADERS FROM & \multirow{4}{*}{CSV tabular data} & Internal tabular data \\  & ’file:// \textasciitilso\_predict.csv’ AS row & & \\  & WITH row WHERE row.QoS IS NOT NULL & & \\  & MERGE (q:QosPredict [CC: row.CC,...QoS : row.QoS]); & & \\ \hline \multirow{4}{*}{Graph construct} & CALL gds.graph.create.cypher( & \multirow{4}{*}{} \\  & ’QosPredictGraph’, & \\  & ’MATCH (q:QosPredict) WHERE q.QoS is NOT NULL & & \\  & RETURN id(s) as id, & & \\ \cline{1-1}  & q.CC as CC, & Internal tabular data & \\ \cline{1-1}  &... & & \\ \cline{1-1}  & q.QoS as QoS’, & & \\ \cline{1-1}  & ’MATCH (s:QosPredict)-[link]-\textasciitilso(e:QosPredict) & & \\ \cline{1-1}  & RETURN ID(link) as link, ID(s) as source, ID(e) as target’ & \\ \hline \multirow{4}{*}{Classifier training} & CALL gds.alpha.ml.nodeClassification.train( & \multirow{4}{*}{} \\  & ’QoSPredictGraph’, & \\ \cline{1-1}  & modelName: ’qos\_prediction’, & \\ \cline{1-1}  & featureProperties: & \\ \cline{1-1}  & [’CC’, ’Bald’,... ’Season’], & \\ \cline{1-1}  & targetProperty: ’QoS’, & \\ \cline{1-1}  & randomSeced: ’5, & \\ \cline{1-1}  & holdoutFraction: 0.20, & \\ \cline{1-1}  & validationFolds: 10, & \\ \cline{1-1}  & metrics: [’ACCURACY’], & \\ \cline{1-1}  & params: [ & \\ \cline{1-1}  & \{ penalty: 0.01, maxEpochs: 10, batchSize: 5], & Neo4j data graph & \\ \cline{1-1}  &... & \\ \cline{1-1}  & \{ penalty: 0.001\} & \\ \cline{1-1}  & \} \\ \cline{1-1}  & \} \\ \cline{1-1}  & \} \\ \cline{1-1}  & \} \\ \cline{1-1}  & \} \\ \cline{1-1}  & \} \\ \cline{1-1}  & \} \\ \cline{1-1}  & \} \\ \cline{1-1}  & \} \\ \end{tabular}
\end{table} 
Table 3: Steps for classification-based QoS estimation using GDS in Neo4j. While ChatGPT can be accessed and used for free via an interactive web graphical user interface (GUI), it can be also accessed programmatically using a library that is available in all commonly used programming languages nowadays (such as Python or JavaScript). However, access to the application programming interface (API) requires an access OpenAPI token, while the programmatic requests themselves are charged based on a per-token pricing model (up to $0.02 per 1000 request tokens, which corresponds to roughly 750 words in length for the prompt and request). The latest version is currently GPT-4. However, there is still a limitation for the length of user-provided input/question, which is currently 3000 words. Regarding the programming paradigm for leveraging ChatGPT and similar LLMs, an approach known as prompt engineering or in-context learning is utilized [25].