swapped to Zephyr-7B!
Browse files- prototype_index.html +34 -24
prototype_index.html
CHANGED
@@ -82,11 +82,11 @@
|
|
82 |
</head>
|
83 |
<body>
|
84 |
<div class="card">
|
85 |
-
<h1>FLUX-1 Schnell + Joy Caption +
|
86 |
<p>
|
87 |
This static Space demonstrates how to call a remote Gradio Space while
|
88 |
letting <strong>each visitor’s own Hugging Face subscription</strong> cover
|
89 |
-
the compute costs. Generate images with FLUX-1, caption them with Joy Caption, and generate text with
|
90 |
</p>
|
91 |
|
92 |
<!-- 1️⃣ Sign-in button (shown only when needed) -->
|
@@ -166,30 +166,33 @@
|
|
166 |
<label for="textPrompt">Prompt</label>
|
167 |
<textarea id="textPrompt" rows="4" placeholder="Enter your prompt here..." style="width:100%; padding:0.5rem; border:1px solid #ccc; border-radius:4px; box-sizing:border-box; margin-bottom:1rem;"></textarea>
|
168 |
|
|
|
|
|
|
|
169 |
<div style="display:flex; gap:1rem;">
|
170 |
<div style="flex:1;">
|
171 |
-
<label for="
|
172 |
-
<input type="number" id="
|
173 |
</div>
|
174 |
<div style="flex:1;">
|
175 |
<label for="temperature">Temperature</label>
|
176 |
-
<input type="number" id="temperature" value="
|
177 |
</div>
|
178 |
</div>
|
179 |
|
180 |
<div style="display:flex; gap:1rem;">
|
181 |
<div style="flex:1;">
|
182 |
<label for="topP">Top P</label>
|
183 |
-
<input type="number" id="topP" value="0.
|
184 |
</div>
|
185 |
<div style="flex:1;">
|
186 |
-
<label for="
|
187 |
-
<input type="number" id="
|
188 |
</div>
|
189 |
</div>
|
190 |
|
191 |
-
<label for="
|
192 |
-
<input type="number" id="
|
193 |
|
194 |
<button type="submit" class="generate">Generate Text</button>
|
195 |
</form>
|
@@ -254,7 +257,7 @@
|
|
254 |
*/
|
255 |
async function startApp(hfToken, userInfo = null) {
|
256 |
try {
|
257 |
-
banner.textContent = "Connecting to FLUX.1-schnell, Joy Caption, and
|
258 |
banner.style.display = "block";
|
259 |
|
260 |
const opts = hfToken ? { hf_token: hfToken } : {};
|
@@ -268,8 +271,9 @@
|
|
268 |
opts
|
269 |
);
|
270 |
|
271 |
-
|
272 |
-
|
|
|
273 |
opts
|
274 |
);
|
275 |
|
@@ -401,11 +405,12 @@
|
|
401 |
e.preventDefault();
|
402 |
|
403 |
const prompt = document.getElementById("textPrompt").value.trim();
|
404 |
-
const
|
|
|
405 |
const temperature = parseFloat(document.getElementById("temperature").value);
|
406 |
const topP = parseFloat(document.getElementById("topP").value);
|
407 |
-
const
|
408 |
-
const
|
409 |
|
410 |
if (!prompt) {
|
411 |
textResultDiv.innerHTML = "<p style='color:red;'>Please enter a prompt.</p>";
|
@@ -418,16 +423,21 @@
|
|
418 |
textResultDiv.innerHTML = "Generating text…";
|
419 |
|
420 |
try {
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
|
|
|
|
|
|
|
|
428 |
]);
|
429 |
|
430 |
-
|
|
|
431 |
textResultDiv.innerHTML = `
|
432 |
<div style="background:#f8f9fa; padding:1rem; border-radius:6px; margin-top:1rem;">
|
433 |
<h4>Generated Text</h4>
|
|
|
82 |
</head>
|
83 |
<body>
|
84 |
<div class="card">
|
85 |
+
<h1>FLUX-1 Schnell + Joy Caption + Zephyr-7B</h1>
|
86 |
<p>
|
87 |
This static Space demonstrates how to call a remote Gradio Space while
|
88 |
letting <strong>each visitor’s own Hugging Face subscription</strong> cover
|
89 |
+
the compute costs. Generate images with FLUX-1, caption them with Joy Caption, and generate text with Zephyr-7B.
|
90 |
</p>
|
91 |
|
92 |
<!-- 1️⃣ Sign-in button (shown only when needed) -->
|
|
|
166 |
<label for="textPrompt">Prompt</label>
|
167 |
<textarea id="textPrompt" rows="4" placeholder="Enter your prompt here..." style="width:100%; padding:0.5rem; border:1px solid #ccc; border-radius:4px; box-sizing:border-box; margin-bottom:1rem;"></textarea>
|
168 |
|
169 |
+
<label for="systemPrompt">System Prompt</label>
|
170 |
+
<textarea id="systemPrompt" rows="3" placeholder="You are a helpful assistant..." style="width:100%; padding:0.5rem; border:1px solid #ccc; border-radius:4px; box-sizing:border-box; margin-bottom:1rem;"></textarea>
|
171 |
+
|
172 |
<div style="display:flex; gap:1rem;">
|
173 |
<div style="flex:1;">
|
174 |
+
<label for="maxNewTokens">Max New Tokens</label>
|
175 |
+
<input type="number" id="maxNewTokens" value="1024" min="1" max="2048" step="1" />
|
176 |
</div>
|
177 |
<div style="flex:1;">
|
178 |
<label for="temperature">Temperature</label>
|
179 |
+
<input type="number" id="temperature" value="0.7" min="0.1" max="4.0" step="0.1" />
|
180 |
</div>
|
181 |
</div>
|
182 |
|
183 |
<div style="display:flex; gap:1rem;">
|
184 |
<div style="flex:1;">
|
185 |
<label for="topP">Top P</label>
|
186 |
+
<input type="number" id="topP" value="0.95" min="0.05" max="1.0" step="0.05" />
|
187 |
</div>
|
188 |
<div style="flex:1;">
|
189 |
+
<label for="topK">Top K</label>
|
190 |
+
<input type="number" id="topK" value="50" min="1" max="1000" step="1" />
|
191 |
</div>
|
192 |
</div>
|
193 |
|
194 |
+
<label for="repetitionPenalty">Repetition Penalty</label>
|
195 |
+
<input type="number" id="repetitionPenalty" value="1.0" min="1.0" max="2.0" step="0.05" />
|
196 |
|
197 |
<button type="submit" class="generate">Generate Text</button>
|
198 |
</form>
|
|
|
257 |
*/
|
258 |
async function startApp(hfToken, userInfo = null) {
|
259 |
try {
|
260 |
+
banner.textContent = "Connecting to FLUX.1-schnell, Joy Caption, and Zephyr-7B…";
|
261 |
banner.style.display = "block";
|
262 |
|
263 |
const opts = hfToken ? { hf_token: hfToken } : {};
|
|
|
271 |
opts
|
272 |
);
|
273 |
|
274 |
+
// Connect to Zephyr-7B on Hugging Face Spaces
|
275 |
+
const zephyr = await Client.connect(
|
276 |
+
"hysts/zephyr-7b",
|
277 |
opts
|
278 |
);
|
279 |
|
|
|
405 |
e.preventDefault();
|
406 |
|
407 |
const prompt = document.getElementById("textPrompt").value.trim();
|
408 |
+
const systemPrompt = document.getElementById("systemPrompt").value.trim();
|
409 |
+
const maxNewTokens = parseInt(document.getElementById("maxNewTokens").value, 10);
|
410 |
const temperature = parseFloat(document.getElementById("temperature").value);
|
411 |
const topP = parseFloat(document.getElementById("topP").value);
|
412 |
+
const topK = parseInt(document.getElementById("topK").value, 10);
|
413 |
+
const repetitionPenalty = parseFloat(document.getElementById("repetitionPenalty").value);
|
414 |
|
415 |
if (!prompt) {
|
416 |
textResultDiv.innerHTML = "<p style='color:red;'>Please enter a prompt.</p>";
|
|
|
423 |
textResultDiv.innerHTML = "Generating text…";
|
424 |
|
425 |
try {
|
426 |
+
// Call Zephyr-7B ChatInterface with proper parameters
|
427 |
+
// ChatInterface expects positional args: message, chat_history, then additional_inputs
|
428 |
+
const output = await zephyr.predict("/chat", [
|
429 |
+
prompt, // message
|
430 |
+
[], // chat_history (empty for single turn)
|
431 |
+
systemPrompt, // system_prompt (additional_input 1)
|
432 |
+
maxNewTokens, // max_new_tokens (additional_input 2)
|
433 |
+
temperature, // temperature (additional_input 3)
|
434 |
+
topP, // top_p (additional_input 4)
|
435 |
+
topK, // top_k (additional_input 5)
|
436 |
+
repetitionPenalty // repetition_penalty (additional_input 6)
|
437 |
]);
|
438 |
|
439 |
+
// ChatInterface returns the full response
|
440 |
+
const generatedText = output.data;
|
441 |
textResultDiv.innerHTML = `
|
442 |
<div style="background:#f8f9fa; padding:1rem; border-radius:6px; margin-top:1rem;">
|
443 |
<h4>Generated Text</h4>
|