I have a custom recipe combining classification and text_input interfaces. I'm finding that the text input box is not resetting, and the box is not getting autofocus (except for the first sample). When a new sample comes up, the text input box keeps whatever input I gave for the previous sample, but if I accept the user-input is not saved.
Code for the recipe:
@prodigy.recipe(
"label-clusters",
dataset=("The dataset to save to", "positional", None, str),
file_path=("File with jsonl list of images", "positional", None, str),
label=("Comma-separated label(s)", "option", "l"),
)
def label_clusters(dataset, file_path, label):
blocks = [
{"view_id": "classification"},
{"view_id": "text_input"},
]
def get_stream():
stream = JSONL(file_path)
for eg in stream:
eg["field_id"] = "cluster_label"
eg["field_placeholder"] = ""
eg["field_autofocus"] = True
yield eg
return {
"dataset": dataset,
"view_id": "blocks",
"config": {
"blocks": blocks
},
"stream": get_stream(),
}
A line in the input file looks like: {"image": "http://127.0.0.1:8282/lc_11.png", "width": 800, "height": 800, "label": "cluster"}. I also tried adding the field_* keys to the input file, with the same result.
Am I misusing this interface somehow?