Sam-max1 commited on
Commit
2a93e16
·
verified ·
1 Parent(s): af8ac78

Upload folder using huggingface_hub

Browse files
.gitattributes CHANGED
@@ -1,4 +1,2 @@
1
  *.pdf filter=lfs diff=lfs merge=lfs -text
2
  *.png filter=lfs diff=lfs merge=lfs -text
3
- app/kbdocs/OICL_Base_panel_hospital_Delhi.xlsx filter=lfs diff=lfs merge=lfs -text
4
- data/kuzu_db.wal filter=lfs diff=lfs merge=lfs -text
 
1
  *.pdf filter=lfs diff=lfs merge=lfs -text
2
  *.png filter=lfs diff=lfs merge=lfs -text
 
 
app/kbdocs/Base insurance Program brochure.pdf CHANGED
Binary files a/app/kbdocs/Base insurance Program brochure.pdf and b/app/kbdocs/Base insurance Program brochure.pdf differ
 
templates/index.html CHANGED
@@ -31,11 +31,33 @@
31
  padding: 1rem;
32
  font-size: 1.25rem;
33
  font-weight: 700;
 
 
 
34
  }
35
  header.banner h1 {
36
  margin: 0;
37
  font-size: 1.25rem;
38
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
  main {
40
  flex: 1;
41
  padding: 1rem;
@@ -144,10 +166,10 @@
144
 
145
  <header class="banner" role="banner">
146
  <h1>Healthcare Policy Expert</h1>
 
147
  </header>
148
 
149
  <main role="main" id="main-content">
150
- <div class="welcome" aria-live="polite">NITDAA Base Insurance FAQ - 2026</div>
151
 
152
  <div class="milestone-graph" id="generating-graph" role="status" aria-live="polite">
153
  <div class="milestone-dot" aria-hidden="true"></div>
@@ -195,10 +217,42 @@
195
  const sendBtn = document.getElementById('send-btn');
196
  const outputArea = document.getElementById('output-area');
197
  const genGraph = document.getElementById('generating-graph');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
198
 
199
  quickSelect.addEventListener('change', () => {
200
  if (quickSelect.value) {
201
  questionInput.value = quickSelect.value;
 
202
  }
203
  });
204
 
 
31
  padding: 1rem;
32
  font-size: 1.25rem;
33
  font-weight: 700;
34
+ display: flex;
35
+ justify-content: space-between;
36
+ align-items: center;
37
  }
38
  header.banner h1 {
39
  margin: 0;
40
  font-size: 1.25rem;
41
  }
42
+ .pill {
43
+ padding: 0.25rem 0.75rem;
44
+ border-radius: 12px;
45
+ font-size: 0.875rem;
46
+ font-weight: 700;
47
+ color: var(--white);
48
+ }
49
+ .pill.not-ready {
50
+ background: #d32f2f;
51
+ animation: blink 1s infinite;
52
+ }
53
+ .pill.ready {
54
+ background: #2e7d32;
55
+ }
56
+ @keyframes blink {
57
+ 0% { opacity: 1; }
58
+ 50% { opacity: 0.5; }
59
+ 100% { opacity: 1; }
60
+ }
61
  main {
62
  flex: 1;
63
  padding: 1rem;
 
166
 
167
  <header class="banner" role="banner">
168
  <h1>Healthcare Policy Expert</h1>
169
+ <div id="status-pill" class="pill not-ready">Not Ready</div>
170
  </header>
171
 
172
  <main role="main" id="main-content">
 
173
 
174
  <div class="milestone-graph" id="generating-graph" role="status" aria-live="polite">
175
  <div class="milestone-dot" aria-hidden="true"></div>
 
217
  const sendBtn = document.getElementById('send-btn');
218
  const outputArea = document.getElementById('output-area');
219
  const genGraph = document.getElementById('generating-graph');
220
+ const statusPill = document.getElementById('status-pill');
221
+
222
+ async function pollStatus() {
223
+ try {
224
+ const res = await fetch('/api/status');
225
+ const data = await res.json();
226
+ const vecOk = (data.vector_db?.chunks ?? -1) >= 0;
227
+ const genOk = data.gen_llm?.online;
228
+ const embedOk = data.embed_llm?.online;
229
+ // Check for active ingestion / graphdb tasks via our system info endpoint as well
230
+ let isIngesting = false;
231
+ try {
232
+ const sysRes = await fetch('/api/sysinfo');
233
+ const sysData = await sysRes.json();
234
+ isIngesting = sysData.active_graph_tasks > 0;
235
+ } catch(e) {}
236
+
237
+ if (vecOk && genOk && embedOk && !isIngesting) {
238
+ statusPill.className = 'pill ready';
239
+ statusPill.textContent = 'Ready';
240
+ } else {
241
+ statusPill.className = 'pill not-ready';
242
+ statusPill.textContent = 'Not Ready';
243
+ }
244
+ } catch (e) {
245
+ statusPill.className = 'pill not-ready';
246
+ statusPill.textContent = 'Not Ready';
247
+ }
248
+ setTimeout(pollStatus, 5000);
249
+ }
250
+ pollStatus();
251
 
252
  quickSelect.addEventListener('change', () => {
253
  if (quickSelect.value) {
254
  questionInput.value = quickSelect.value;
255
+ sendBtn.click();
256
  }
257
  });
258