Session Progress Bar

I am pretty new to Prodigy and wanted to ask if there is a way to save the progress of one session_id throughout the annotation process? For example: If I had a dataset with around 300 samples and 10 session_ids for users to use, I would like them to annotate 30 samples each, so the dataset is balanced. In this example it would be easy to keep track of your own progress because you could do all 30 annotations in one session. However, in the case where a user stops midway and forgets how many annotations they already did, I would like to have some sort of a progress bar displaying how many annotations were already done from that session_id. Is that possible?

I already included the progress bar with the function to track the percentage of already done annotations splitted by the amount of users, but when checking other session_ids I see the same progress:

def progress(ctrl, update_return_value):
    return ctrl.session_annotated / (300 / 10)


return {
        "view_id": "blocks",
        "dataset": dataset,
        "stream": stream,
        "progress": progress,
        "config": {
            "lang": "de",
            "blocks": blocks,
            "theme": "spacy",
            "custom_theme": {"cardMaxWidth": 1500},
            "auto_count_stream": True,
            "html_template": html_template

I also tried to use ctrl.session_annotated_by_session instead, but it only lead to an error. If possible, I would like a progress bar like below that is saved even after closing the window, so the user at least knows how much longer they need to work on the annotation.
Bildschirmfoto vom 2024-03-13 16-10-54

Thanks for the help!

Hi @AnonProdigyUser and welcome to the forum!

In the current design, the TOTAL progress is meant for the entire project i.e. across all annotators. So whatever is returned by the progress function will be collected from all the sessions.

The only case where the TOTAL shows the value for a given session is with feed_overlap set to true.
I appreciate that what you're describing is a very reasonable thing to want. The progress bar semantics are a challenge in multi user scenarios and stream like input sources. We will definitely consider adding more configuration for what TOTAL can mean in different workflows. In the meantime, one "workaround" would be to spin a separate Prodigy server per user.

1 Like

Hello @magdaaniol! Thanks a lot for your reply! I would highly appreciate if there will be some updates in regards to that matter in the future :slight_smile: I'll find a workaround like your suggested one in the meantime!

1 Like