File size: 5,031 Bytes
8b6f532
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document Search ChatBot</title>
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap" rel="stylesheet">
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    <link rel="stylesheet" href="/static/styles.css">
</head>
<body>
    <div class="container">
        <!-- Header -->
        <header class="header">
            <div class="logo">
                <span class="material-icons">search</span>
                <h1>Document Search</h1>
            </div>
        </header>

        <!-- Search Section -->
        <section id="search-section" class="search-section">
            <div class="search-container">
                <h2>Rechercher des documents techniques</h2>
                <form id="search-form" class="search-form">
                    <div class="input-group">
                        <input type="text" id="keyword" placeholder="Entrez vos mots-clés..." required>
                        <span class="material-icons">search</span>
                    </div>
                    <div class="threshold-group">
                        <label for="threshold">Seuil de similarité :</label>
                        <input type="range" id="threshold" min="0" max="100" step="1" value="70">
                        <span id="threshold-value"></span>
                    </div>
                    <button type="submit" class="search-btn">
                        <span class="material-icons">search</span>
                        Rechercher
                    </button>
                </form>
            </div>
        </section>

        <!-- Results Section -->
        <section id="results-section" class="results-section hidden">
            <div class="results-header">
                <h3>Résultats de recherche</h3>
                <div class="selection-controls">
                    <button id="select-all" class="control-btn">
                        <span class="material-icons">select_all</span>
                        Tout sélectionner
                    </button>
                    <button id="unselect-all" class="control-btn">
                        <span class="material-icons">deselect</span>
                        Tout désélectionner
                    </button>
                </div>
            </div>
            <div id="results-container" class="results-container"></div>
            <div class="chat-launch">
                <button id="start-chat" class="chat-btn" disabled>
                    <span class="material-icons">chat</span>
                    Démarrer le ChatBot
                </button>
            </div>
        </section>

        <!-- ChatBot Section -->
        <section id="chat-section" class="chat-section hidden">
            <div class="chat-header">
                <h3>ChatBot Assistant</h3>
                <button id="back-to-search" class="back-btn">
                    <span class="material-icons">arrow_back</span>
                    Retour à la recherche
                </button>
            </div>
            <div class="chat-container">
                <div id="chat-messages" class="chat-messages"></div>
                <form id="chat-form" class="chat-form">
                    <div class="chat-input-group">
                        <input type="text" id="chat-input" placeholder="Posez votre question..." required>
                        <select id="model-select">
                            <option value="gemini-2.5-flash-preview-05-20">Gemini 2.5 Flash Preview</option>
                            <option value="gemini-2.0-flash">Gemini 2.0 Flash</option>
                            <option value="gemma-3-27b-it">Gemma 3</option>
                            <option value="gemma-3n-e4b-it">Gemma 3n</option>
                        </select>
                        <button type="submit">
                            <span class="material-icons">send</span>
                        </button>
                    </div>
                </form>
            </div>
        </section>
    </div>

    <!-- Modal for document content -->
    <div id="modal" class="modal">
        <div class="modal-content">
            <div class="modal-header">
                <h4 id="modal-title"></h4>
                <button class="modal-close">
                    <span class="material-icons">close</span>
                </button>
            </div>
            <div id="modal-body" class="modal-body"></div>
        </div>
    </div>

    <!-- Loading overlay -->
    <div id="loading" class="loading hidden">
        <div class="spinner"></div>
        <p>Recherche en cours...</p>
    </div>

    <script src="/static/script.js"></script>
</body>
</html>