barunsaha commited on
Commit
ee91261
·
1 Parent(s): fb44830

Update description

Browse files
Files changed (2) hide show
  1. README.md +37 -1
  2. resources/screenshot.png +0 -0
README.md CHANGED
@@ -17,15 +17,51 @@ QoS data analysis thousands of school networks under UNICEF/Giga
17
 
18
  ---
19
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
 
21
  # Installation
22
 
 
 
23
  ```bash
 
24
  pip install -r requirements.txt
25
  python app.py
26
  ```
27
 
28
- Add `HF_TOKEN` environment variable, e.g., in the `.env` file.
 
 
 
 
 
 
 
 
 
 
 
29
 
30
  ---
31
 
 
17
 
18
  ---
19
 
20
+ Quality of Service (QoS) is a critical requirement in communication networks. QoS patterns can indicate potential network problems or a need for upgrade.
21
+ With millions of schools connected to the Internet, there already is an overwhelming volume of network performance data available. Moreover, as usage patterns evolve in the future, for example, from accessing data and video to running real-time, remote or virtual experiments across schools, the QoS demands would only grow stronger.
22
+ Therefore, there is a need for an efficient approach to gain insights into the pool of network performance data.
23
+
24
+ QoScope takes an agentic approach to provide a natural language dashboard (NLD). Using the NLD, network administrators can express their queries in natural language, e.g., English.
25
+ Based on the query, the agent uses one or more available tools to arrive at a response. For example, currently, QoScope can generate and run a SQL query when required.
26
+ In addition, it can also generate bar and line diagrams to assist visualization of data.
27
+
28
+ In particular, QoScope uses the [`school_geolocation_measurements_v2/measurements.csv`](https://drive.google.com/drive/folders/1gliQCbbAX8s4cyq0gpQKvZjnMpbnEPiI) dataset by Giga. This CSV file contains the network speed and latency measurements across many schools.
29
+ A filtered version of these measurements (where each school has at least 120 data points) is pre-processed, resampled, and stored as a SQLite database provided with this repository (`resampled_daily_avg.sqlite`).
30
+ QoScope agent queries the table in this database on-the-fly, if required.
31
+
32
+ ![Screenshot of QoScope](resources/screenshot.png "Screenshot of QoScope")
33
+
34
+
35
+ # Technologies
36
+
37
+ QoScope is built using different Open-Source solutions, such as:
38
+ - [Smolagents](https://github.com/huggingface/smolagents), which is the underlying agentic framework
39
+ - [Qwen2.5-Coder-32B-Instruct](https://huggingface.co/Qwen/Qwen2.5-Coder-32B-Instruct), which is the Large Language Model (LLM) acting as the brain of teh agent
40
+ - [Gradio](https://github.com/gradio-app/gradio), as the framework for the agent's front-end
41
+
42
 
43
  # Installation
44
 
45
+ A [live demo of QoScope](https://huggingface.co/spaces/barunsaha/qoscope) is available online. If you want to run offline, try the following steps.
46
+
47
  ```bash
48
+ cd qoscope
49
  pip install -r requirements.txt
50
  python app.py
51
  ```
52
 
53
+ You will need to add `HF_TOKEN` environment variable, e.g., in the `qoscope/.env` file.
54
+
55
+ Also, the `*.sqlite` database is stored using Git Large File Storage (LFS). You may need to run `git lfs pull` inside the `qoscope` directory.
56
+
57
+
58
+ # Limitations
59
+
60
+ With free Hugging Face Inference API, the context window of the LLM is limited to 16K tokens. As a result, in this PoC, queries that lead to generation of lot of data will lead to an error. For example, line diagrams, a line diagram showing yearly network metrics cannot be plotted.
61
+
62
+ Said limitation can be overcome using dedicated hosting or using LLMs that support a longer context window. For example, Google's Gemini has a context window of millions of tokens.
63
+
64
+ A still better approach will be to switch from the ReAct agentic pattern to ReWOO. This is left for the future.
65
 
66
  ---
67
 
resources/screenshot.png ADDED