webllm-llama-3.2-chat / index.html
neetnestor's picture
fix: invalid parameter handling
0bb6b1b
raw
history blame
4.51 kB
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>WebLLM Phi 3.5 Chat</title>
<link rel="stylesheet" href="styles/katex.min.css" />
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css"
/>
<link rel="stylesheet" href="styles/style.css" />
</head>
<body>
<main>
<h1>WebLLM Phi 3.5 Chat</h1>
<p>
This space enables AI chat with Phi 3.5 models directly in your local
browser, empowered by WebLLM.
</p>
<h2>Step 1: Configure And Download Model</h2>
<div class="card vertical">
<form class="configure-form">
<!-- Quantization -->
<div class="form-group">
<label for="quantization">Quantization:</label>
<select id="quantization" name="quantization">
<option value="q4f16">q4f16</option>
<option value="q4f32">q4f32</option>
</select>
</div>
<!-- Context Window -->
<div class="form-group">
<label for="context">Context Window:</label>
<select id="context" name="context">
<option value="1k">1024</option>
<option value="">4096</option>
</select>
</div>
<!-- Temperature -->
<div class="form-group">
<label for="temperature"
>Temperature:
<span id="temperature-value" class="range-value">1.00</span></label
>
<input
type="range"
id="temperature"
name="temperature"
min="0.0"
max="1.0"
step="0.01"
value="1.0"
oninput="document.getElementById('temperature-value').textContent = Number(this.value).toFixed(2)"
/>
</div>
<!-- Top-p -->
<div class="form-group">
<label for="top_p"
>Top-p:
<span id="top_p-value" class="range-value">1.00</span></label
>
<input
type="range"
id="top_p"
name="top_p"
min="0.01"
max="1.0"
step="0.01"
value="1.0"
oninput="document.getElementById('top_p-value').textContent = Number(this.value).toFixed(2)"
/>
</div>
<!-- Presence Penalty -->
<div class="form-group">
<label for="presence_penalty"
>Presence Penalty:
<span id="presence_penalty-value" class="range-value"
>0.00</span
></label
>
<input
type="range"
id="presence_penalty"
name="presence_penalty"
min="0.0"
max="1.0"
step="0.01"
value="0.0"
oninput="document.getElementById('presence_penalty-value').textContent = Number(this.value).toFixed(2)"
/>
</div>
<!-- Frequency Penalty -->
<div class="form-group">
<label for="frequency_penalty"
>Frequency Penalty:
<span id="frequency_penalty-value" class="range-value"
>0.00</span
></label
>
<input
type="range"
id="frequency_penalty"
name="frequency_penalty"
min="0.0"
max="1.0"
step="0.01"
value="0.0"
oninput="document.getElementById('frequency_penalty-value').textContent = Number(this.value).toFixed(2)"
/>
</div>
</form>
<button id="download">Download</button>
</div>
<p id="download-status" class="hidden"></p>
<h2>Step 2: Chat</h2>
<div class="chat-container">
<div id="chat-box" class="chat-box"></div>
<div id="chat-stats" class="chat-stats hidden"></div>
<div class="chat-input-container">
<div class="chat-input">
<input
type="text"
id="user-input"
placeholder="Type a message..."
/>
<button id="send" disabled>Send</button>
</div>
</div>
</div>
</main>
<script src="./dist/index.js" type="module"></script>
</body>
</html>