johnbridges commited on
Commit
d5210e6
·
0 Parent(s):

Fix Dockerfile GitHub token auth

Browse files
Files changed (6) hide show
  1. .gitattributes +35 -0
  2. Dockerfile +107 -0
  3. README.md +10 -0
  4. appsettings.json +68 -0
  5. commit +3 -0
  6. index.html +434 -0
.gitattributes ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
Dockerfile ADDED
@@ -0,0 +1,107 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # syntax=docker/dockerfile:1.4
2
+ # Use the official Debian 12 (Bookworm) base image
3
+ FROM debian:13
4
+
5
+ # Set environment variables to avoid interactive prompts during package installation
6
+ ENV DEBIAN_FRONTEND=noninteractive
7
+
8
+ # Install system-level dependencies as root
9
+ RUN apt-get update && \
10
+ apt-get install -y \
11
+ build-essential \
12
+ curl \
13
+ ca-certificates \
14
+ git \
15
+ cmake \
16
+ clang \
17
+ pkg-config \
18
+ ccache \
19
+ wget \
20
+ vim \
21
+ libicu76 \
22
+ expect
23
+
24
+ # Create a non-root user and set up their environment
25
+ RUN useradd -m user && \
26
+ mkdir -p /home/user/code && \
27
+ chown -R user:user /home/user
28
+
29
+ # Switch to the non-root user
30
+ USER user
31
+ WORKDIR /home/user
32
+
33
+ RUN mkdir -p /home/user/code/models && \
34
+ mkdir -p /home/user/code/app/wwwroot && \
35
+ cd /home/user/code/models && \
36
+ wget -q https://huggingface.co/Mungert/Qwen3-4B-Instruct-2507-GGUF/resolve/main/Qwen3-4B-Instruct-2507-q8_0.gguf
37
+
38
+
39
+ # Clone and build OpenBLAS as the non-root user
40
+ RUN git clone https://github.com/OpenMathLib/OpenBLAS.git /home/user/code/models/OpenBLAS && \
41
+ cd /home/user/code/models/OpenBLAS && \
42
+ make -j2 > build.log 2>&1 || (tail -20 build.log && false)
43
+
44
+ # Switch to root for the OpenBLAS installation
45
+ USER root
46
+ RUN cd /home/user/code/models/OpenBLAS && \
47
+ make install > install.log 2>&1 || (tail -20 install.log && false) && \
48
+ cp /opt/OpenBLAS/lib/libopenblas* /usr/local/lib/
49
+
50
+ # Switch back to the non-root user
51
+ USER user
52
+
53
+ # Clone and build llama.cpp with OpenBLAS support as the non-root user
54
+ RUN git clone https://github.com/ggerganov/llama.cpp /home/user/code/models/llama.cpp && \
55
+ cd /home/user/code/models/llama.cpp && \
56
+ export PKG_CONFIG_PATH=/opt/OpenBLAS/lib/pkgconfig:$PKG_CONFIG_PATH && \
57
+ cmake -B build -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=OpenBLAS -DBLAS_INCLUDE_DIRS=/home/user/code/models/OpenBLAS -DLLAMA_CURL=OFF && \
58
+ cmake --build build --config Release -j2 && \
59
+ cp /home/user/code/models/llama.cpp/build/bin/* /home/user/code/models/llama.cpp/
60
+
61
+
62
+
63
+ # Install .NET 10.0 as the non-root user
64
+ RUN wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh && \
65
+ chmod +x dotnet-install.sh && \
66
+ ./dotnet-install.sh --channel 10.0
67
+
68
+ # Set persistent environment variables
69
+ ENV DOTNET_ROOT=/home/user/.dotnet
70
+ ENV PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
71
+
72
+ # Verify .NET installation and current user
73
+ RUN whoami && dotnet --version
74
+
75
+ # Clone repositories using the GITHUB_TOKEN secret
76
+ RUN --mount=type=secret,id=GITHUB_TOKEN,mode=0444,required=true \
77
+ git clone https://x-access-token:$(cat /run/secrets/GITHUB_TOKEN)@github.com/Mungert69/NetworkMonitorLib.git /home/user/code/NetworkMonitorLib && \
78
+ git clone https://x-access-token:$(cat /run/secrets/GITHUB_TOKEN)@github.com/Mungert69/NetworkMonitorLLM.git /home/user/code/NetworkMonitorLLM && \
79
+ git clone https://x-access-token:$(cat /run/secrets/GITHUB_TOKEN)@github.com/Mungert69/NetworkMonitorData.git /home/user/code/NetworkMonitorData
80
+
81
+
82
+ # Copy files into the container as the non-root user
83
+ COPY --chown=user:user appsettings.json /home/user/code/app/appsettings.json
84
+ COPY --chown=user:user index.html /home/user/code/app/wwwroot/index.html
85
+
86
+
87
+ # Set the working directory for the build-qwen-3 script
88
+ WORKDIR /home/user/code/models
89
+
90
+
91
+ # Expose port 7860 for Hugging Face Spaces
92
+ EXPOSE 7860
93
+ # Set the working directory
94
+ WORKDIR /home/user/code/NetworkMonitorLLM
95
+
96
+ # Build the .NET project as the non-root user
97
+ RUN dotnet restore && \
98
+ dotnet build -c Release
99
+
100
+ RUN cp -r /home/user/code/NetworkMonitorLLM/bin/Release/net10.0/* /home/user/code/app/ && \
101
+ rm -rf /home/user/code/NetworkMonitorLib /home/user/code/NetworkMonitorLLM /home/user/code/NetworkMonitorData
102
+
103
+ # Set the working directory to the `app` directory
104
+ WORKDIR /home/user/code/app
105
+
106
+ CMD ["dotnet", "NetworkMonitorLLM.dll", "--urls", "http://0.0.0.0:7860"]
107
+
README.md ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: NetMonLLMmonitor
3
+ emoji: 👀
4
+ colorFrom: green
5
+ colorTo: blue
6
+ sdk: docker
7
+ pinned: false
8
+ ---
9
+
10
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
appsettings.json ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Logging": {
3
+ "LogLevel": {
4
+ "Default": "Information",
5
+ "Microsoft": "Information",
6
+ "Microsoft.Hosting.Lifetime": "Information"
7
+ }
8
+ },
9
+ "EmailEncryptKey": ".env",
10
+ "LocalSystemUrl": {
11
+ "ExternalUrl": "https://asmonitorsrv.readyforquantum.com",
12
+ "IPAddress": "",
13
+ "RabbitHostName": "devrabbitmq.readyforquantum.com",
14
+ "RabbitPort": 63785,
15
+ "RabbitInstanceName": "ASSrv-LLMService",
16
+ "RabbitUserName": "usercommonxf1",
17
+ "RabbitPassword": ".env",
18
+ "RabbitVHost": "/vhostuser",
19
+ "UseTls": true
20
+ },
21
+ "RedisUrl": "redis.readyforquantum.co.uk:46379",
22
+ "ServiceID": "monitor",
23
+ "StartThisTestLLM": true,
24
+ "LlmNoInitMessage": false,
25
+ "ServiceAuthKey": ".env",
26
+ "LlmModelPath": "/home/mahadeva/code/models/",
27
+ "LlmModelFileName": "Qwen3-4B-Instruct-2507-q8_0.gguf",
28
+ "LlmContextFileName": "context-qwen-3.gguf",
29
+ "LlmSystemPrompt": "system_prompt_qwen_3_run",
30
+ "LlmPromptMode": " -if -sp -no-cnv --simple-io ",
31
+ "LlmVersion": "qwen_3",
32
+ "LlmCtxSize": 12000,
33
+ "LlmOpenAICtxSize": 64000,
34
+ "LlmCtxRatio": 6,
35
+ "LlmTemp": "0.3",
36
+ "LlmThreads": 6,
37
+ "LlmSystemPromptTimeout": 1200,
38
+ "LlmUserPromptTimeout": 1200,
39
+ "LlmSessionIdleTimeout": 3600,
40
+ "GptModelVersion": "gpt",
41
+ "LlmGptModel": "gpt-4.1-mini",
42
+ "LlmOpenAIUrl": "",
43
+ "LlmHFModelID": "mistralai/devstral-2512:free",
44
+ "OpenAIApiKey": ".env",
45
+ "LlmSpaceModelID": "Qwen/Qwen3-1.7B",
46
+ "LlmHFKey": "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",
47
+ "LlmHFUrl": "https://openrouter.ai/api/v1/chat/completions",
48
+ "LlmHFModelVersion": "llama_3.2",
49
+ "LlmUseHF": false,
50
+ "LlmNoThink": false,
51
+ "AudioServiceUrls": [
52
+ "https://devtranscribe.readyforquantum.com",
53
+ "https://devtranscribe2.readyforquantum.com",
54
+ "https://devtranscribe3.readyforquantum.com"
55
+ ],
56
+ "IsStream": false,
57
+ "REDIS_PASSWORD": ".env",
58
+ "RabbitPassword": ".env",
59
+ "RabbitRoutingKey": "execute.api",
60
+ "RabbitExchangeType": "direct",
61
+ "EnableAgentFlow": false,
62
+ "LlmProvider": "OpenAI",
63
+ "NoNShot": false,
64
+ "LlmHfSupportsFunctionCalling": true,
65
+ "UserFacingServiceId": "monitor",
66
+ "LlmToolCallIdLength": 9,
67
+ "LlmToolCallIdPrefix": ""
68
+ }
commit ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ git add .
2
+ git commit -m "$*"
3
+ git push
index.html ADDED
@@ -0,0 +1,434 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ <!DOCTYPE html>
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>Quantum Network Monitor Assistant - Huggingface Space</title>
8
+ <!-- Material Icons -->
9
+ <link href="https://cdnjs.cloudflare.com/ajax/libs/material-design-icons/4.0.0/font/MaterialIcons-Regular.css" rel="stylesheet">
10
+ <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
11
+ <style>
12
+ :root {
13
+ --primary-color: #607466;
14
+ --secondary-color: #6239AB;
15
+ --error-color: #eb5160;
16
+ --warning-color: #d4a10d;
17
+ --background-color: #f8f9fa;
18
+ --text-color: #333;
19
+ --light-gray: #f1f5f9;
20
+ --border-color: #e2e8f0;
21
+ }
22
+
23
+ * {
24
+ margin: 0;
25
+ padding: 0;
26
+ box-sizing: border-box;
27
+ font-family: 'Roboto', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
28
+ }
29
+
30
+ body {
31
+ background-color: var(--background-color);
32
+ color: var(--text-color);
33
+ line-height: 1.6;
34
+ }
35
+
36
+ header {
37
+ background: linear-gradient(to right, var(--primary-color), var(--secondary-color));
38
+ color: white;
39
+ padding: 1.5rem;
40
+ text-align: center;
41
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
42
+ }
43
+
44
+ .logo-container {
45
+ display: flex;
46
+ align-items: center;
47
+ justify-content: center;
48
+ margin-bottom: 1rem;
49
+ }
50
+
51
+ .logo {
52
+ width: 50px;
53
+ height: 50px;
54
+ margin-right: 1rem;
55
+ }
56
+
57
+ .header-title {
58
+ font-size: 1.8rem;
59
+ font-weight: 600;
60
+ }
61
+
62
+ .subtitle {
63
+ font-size: 1.1rem;
64
+ opacity: 0.9;
65
+ margin-top: 0.5rem;
66
+ }
67
+
68
+ .container {
69
+ max-width: 1200px;
70
+ margin: 0 auto;
71
+ padding: 2rem;
72
+ }
73
+
74
+ .card {
75
+ background-color: white;
76
+ border-radius: 8px;
77
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
78
+ padding: 2rem;
79
+ margin-bottom: 2rem;
80
+ }
81
+
82
+ h2 {
83
+ color: var(--primary-color);
84
+ margin-bottom: 1rem;
85
+ font-size: 1.5rem;
86
+ display: flex;
87
+ align-items: center;
88
+ }
89
+
90
+ h2 .material-icons {
91
+ margin-right: 0.5rem;
92
+ color: var(--primary-color);
93
+ }
94
+
95
+ h3 {
96
+ color: var(--secondary-color);
97
+ margin: 1.5rem 0 0.75rem;
98
+ font-size: 1.2rem;
99
+ display: flex;
100
+ align-items: center;
101
+ }
102
+
103
+ h3 .material-icons {
104
+ margin-right: 0.5rem;
105
+ font-size: 1.2rem;
106
+ }
107
+
108
+ p {
109
+ margin-bottom: 1rem;
110
+ }
111
+
112
+ .feature-grid {
113
+ display: grid;
114
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
115
+ gap: 1.5rem;
116
+ margin-top: 1.5rem;
117
+ }
118
+
119
+ .feature-card {
120
+ background-color: var(--light-gray);
121
+ border-radius: 8px;
122
+ padding: 1.5rem;
123
+ border-left: 4px solid var(--primary-color);
124
+ }
125
+
126
+ .feature-icon {
127
+ background-color: var(--primary-color);
128
+ color: white;
129
+ width: 40px;
130
+ height: 40px;
131
+ border-radius: 8px;
132
+ display: flex;
133
+ align-items: center;
134
+ justify-content: center;
135
+ margin-bottom: 1rem;
136
+ }
137
+
138
+ .feature-icon .material-icons {
139
+ font-size: 24px;
140
+ }
141
+
142
+ .api-example {
143
+ background-color: #2d2d2d;
144
+ color: white;
145
+ border-radius: 8px;
146
+ padding: 1.5rem;
147
+ overflow-x: auto;
148
+ font-family: 'Courier New', monospace;
149
+ line-height: 1.4;
150
+ }
151
+
152
+ .button {
153
+ display: inline-flex;
154
+ align-items: center;
155
+ background-color: var(--primary-color);
156
+ color: white;
157
+ padding: 0.75rem 1.5rem;
158
+ border-radius: 4px;
159
+ text-decoration: none;
160
+ font-weight: 500;
161
+ margin-top: 1rem;
162
+ transition: background-color 0.2s;
163
+ }
164
+
165
+ .button .material-icons {
166
+ margin-right: 0.5rem;
167
+ font-size: 18px;
168
+ }
169
+
170
+ .button:hover {
171
+ background-color: var(--secondary-color);
172
+ }
173
+
174
+ .tech-stack {
175
+ display: flex;
176
+ flex-wrap: wrap;
177
+ gap: 1rem;
178
+ margin-top: 1rem;
179
+ }
180
+
181
+ .tech-badge {
182
+ background-color: var(--light-gray);
183
+ border: 1px solid var(--border-color);
184
+ padding: 0.5rem 1rem;
185
+ border-radius: 20px;
186
+ font-size: 0.9rem;
187
+ display: flex;
188
+ align-items: center;
189
+ }
190
+
191
+ .tech-badge .material-icons {
192
+ font-size: 16px;
193
+ margin-right: 0.5rem;
194
+ }
195
+
196
+ footer {
197
+ background-color: var(--primary-color);
198
+ color: white;
199
+ text-align: center;
200
+ padding: 1.5rem;
201
+ margin-top: 2rem;
202
+ }
203
+
204
+ .footer-links {
205
+ display: flex;
206
+ justify-content: center;
207
+ gap: 1.5rem;
208
+ margin-top: 1rem;
209
+ }
210
+
211
+ .footer-links a {
212
+ color: white;
213
+ text-decoration: none;
214
+ opacity: 0.8;
215
+ display: flex;
216
+ align-items: center;
217
+ }
218
+
219
+ .footer-links a .material-icons {
220
+ margin-right: 0.5rem;
221
+ font-size: 16px;
222
+ }
223
+
224
+ .footer-links a:hover {
225
+ opacity: 1;
226
+ }
227
+
228
+ .progress-container {
229
+ background-color: var(--light-gray);
230
+ padding: 1rem;
231
+ border-radius: 8px;
232
+ margin-top: 1rem;
233
+ }
234
+
235
+ .progress-item {
236
+ margin-bottom: 1rem;
237
+ }
238
+
239
+ .progress-item:last-child {
240
+ margin-bottom: 0;
241
+ }
242
+
243
+ .progress-header {
244
+ display: flex;
245
+ justify-content: space-between;
246
+ margin-bottom: 0.5rem;
247
+ }
248
+
249
+ .progress-bar {
250
+ width: 100%;
251
+ height: 8px;
252
+ background-color: #e2e8f0;
253
+ border-radius: 4px;
254
+ overflow: hidden;
255
+ }
256
+
257
+ .progress-fill {
258
+ height: 100%;
259
+ background-color: var(--primary-color);
260
+ }
261
+
262
+ @media (max-width: 768px) {
263
+ .container {
264
+ padding: 1rem;
265
+ }
266
+ .feature-grid {
267
+ grid-template-columns: 1fr;
268
+ }
269
+ .footer-links {
270
+ flex-direction: column;
271
+ gap: 0.75rem;
272
+ }
273
+ }
274
+ </style>
275
+ </head>
276
+ <body>
277
+ <header>
278
+ <div class="logo-container">
279
+ <img src="https://readyforquantum.com/img/logo.svg" class="logo" width="50" height="50" alt="Quantum Network Monitor Logo" target="_blank">
280
+ <h1 class="header-title">Quantum Network Monitor Assistant</h1>
281
+ </div>
282
+ <p class="subtitle">Huggingface Space | LLM Backend for Network Monitoring Intelligence</p>
283
+ </header>
284
+
285
+ <div class="container">
286
+ <div class="card">
287
+ <h2><i class="material-icons">info</i> About This Space</h2>
288
+ <p>This Huggingface Space powers the AI assistant behind <a href="https://readyforquantum.com/" style="color: var(--secondary-color);" target="_blank">Quantum Network Monitor</a> - your intelligent companion for network management and troubleshooting.</p>
289
+
290
+ <p>Our LLM backend provides real-time, context-aware responses to network management queries, helping IT professionals and network engineers maintain optimal network performance with minimal effort.</p>
291
+
292
+ <div class="tech-stack">
293
+ <div class="tech-badge">
294
+ <i class="material-icons">hub</i>
295
+ Huggingface
296
+ </div>
297
+ <div class="tech-badge">
298
+ <i class="material-icons">memory</i>
299
+ Llama.cpp
300
+ </div>
301
+ <div class="tech-badge">
302
+ <i class="material-icons">bolt</i>
303
+ Security Experts
304
+ </div>
305
+ <div class="tech-badge">
306
+ <i class="material-icons">api</i>
307
+ RappidApi
308
+ </div>
309
+ </div>
310
+ </div>
311
+
312
+ <div class="card">
313
+ <h2><i class="material-icons">settings</i> How It Works</h2>
314
+ <p>The Quantum Network Monitor Assistant leverages advanced language models to provide intelligent responses to network management queries. The assistant helps with:</p>
315
+
316
+ <div class="feature-grid">
317
+ <div class="feature-card">
318
+ <div class="feature-icon">
319
+ <i class="material-icons">bar_chart</i>
320
+ </div>
321
+ <h3>Data Interpretation</h3>
322
+ <p>Makes sense of complex network metrics and alerts, providing human-readable insights.</p>
323
+ </div>
324
+ <div class="feature-card">
325
+ <div class="feature-icon">
326
+ <i class="material-icons">bug_report</i>
327
+ </div>
328
+ <h3>Troubleshooting</h3>
329
+ <p>Suggests potential root causes and solutions for network issues.</p>
330
+ </div>
331
+ <div class="feature-card">
332
+ <div class="feature-icon">
333
+ <i class="material-icons">build</i>
334
+ </div>
335
+ <h3>Configuration</h3>
336
+ <p>Assists with device and protocol configuration recommendations.</p>
337
+ </div>
338
+ <div class="feature-card">
339
+ <div class="feature-icon">
340
+ <i class="material-icons">notifications</i>
341
+ </div>
342
+ <h3>Alert Management</h3>
343
+ <p>Helps prioritize and manage network alerts based on severity and impact.</p>
344
+ </div>
345
+ </div>
346
+ </div>
347
+
348
+ <div class="card">
349
+ <h2><i class="material-icons">integration_instructions</i> API Integration</h2>
350
+ <p>This Huggingface Space exposes a REST API that the Quantum Network Monitor platform uses to process queries. You can also integrate this assistant's capabilities into your own tools:</p>
351
+
352
+ <div class="api-example">
353
+ <span style="color: #bb86fc;">POST</span> <span style="color: #03dac6;">/api/query</span>
354
+ <span style="color: #f1fa8c;">{
355
+ "query": "scan my mail server for vulnerabilities mail.mahadeva.co.uk"
356
+ }</span>
357
+ </div>
358
+
359
+ <h3><i class="material-icons">reply</i> Response Format</h3>
360
+ <div class="api-example">
361
+ <span style="color: #f1fa8c;">{
362
+ "response": "The vulnerability scan on the mail server mail.mahadeva.co.uk has been completed. Here are the key findings:\n\nNmap Scan Summary\n\n Target: mail.mahadeva.co.uk (195.26.250.218)\n Host Status: Up (0.13s latency)\n Ports Tested: 1000+ including common mail and web ports\n\nOpen Ports:\n\n 25/tcp (SMTP)\n Not vulnerable to CVE-2010-4344\n 80/tcp (HTTP)\n Vulnerable: CVE-2011-3192 (Apache byte range filter DoS)\n Description: The Apache web server is vulnerable to a denial of service attack when numerous overlapping byte ranges are requested.\n References:\n Nessus Plugin\n CVE Details\n SecurityFocus\n 143/tcp (IMAP)\n 443/tcp (HTTPS)\n Errors reported during script execution, indicating some checks could not be completed.\n 587/tcp (Submission)\n Not vulnerable to CVE-2010-4344\n 993/tcp (IMAPS)\n\nRecommendations:\n\n Address Denial of Service Vulnerability:\n Update the Apache server to a patched version to mitigate the CVE-2011-3192 vulnerability.\n\n Perform Further Testing:\n Investigate the errors during script execution for the HTTPS port to ensure no other vulnerabilities remain undiscovered.\n\n Regular Maintenance:\n Keep all services updated and conduct regular scans to identify and fix vulnerabilities as they are discovered.\n\nIf you have any more requests or need further assistance, feel free to ask!",
363
+ "suggested_actions": [
364
+ "Update the Apache server to a patched version",
365
+ "Investigate errors during script execution for HTTPS port",
366
+ "Conduct regular vulnerability scans"
367
+ ]
368
+ }</span>
369
+ </div>
370
+
371
+
372
+ <div class="card">
373
+ <h2><i class="material-icons">chat</i> Click Assistant Icon to Get Started</h2>
374
+ <p>To test the assistant directly or to see it in action:</p>
375
+
376
+ <ol style="margin-left: 2rem; margin-bottom: 1.5rem;">
377
+ <li>Visit <a href="https://readyforquantum.com/" style="color: var(--secondary-color);" target="_blank">Quantum Network Monitor</a></li>
378
+ <li>Create a free account to access the full features of the Free Monitor Network Assistant (optional)</li>
379
+ <li>Click the Assistant icon bottom right of page</li>
380
+ <li>Try asking questions about your networks performance, scanning for security issues, or troubleshooting steps</li>
381
+ <li>Visit the Dashboard to view visual data for your monitored hosts <a href="https://readyforquantum.com/dashboard" style="color: var(--secondary-color);" target="_blank">Quantum Network Monitor Dashboard</a> . Watch the Assistant take control of the websites data views.
382
+ </ol>
383
+
384
+ <p>For developers looking to integrate with this space:</p>
385
+
386
+ <div class="feature-grid">
387
+ <div class="feature-card">
388
+ <h3><i class="material-icons">code</i> REST API</h3>
389
+ <p>Use our REST API for seamless integration with your existing tools.</p>
390
+ <a href="https://rapidapi.com/Mungert69/api/free-network-monitor/playground/" class="button" style="font-size: 0.9rem; padding: 0.5rem 1rem;" target="_blank">
391
+ <i class="material-icons">description</i>
392
+ API Playground
393
+ </a>
394
+ </div>
395
+ <div class="feature-card">
396
+ <h3><i class="material-icons">integration_instructions</i> Local Network Agents</h3>
397
+ <p>Download the Quantum Network Monitor Agent to manage your local networks..</p>
398
+ <a href="https://readyforquantum.com/download" class="button" style="font-size: 0.9rem; padding: 0.5rem 1rem;" target="_blank">
399
+ <i class="material-icons">book</i>
400
+ Local Agent Download
401
+ </a>
402
+ </div>
403
+ <div class="feature-card">
404
+ <h3><i class="material-icons">psychology</i> Custom Training</h3>
405
+ <p>Need a specialized version? Contact us about custom network solutions.</p>
406
+ <a href="https://readyforquantum.com/faq#contact" class="button" style="font-size: 0.9rem; padding: 0.5rem 1rem;" target="_blank">
407
+ <i class="material-icons">info</i>
408
+ Learn More
409
+ </a>
410
+ </div>
411
+ </div>
412
+ </div>
413
+ </div>
414
+
415
+ <footer>
416
+ <p>© 2025 Quantum Network Monitor | Powered by Huggingface Spaces</p>
417
+ <div class="footer-links">
418
+ <a href="https://readyforquantum.com/" target="_blank">
419
+ <i class="material-icons">home</i>
420
+ Main Site
421
+ </a>
422
+ <a href="https://github.com/Mungert69/FreeNetworkMonitor" target="_blank">
423
+ <i class="material-icons">code</i>
424
+ GitHub
425
+ </a>
426
+ <a href="https://readyforquantum.com/faq#contact" target="_blank">
427
+ <i class="material-icons">email</i>
428
+ Contact
429
+ </a>
430
+ </div>
431
+ </footer>
432
+ </body>
433
+ </html>
434
+