ThinkThen

score options

The command takes QUESTION or @FILE, then LEVEL.... Start with its value and exit code.

OptionWhat it does
--input FILEReads the evidence from a file instead of standard input.
--planPrints the plan and sends nothing. It needs no key.
--lines, --jsonl, --csv, --tsvSays how a stream of records is framed. Pick at most one.
--field POINTERNames the part of each record to judge, as a JSON Pointer. It may repeat.
--jobs NHow many requests run at once, from 1 to 32. The default is 4. It works on a stream of records, annotate on one document, and relate on one entity set.
--model NAMEThe model the request carries. Name a version to pin a run. The default is jev-1.13.0.
--url BASEThe server's base address. It outranks THINKTHEN_BASE_URL.
--timeout SECONDSHow long one attempt may take. The default is 30.
--max-retries NHow many times a retried status is sent again. A transport failure is never sent again. The default is 3.
--record DIRCalls the backend and saves each exchange in DIR.
--replay DIRAnswers from DIR alone, with no key and no network.
--cache DIRAnswers from DIR when it can and saves new exchanges there.
--no-cacheTurns off the answer cache for one run.
--profile FILEApplies local backend limits and names the calibration profile in use.

More examples

The address change lands near 0, the Friday deadline near 1, and the login outage at 2.
question="How urgent is this?"
levels=(
  "Routine."
  "Soon."
  "Immediate."
)

cat <<'EOF' |
Please update my mailing address when you can.
Can you send the signed contract by Friday?
Nobody can log in to the site right now.
EOF
thinkthen score "$question" "${levels[@]}" \
  --batch 1 --lines |
jq .
Output
{
  "input": "Please update my mailing address when you can.",
  "value": 0.06
}
{
  "input": "Can you send the signed contract by Friday?",
  "value": 0.99
}
{
  "input": "Nobody can log in to the site right now.",
  "value": 2.0
}
exit 0