(edit: sorry for formatting, but when I copy paste code in this box, select it and click “prereformatted” it turns everything in one long line and in general this edit is not usable to paste code eg it pastes extra newlines )
from this example Custom Interfaces · Prodigy · An annotation tool for AI, Machine Learning & NLP , in the custom script below I can see “here” in the browser console , but never “prodigyscriptloaded”
console.log('here')
/* this does not fire below */
document.addEventListener('prodigyscriptloaded', loadEvent => {
console.log('prodigyscriptloaded')
if (loadEvent.detail.url.endsWith('sentiment-refresh.js')) {
// only run this code 1 time when the current script
// ("sentiment-refresh.js") has finished loading
document.addEventListener('prodigyanswer', answerEvent => {
const { answer, task } = answerEvent.detail
console.log('The answer was: ', answer)
})
document.addEventListener('prodigysave', event => {
/*const { answer, task } = event.detail*/
console.log('Saved: '/*, answer*/)
})
}
})
recipe is also as in example like this
return {
"dataset": dataset,
"stream": stream,
"view_id": "blocks",
"config": {
"blocks": [
{"view_id": "choice"},
# Load custom Input for New Model Name
{
"view_id": "html",
"html_template": (CWD / "sentiment-refresh.html").read_text(),
},
\],
# Load custom JavaScript file.
"javascript": (CWD / "sentiment-refresh.js").read_text(),
},
"event_hooks": {
# add event handler endpoint at: `/event/refresh_model`
"refresh_model": refresh_model_event_handler,
# add event handler endpoint at: `/event/new_dataset`
"new_dataset": new_dataset_event_handler
},
}