Download index.html from studycode129/Free_Web_LLM_Tester: direct link, hf CLI and curl.
- Browser
- Download file 5.87 kB
-
https://huggingface.co/spaces/studycode129/Free_Web_LLM_Tester/resolve/a4afcf69dc92feaafa1b1baf4d05da39caa5eb15/index.html
- Command line
-
hf download hf://spaces/studycode129/Free_Web_LLM_Tester@a4afcf69dc92feaafa1b1baf4d05da39caa5eb15/index.html
-
curl -L -o index.html https://huggingface.co/spaces/studycode129/Free_Web_LLM_Tester/resolve/a4afcf69dc92feaafa1b1baf4d05da39caa5eb15/index.html
5.87 kB
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8" /> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | |
| <title>LLM Prompt Tester For Research</title> | |
| <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap"> | |
| <style> | |
| * { | |
| box-sizing: border-box; | |
| } | |
| body { | |
| font-family: 'Inter', sans-serif; | |
| background: linear-gradient(to right, #ede9fe, #f3e8ff); | |
| color: #374151; | |
| margin: 0; | |
| padding: 20px; | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| min-height: 100vh; | |
| } | |
| .container { | |
| background: #faf5ff; | |
| padding: 32px; | |
| border-radius: 24px; | |
| box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1); | |
| width: 100%; | |
| max-width: 800px; | |
| border: 2px solid #c4b5fd; | |
| } | |
| h1 { | |
| text-align: center; | |
| margin-bottom: 24px; | |
| font-size: 28px; | |
| font-weight: 600; | |
| color: #6b21a8; | |
| } | |
| label { | |
| display: block; | |
| margin: 14px 0 6px; | |
| font-weight: 600; | |
| color: #6b21a8; | |
| } | |
| textarea, select, input[type="text"] { | |
| width: 100%; | |
| padding: 12px; | |
| margin-bottom: 16px; | |
| border-radius: 10px; | |
| border: 1px solid #ddd6fe; | |
| font-size: 16px; | |
| font-family: inherit; | |
| } | |
| textarea { | |
| min-height: 120px; | |
| resize: vertical; | |
| } | |
| input[type="file"] { | |
| display: none; | |
| } | |
| .custom-file-upload { | |
| display: inline-block; | |
| padding: 12px 24px; | |
| background-color: #8b5cf6; | |
| color: white; | |
| font-weight: 600; | |
| border-radius: 10px; | |
| cursor: pointer; | |
| margin-bottom: 8px; | |
| } | |
| button { | |
| background-color: #8b5cf6; | |
| color: white; | |
| font-weight: 600; | |
| border: none; | |
| padding: 14px; | |
| border-radius: 10px; | |
| font-size: 16px; | |
| cursor: pointer; | |
| width: 100%; | |
| margin-top: 12px; | |
| } | |
| button:hover { | |
| background-color: #7c3aed; | |
| } | |
| .loading { | |
| font-size: 16px; | |
| font-weight: bold; | |
| color: #6b21a8; | |
| animation: pulse 1s infinite; | |
| margin: 10px 0; | |
| } | |
| @keyframes pulse { | |
| 0% { opacity: 0.3; } | |
| 50% { opacity: 1; } | |
| 100% { opacity: 0.3; } | |
| } | |
| pre { | |
| background: #f5f3ff; | |
| border: 1px solid #e9d5ff; | |
| padding: 16px; | |
| border-radius: 10px; | |
| white-space: pre-wrap; | |
| margin-top: 10px; | |
| } | |
| .download { | |
| text-align: center; | |
| margin-top: 20px; | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <div class="container"> | |
| <h1>LLM Prompt Tester For Research</h1> | |
| <label for="model">Choose Model:</label> | |
| <select id="model"> | |
| <option value="google/gemma-3n-e2b-it:free">Google Gemma</option> | |
| <option value="deepseek/deepseek-r1:free">DeepSeek Chat v3</option> | |
| </select> | |
| <label for="prompt">Enter a Prompt:</label> | |
| <textarea id="prompt" placeholder="Type a prompt here..."></textarea> | |
| <label for="fileUpload">Or upload prompts from a file (.txt/.csv):</label> | |
| <label class="custom-file-upload"> | |
| <input type="file" id="fileUpload" accept=".txt,.csv"/> | |
| Choose File | |
| </label> | |
| <p id="fileName" class="file-name">No file selected</p> | |
| <button onclick="send()">Send Prompt</button> | |
| <div id="loading" class="loading" style="display:none;">⏳ Processing prompts... Please wait.</div> | |
| <h3>Response:</h3> | |
| <pre id="response"></pre> | |
| <div class="download"> | |
| <button onclick="downloadCSV()">Download Results as CSV</button> | |
| </div> | |
| </div> | |
| <script> | |
| const results = []; | |
| const key = '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'; // replace this with your actual key | |
| document.getElementById('fileUpload').addEventListener('change', async function () { | |
| const file = this.files[0]; | |
| const fileNameDisplay = document.getElementById('fileName'); | |
| fileNameDisplay.textContent = file ? file.name : 'No file selected'; | |
| if (!file) return; | |
| const text = await file.text(); | |
| const prompts = text.split(/\r?\n/).filter(Boolean); | |
| document.getElementById('loading').style.display = 'block'; | |
| for (const prompt of prompts) { | |
| await send(prompt); | |
| } | |
| document.getElementById('loading').style.display = 'none'; | |
| }); | |
| async function send(overridePrompt) { | |
| const model = document.getElementById("model").value; | |
| const prompt = overridePrompt || document.getElementById("prompt").value; | |
| if (!prompt) return; | |
| document.getElementById('loading').style.display = 'block'; | |
| const res = await fetch("https://openrouter.ai/api/v1/chat/completions", { | |
| method: "POST", | |
| headers: { | |
| "Authorization": "Bearer " + key, | |
| "Content-Type": "application/json", | |
| "HTTP-Referer": "https://huggingface.co/spaces/studycode129/Free_Web_LLM_Tester" | |
| }, | |
| body: JSON.stringify({ | |
| model, | |
| messages: [{ role: "user", content: prompt }], | |
| temperature: 0.7 | |
| }) | |
| }); | |
| const data = await res.json(); | |
| const output = data.choices?.[0]?.message?.content || JSON.stringify(data); | |
| document.getElementById("response").textContent = output; | |
| results.push({ model, prompt, output }); | |
| document.getElementById('loading').style.display = 'none'; | |
| } | |
| function downloadCSV() { | |
| let csv = "Model,Prompt,Output\n"; | |
| results.forEach(row => { | |
| csv += `"${row.model}","${row.prompt.replace(/\n/g, " ")}","${row.output.replace(/\n/g, " ")}"\n`; | |
| }); | |
| const blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' }); | |
| const link = document.createElement("a"); | |
| link.href = URL.createObjectURL(blob); | |
| link.download = "llm_test_results.csv"; | |
| link.click(); | |
| } | |
| </script> | |
| </body> | |
| </html> | |