website-RAG / static /script.js
beeguy's picture
button for download
7a26dd9
raw
history blame
1.58 kB
const textGenForm = document.querySelector('.text-gen-form');
let embeddingsList = [];
const embedText = async (text) => {
const inferResponse = await fetch(`embeddings?input=${text}`);
const inferJson = await inferResponse.json();
return inferJson.embeddings;
};
textGenForm.addEventListener('submit', async (event) => {
event.preventDefault();
const textGenInput = document.getElementById('text-gen-input');
const textGenParagraph = document.querySelector('.text-gen-output');
try {
const embeddings = await embedText(textGenInput.value);
embeddingsList = embeddings; // Store embeddings in the variable
textGenParagraph.textContent = JSON.stringify(embeddingsList);
updateDownloadButtonState(); // Update button state
} catch (err) {
console.error(err);
}
});
const downloadButton = document.getElementById('download-embeddings');
const updateDownloadButtonState = () => {
downloadButton.disabled = embeddingsList.length === 0;
};
const downloadEmbeddings = () => {
const dataStr = "data:text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(embeddingsList));
const downloadAnchorNode = document.createElement('a');
downloadAnchorNode.setAttribute("href", dataStr);
downloadAnchorNode.setAttribute("download", "embeddings.json");
document.body.appendChild(downloadAnchorNode);
downloadAnchorNode.click();
downloadAnchorNode.remove();
};
downloadButton.addEventListener('click', downloadEmbeddings);
// Initialize button state
updateDownloadButtonState();