Concepts¶
A solvi task has two ingredients:
- a catalog of Python functions: computations, checks, extractors and answer rules;
- a list of questions with typed answers: yes/no, a choice from a fixed list, several options, an ordered score, and the answer primitives ("not stated", a span of the text, a ranking, a number range, evidence quotes).
A request is a plain dict called init_state (for example {"doc": text, "today": date(...)}). Each key and each catalog
function's output is a fact. For every request, the strategist picks from the catalog only the parts needed for
the asked questions and orders them into a flow. Execution produces the computed state (every fact with its origin, and
a quote for extracted values) and a hash-chained trace. Each question gets an answer, a confidence, a reason and a
status.