| <!DOCTYPE html> |
| <html lang="ko"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>RAG μ±λ΄ - μ§μλ² μ΄μ€</title> |
| <link rel="stylesheet" href="/static/css/style.css"> |
| |
| <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"> |
| |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"> |
| |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.9.3/min/dropzone.min.css"> |
| </head> |
| <body> |
| <nav class="navbar navbar-expand-lg navbar-dark bg-dark"> |
| <div class="container"> |
| <a class="navbar-brand" href="/"> |
| <i class="fas fa-robot me-2"></i>RAG μ±λ΄ |
| </a> |
| <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"> |
| <span class="navbar-toggler-icon"></span> |
| </button> |
| <div class="collapse navbar-collapse" id="navbarNav"> |
| <ul class="navbar-nav ms-auto"> |
| <li class="nav-item"> |
| <a class="nav-link" href="/"><i class="fas fa-home me-1"></i>ν</a> |
| </li> |
| <li class="nav-item"> |
| <a class="nav-link" href="/chat"><i class="fas fa-comments me-1"></i>μ±ν
</a> |
| </li> |
| <li class="nav-item"> |
| <a class="nav-link active" href="/knowledge"><i class="fas fa-database me-1"></i>μ§μλ² μ΄μ€</a> |
| </li> |
| </ul> |
| </div> |
| </div> |
| </nav> |
|
|
| <div class="container mt-4"> |
| <div class="row"> |
| |
| <div class="col-md-6"> |
| <div class="card shadow-sm mb-4"> |
| <div class="card-header bg-success text-white"> |
| <i class="fas fa-upload me-2"></i>λ¬Έμ μ
λ‘λ |
| </div> |
| <div class="card-body"> |
| <p class="card-text">μ±λ΄μ μ§μμ μ 곡ν λ¬Έμλ₯Ό μ
λ‘λνμΈμ. ν
μ€νΈ κΈ°λ° λ¬Έμ(TXT, MD, PDF, DOCX, CSV)λ₯Ό μ§μν©λλ€.</p> |
| |
| <form id="documentUploadForm" class="dropzone mt-3"> |
| <div class="dz-message needsclick"> |
| <i class="fas fa-cloud-upload-alt fa-3x mb-3"></i> |
| <h4>μ¬κΈ°μ νμΌμ λμ΄λ€ λκ±°λ ν΄λ¦νμ¬ μ ννμΈμ</h4> |
| <span class="text-muted">μ΅λ 10MB, ν
μ€νΈ κΈ°λ° λ¬Έμ νμΌλ§ νμ©</span> |
| </div> |
| </form> |
| |
| <div class="alert alert-success mt-3 d-none" id="uploadSuccess"> |
| <i class="fas fa-check-circle me-2"></i> |
| <span id="uploadSuccessMessage">λ¬Έμκ° μ±κ³΅μ μΌλ‘ μ
λ‘λλμμ΅λλ€.</span> |
| </div> |
| |
| <div class="alert alert-danger mt-3 d-none" id="uploadError"> |
| <i class="fas fa-exclamation-circle me-2"></i> |
| <span id="uploadErrorMessage">μ
λ‘λ μ€ μ€λ₯κ° λ°μνμ΅λλ€.</span> |
| </div> |
| |
| <button id="uploadButton" class="btn btn-success mt-3" disabled> |
| <i class="fas fa-upload me-2"></i>μ
λ‘λ |
| </button> |
| </div> |
| </div> |
| |
| <div class="card shadow-sm"> |
| <div class="card-header bg-dark text-white"> |
| <i class="fas fa-info-circle me-2"></i>μ¬μ© μλ΄ |
| </div> |
| <div class="card-body"> |
| <h5>μ§μλλ νμΌ νμ</h5> |
| <ul> |
| <li>ν
μ€νΈ νμΌ (.txt)</li> |
| <li>λ§ν¬λ€μ΄ νμΌ (.md)</li> |
| <li>PDF λ¬Έμ (.pdf)</li> |
| <li>MS Word λ¬Έμ (.docx)</li> |
| <li>CSV λ°μ΄ν° (.csv)</li> |
| </ul> |
| <h5>μλ λ°©μ</h5> |
| <p>μ
λ‘λλ λ¬Έμλ μ μ ν ν¬κΈ°λ‘ λΆν λμ΄ μλ² λ©λ ν λ²‘ν° λ°μ΄ν°λ² μ΄μ€μ μ μ₯λ©λλ€. μ΄ λ°μ΄ν°λ μ¬μ©μμ μ§λ¬Έμ λν κ΄λ ¨ μ 보λ₯Ό κ²μνλ λ° μ¬μ©λ©λλ€.</p> |
| </div> |
| </div> |
| </div> |
| |
| |
| <div class="col-md-6"> |
| <div class="card shadow-sm mb-4"> |
| <div class="card-header bg-primary text-white"> |
| <div class="d-flex justify-content-between align-items-center"> |
| <div> |
| <i class="fas fa-database me-2"></i>μ§μλ² μ΄μ€ μν |
| </div> |
| <div> |
| <button id="refreshStatus" class="btn btn-sm btn-light"> |
| <i class="fas fa-sync-alt me-1"></i>μλ‘κ³ μΉ¨ |
| </button> |
| </div> |
| </div> |
| </div> |
| <div class="card-body"> |
| <div id="databaseStats"> |
| <div class="d-flex justify-content-center align-items-center" style="height: 100px;"> |
| <div class="spinner-border text-primary" role="status"> |
| <span class="visually-hidden">Loading...</span> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| <div class="card shadow-sm"> |
| <div class="card-header bg-primary text-white"> |
| <i class="fas fa-file-alt me-2"></i>λ¬Έμ λͺ©λ‘ |
| </div> |
| <div class="card-body p-0"> |
| <div id="documentsContainer"> |
| <div class="text-center p-4"> |
| <div class="spinner-border text-primary" role="status"> |
| <span class="visually-hidden">Loading...</span> |
| </div> |
| <p class="mt-2">λ¬Έμ λͺ©λ‘μ λΆλ¬μ€λ μ€...</p> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
|
|
| <footer class="bg-dark text-white text-center py-3 mt-5"> |
| <div class="container"> |
| <p class="mb-0">RAG μ±λ΄ ν΄λΌμ΄μΈνΈ © 2025</p> |
| </div> |
| </footer> |
|
|
| |
| <template id="documentItemTemplate"> |
| <div class="list-group-item"> |
| <div class="d-flex justify-content-between align-items-center"> |
| <div class="d-flex align-items-center"> |
| <i class="fas fa-file-alt me-3 text-primary"></i> |
| <div> |
| <h6 class="mb-0 document-name">λ¬Έμλͺ
</h6> |
| <div class="small text-muted"> |
| λ¬Έμ μ²ν¬: <span class="document-chunks">0</span> κ° |
| </div> |
| </div> |
| </div> |
| <span class="badge bg-primary document-type">TXT</span> |
| </div> |
| </div> |
| </template> |
|
|
| |
| <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js"></script> |
| |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.9.3/min/dropzone.min.js"></script> |
| |
| <script src="/static/js/knowledge.js"></script> |
| </body> |
| </html> |
|
|