JavaScript
const wrapperElement = document.querySelector('#demo');
const prompt = wrapperElement.querySelector('#prompt');
const out = wrapperElement.querySelector('#out');
wrapperElement.querySelector('#run').addEventListener('click', async () => {
wrapperElement.classList.add('running');
const availability = await LanguageModel.availability();
out.textContent = `availability: ${availability}\n`;
const session = await LanguageModel.create({
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
out.textContent = `downloading: ${Math.round(e.loaded * 100)}%\n`;
});
},
});
const answer = await session.prompt([
{ role: 'system', content: 'You are a helpful assistant.' },
{ role: 'user', content: prompt.value },
]);
out.textContent += `\n${answer}\n`;
wrapperElement.classList.remove('running');
});