Can Prodigy give users dynamic annotation options based on custom function?

Hi! Detailed answers below โ€“ but the short summary is, yes, both of these things should work :slightly_smiling_face:

While you typically define the full label set once via the "config" returned by the recipe, you can also override them on a per-task basis. The same question actually came up the other day and I shared an example here:

So depending on the example, you'd just add "config": {"labels": [...]} to the outgoing task dictionary. If no overrides are provided, the default labels are used as a fallback.

Yes, you can use the blocks UI to combine multiple interfaces. Here's an example of a custom interface consisting of ner_manual and choice (multiple choice, e.g. for text classification): Custom Interfaces ยท Prodigy ยท An annotation tool for AI, Machine Learning & NLP

In the dictionary you send out, you would then include the "text", "tokens" and "spans", as well as the "options" that can be rendered by the choice block.