| const results = []; |
|
|
| document.getElementById('fileUpload').addEventListener('change', async function () { |
| const file = this.files[0]; |
| if (!file) return; |
|
|
| |
| document.getElementById('fileName').textContent = `Selected file: ${file.name}`; |
| |
| 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() { |
| const model = document.getElementById("model").value; |
| const prompt = document.getElementById("prompt").value; |
| const loadingEl = document.getElementById("loading"); |
| const outputEl = document.getElementById("responseOutput"); |
|
|
| outputEl.textContent = ""; |
| loadingEl.style.display = "block"; |
|
|
| let responseText = ""; |
|
|
| if (model.includes("gemma")) { |
| responseText = await callGemma(prompt); |
| } else if (model.includes("deepseek")) { |
| responseText = await callDeepSeek(prompt); |
| } |
|
|
| loadingEl.style.display = "none"; |
| outputEl.textContent = responseText; |
| } |
|
|
|
|
|
|
| async function callGemma(prompt) { |
| const res = await fetch("https://openrouter.ai/api/v1/chat/completions", { |
| method: "POST", |
| headers: { |
| "Authorization": "Bearer " + "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", |
| "Content-Type": "application/json", |
| |
| }, |
| body: JSON.stringify({ inputs: prompt }) |
| }); |
|
|
| const result = await response.json(); |
| return result[0]?.generated_text || "No response"; |
| } |
|
|
|
|
| async function callDeepSeek(prompt) { |
| const response = await fetch("https://api.deepseek.com/v1/chat/completions", { |
| method: "POST", |
| headers: { |
| "Authorization": "Bearer" + "sk-13b9eb0edb6c4c7d908b14a2a196f122", |
| "Content-Type": "application/json" |
| }, |
| body: JSON.stringify({ |
| messages: [{ role: "user", content: prompt }] |
| }) |
| }); |
|
|
| const result = await response.json(); |
| return result.choices?.[0]?.message?.content || "No response"; |
| } |
|
|
|
|
| const data = await res.json(); |
| const output = data.choices?.[0]?.message?.content || JSON.stringify(data); |
| document.getElementById('responseOutput').textContent = modelReply; |
| |
| results.push({ model, prompt, output }); |
| } |
|
|
| 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(); |
| } |
|
|