CoolFace
Apppublic

prazy1208/text2sql

sourceHugging Faceupdated 4mo agoView on Hugging Face
0likes
index.html111 linesDownload Raw Back to frontend
1<!DOCTYPE html>2<html lang="en">3<head>4  <meta charset="UTF-8" />5  <meta name="viewport" content="width=device-width, initial-scale=1.0" />6  <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />7  <title>Text2SQL — Multi-Agent Pipeline Demo</title>8  <link rel="stylesheet" href="styles.css?v=21" />9</head>10<body>11  <div class="app layout">12    <header class="header header--compact">13      <div class="header-brand">14        <h1>Text2SQL</h1>15        <p class="tagline">Natural Language to SQL &mdash; Multi-Agent Pipeline Demo</p>16      </div>17      <div class="header-badge">PyCon 2026</div>18    </header>19 20    <main class="main main--chatbot">21      <div class="main-layout">22        <aside class="chat-sidebar" aria-label="Chats">23          <div class="chat-sidebar-header">24            <button type="button" id="new-chat-btn" class="btn btn-primary btn-sidebar-new">New chat</button>25          </div>26          <div id="chat-list" class="chat-list" role="list"></div>27        </aside>28 29        <div class="main-column">30          <div id="chat-scroll" class="chat-scroll">31            <div id="output-placeholder" class="output-placeholder">32              <div id="welcome-panel" class="welcome-panel"></div>33            </div>34            <div id="output-content" class="output-content hidden">35              <div id="chat-thread" class="chat-thread"></div>36              <div id="intent-actions" class="intent-actions hidden">37                <p id="intent-actions-label" class="intent-actions-label">Is this understanding correct?</p>38                <div class="intent-actions-buttons">39                  <button type="button" id="intent-yes-btn" class="btn btn-secondary">Yes</button>40                  <button type="button" id="intent-no-btn" class="btn btn-secondary btn-secondary-muted">No</button>41                </div>42              </div>43            </div>44          </div>45 46          <div id="pipeline-progress" class="pipeline-progress hidden">47            <div class="pipeline-steps">48              <div class="pipeline-step" data-step="intent"><span class="pipeline-step-dot"></span><span class="pipeline-step-label">Intent</span></div>49              <div class="pipeline-connector"></div>50              <div class="pipeline-step" data-step="tables"><span class="pipeline-step-dot"></span><span class="pipeline-step-label">Tables</span></div>51              <div class="pipeline-connector"></div>52              <div class="pipeline-step" data-step="columns"><span class="pipeline-step-dot"></span><span class="pipeline-step-label">Columns</span></div>53              <div class="pipeline-connector"></div>54              <div class="pipeline-step" data-step="fewshot"><span class="pipeline-step-dot"></span><span class="pipeline-step-label">Few-Shot</span></div>55              <div class="pipeline-connector"></div>56              <div class="pipeline-step" data-step="sql"><span class="pipeline-step-dot"></span><span class="pipeline-step-label">SQL</span></div>57            </div>58          </div>59 60          <div id="output-error" class="output-error output-error--composer hidden"></div>61 62          <form id="query-form" class="composer" autocomplete="off">63            <div class="composer-row">64              <div id="domain-selector" class="domain-selector" role="radiogroup" aria-label="Select domain">65                <!-- Domain buttons rendered by JS -->66              </div>67              <label class="sr-only" for="use-case">Use case</label>68              <select id="use-case" class="composer-use-case hidden" aria-label="Use case">69                <option value="">Select Domain</option>70              </select>71              <label class="sr-only" for="message">Question</label>72              <textarea73                id="message"74                class="composer-message"75                rows="1"76                placeholder="Ask a question about your data..."77                aria-label="Your question"78              ></textarea>79              <button type="submit" class="btn btn-primary composer-send" id="submit-btn">80                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="22" y1="2" x2="11" y2="13"/><polygon points="22 2 15 22 11 13 2 9 22 2"/></svg>81              </button>82            </div>83            <p id="composer-status" class="composer-status hidden" role="status" aria-live="polite"></p>84          </form>85        </div>86      </div>87    </main>88  </div>89 90  <div91    id="delete-confirm-modal"92    class="modal-overlay hidden"93    role="dialog"94    aria-modal="true"95    aria-labelledby="delete-confirm-title"96    aria-hidden="true"97  >98    <div class="modal-dialog">99      <h2 id="delete-confirm-title" class="modal-title">Delete this chat?</h2>100      <p class="modal-body">This removes the conversation from your history. It cannot be undone.</p>101      <div class="modal-actions">102        <button type="button" id="delete-confirm-cancel" class="btn btn-modal-secondary">Cancel</button>103        <button type="button" id="delete-confirm-delete" class="btn btn-danger">Delete</button>104      </div>105    </div>106  </div>107 108  <script src="app.js?v=21"></script>109</body>110</html>111