1+ <!DOCTYPE html>
2+ < html lang ="ko ">
3+
4+ < head >
5+ < meta charset ="UTF-8 ">
6+ < title > AI 채팅 + 음성 데모</ title >
7+ < link rel ="stylesheet " href ="styles.css ">
8+ </ head >
9+
10+ < body >
11+ < div class ="chat-container ">
12+ < div id ="status ">
13+ < div style ="display: flex; justify-content: space-between; align-items: center; ">
14+ < div style ="display: flex; align-items: center; gap: 1em; ">
15+ < span > 로그인: < span id ="login-status "> 대기 중</ span > </ span >
16+ < span style ="color: #6c757d; font-size: 0.85em; "> | WebSocket: < span id ="ws-status "> 대기 중</ span > </ span >
17+ < span style ="color: #6c757d; font-size: 0.85em; "> | 세션: < span id ="session-id "> 없음</ span > </ span >
18+ </ div >
19+ < span style ="color: #6c757d; font-size: 0.85em; "> 서버: < span id ="server-info "> </ span > </ span >
20+ </ div >
21+ </ div >
22+
23+ < div id ="login-section ">
24+ < div style ="display: flex; align-items: center; gap: 1em; margin-bottom: 1em; ">
25+ < input id ="guest-id " type ="text " placeholder ="게스트 ID를 입력하세요 " value ="test-guest-123 "
26+ style ="flex: 1; padding: 0.75em; border-radius: 8px; border: 1px solid #c8e6c9; font-size: 1em; " />
27+ < button id ="login-btn " style ="background: #2196f3; color: white; border: none; padding: 0.75em 1.5em; border-radius: 8px; font-size: 1em; cursor: pointer; font-weight: 500; ">
28+ 게스트 로그인
29+ </ button >
30+ </ div >
31+ </ div >
32+
33+ < div class ="top-row ">
34+ < select id ="character-select ">
35+ < option value ="44444444-4444-4444-4444-444444444444 "> 제로</ option >
36+ < option value ="11111111-1111-1111-1111-111111111111 "> 하루</ option >
37+ < option value ="22222222-2222-2222-2222-222222222222 "> 미야</ option >
38+ < option value ="33333333-3333-3333-3333-333333333333 "> 소피아</ option >
39+ </ select >
40+ </ div >
41+
42+ < div id ="chat-log "> </ div >
43+
44+ < div id ="audio-option-row " style ="display: flex; align-items: center; gap: 1em; margin-bottom: 0.5em; ">
45+ < label style ="display: flex; align-items: center; gap: 0.5em; cursor: pointer; color: #37474f; ">
46+ < input id ="include-audio " type ="checkbox " checked style ="cursor: pointer; " />
47+ < span > 음성 포함</ span >
48+ </ label >
49+ </ div >
50+
51+ < div id ="input-row ">
52+ < input id ="user-input " type ="text " placeholder ="메시지를 입력하세요 " autocomplete ="off " />
53+ < button id ="send-btn "> 전송</ button >
54+ </ div >
55+
56+ < div id ="audio-section " style ="display: none; ">
57+ < div style ="display: flex; align-items: center; gap: 0.5em; margin-bottom: 0.5em; ">
58+ < span style ="color: #4caf50; font-weight: 500; "> 🔊</ span >
59+ < span style ="color: #37474f; font-size: 0.9em; "> 음성 재생 중...</ span >
60+ </ div >
61+ < audio id ="audio-player " controls style ="width: 100%; "> </ audio >
62+ </ div >
63+ </ div >
64+
65+ < script src ="script.js "> </ script >
66+ </ body >
67+
68+ </ html >
0 commit comments