Skip to content

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.