mirror of
https://github.com/coalaura/whiskr.git
synced 2025-09-08 00:29:54 +00:00
134 lines
4.6 KiB
HTML
134 lines
4.6 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
|
|
<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=Work+Sans:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet" />
|
|
|
|
<link href="lib/catppuccin.min.css" rel="stylesheet" />
|
|
<link href="css/dropdown.css" rel="stylesheet" />
|
|
<link href="css/markdown.css" rel="stylesheet" />
|
|
<link href="css/chat.css" rel="stylesheet" />
|
|
|
|
<title>whiskr</title>
|
|
</head>
|
|
<body class="loading">
|
|
<div id="total" title="Accumulated total cost, middle-click to reset"></div>
|
|
<div id="version"></div>
|
|
|
|
<div id="loading">
|
|
<div class="inner">
|
|
<img src="logo.png" /> <span>whiskr</span>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="page">
|
|
<div id="title" class="hidden">
|
|
<button id="title-refresh"></button>
|
|
<div id="title-text"></div>
|
|
</div>
|
|
|
|
<div id="messages"></div>
|
|
|
|
<div id="chat">
|
|
<button id="top" class="hidden" title="Scroll to top"></button>
|
|
<button id="bottom" class="hidden" title="Scroll to bottom"></button>
|
|
|
|
<div id="resize-bar"></div>
|
|
|
|
<div id="attachments" class="files"></div>
|
|
|
|
<textarea id="message" placeholder="Type something..." autocomplete="off"></textarea>
|
|
|
|
<button id="upload" title="Add files to message"></button>
|
|
<button id="add" title="Add message to chat"></button>
|
|
<button id="send" title="Add message to chat and start completion"></button>
|
|
|
|
<div class="options">
|
|
<div class="option">
|
|
<label for="role" title="Message role"></label>
|
|
<select id="role">
|
|
<option value="user" selected>User</option>
|
|
<option value="assistant">Assistant</option>
|
|
<option value="system">System</option>
|
|
</select>
|
|
</div>
|
|
<div class="option">
|
|
<label for="model" title="Model"></label>
|
|
<select id="model" data-searchable></select>
|
|
</div>
|
|
<div class="option">
|
|
<label for="prompt" title="Main system prompt"></label>
|
|
<select id="prompt" data-searchable></select>
|
|
</div>
|
|
<div class="option">
|
|
<label for="temperature" title="Temperature (0 - 2)"></label>
|
|
<input id="temperature" type="number" min="0" max="2" step="0.05" value="0.85" />
|
|
</div>
|
|
<div class="option">
|
|
<label for="iterations" title="Maximum number of iterations (turns) per response"></label>
|
|
<input id="iterations" type="number" min="1" max="50" value="3" />
|
|
</div>
|
|
<div class="option none">
|
|
<label for="reasoning-effort" title="Reasoning Effort"></label>
|
|
<select id="reasoning-effort">
|
|
<option value="low">Low</option>
|
|
<option value="medium" selected>Medium</option>
|
|
<option value="hight">High</option>
|
|
<option value="">Custom</option>
|
|
</select>
|
|
</div>
|
|
<div class="option none">
|
|
<label for="reasoning-tokens" title="Maximum amount of reasoning tokens"></label>
|
|
<input id="reasoning-tokens" type="number" min="2" max="1048576" value="1024" />
|
|
</div>
|
|
<div class="option group none">
|
|
<button id="json" title="Turn on structured json output"></button>
|
|
<button id="search" title="Turn on search tools (search_web and fetch_contents)"></button>
|
|
</div>
|
|
<div class="option">
|
|
<button id="scrolling" title="Turn on auto-scrolling"></button>
|
|
</div>
|
|
<div class="option">
|
|
<button id="export" title="Export the entire chat as a JSON file"></button>
|
|
<button id="import" title="Import a chat form a JSON file"></button>
|
|
<button id="clear" title="Clear the entire chat"></button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="authentication" class="modal">
|
|
<div class="background"></div>
|
|
<div class="content">
|
|
<div class="header">Authentication</div>
|
|
<div class="body">
|
|
<div id="auth-error" class="error"></div>
|
|
|
|
<div class="form-group">
|
|
<label for="username">Username</label>
|
|
<input type="text" name="username" id="username" placeholder="admin" />
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="password">Password</label>
|
|
<input type="password" name="password" id="password" />
|
|
</div>
|
|
</div>
|
|
<div class="buttons">
|
|
<button id="login">Login</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="lib/highlight.min.js"></script>
|
|
<script src="lib/marked.min.js"></script>
|
|
<script src="lib/morphdom.min.js"></script>
|
|
<script src="js/lib.js"></script>
|
|
<script src="js/markdown.js"></script>
|
|
<script src="js/dropdown.js"></script>
|
|
<script src="js/chat.js"></script>
|
|
</body>
|
|
</html> |