hi @lolobalolo!
Thanks for your question and welcome to the Prodigy community
Yes, typically the best way is to run Prodigy on a remote server that then serves up the UI for annotations via browser to annotators.
When you first start Prodigy, it'll run by default on your local system (host). If you're running it within say a firewalled company network, you can open it up to other machines within your network typically by modifying Prodigy configuration "host": "localhost"
to "host": "0.0.0.0"
:
Then, typically you would provide the name of the host server (say "my_remote_server") along with the port number to the annotators to open in a browser: my_remote_server:8080
. (By default, Prodigy will use port 8080 as default but you can change it through environment variables or Prodigy's configuration).
Things start to get more tricky if you need to open your annotations outside of a local network and to internet as a whole as I mentioned in this related post:
Annotators (labelers) typically only access Prodigy's UI via Browser and would not need to set up Python locally. This is different than developers who are individuals who would interact with Prodigy directly (e.g., start a new process, change Python code).
As an aside, one important point regarding Prodigy licenses that is sometimes confused:
Prodigy's licenses are issued on a developer ("seat") basis (i.e., who can access Prodigy as a developer/directly with the Python library). For example for an individual license, you would have one developer who has access to Prodigy directly (e.g., the remote server), but then he/she can have unlimited annotators and unlimited installations of Prodigy (on-premise, cloud, etc.). Same goes for company licenses, except they are sold in packs of five developer "seats", but these are issued to the company, not an individual person. Also, company licenses are transferable within a company while individual licenses are non-transferrable (i.e., whoever is listed on the license is only one who can access/modify Prodigy directly).
If you have questions on licensing/roles, I recommend searching on Support by "licenses" and you'll find 100+ posts like:
Once you get that setup running, out-of-the-box, Prodigy offers named multi-user sessions which provide a great way to track annotators by enabling them to "name" their unique session. This allows you to know who is labeling what. Be sure to read those docs to also understand feed_overlap
setting which if True
will determine if everyone sees all of the same annotations (aka overlapping annotations) or False
(or non-overlapping annotations) where the annotations are distributed across sessions on a "first-come, first-serve".
Similarly, there are many posts regarding multi-user sessions setups by the multi-user
tag.
Hope this helps!