Skip to main content

One call

A rule is one sentence about things, places or moments, up to 500 characters: “receipts from restaurants”, “concert tickets”, “recipes with chicken”. The answer is every capture the grant covers that is likely to belong, most likely first. threshold defaults to 0.5 and limit to 100.

How a capture is scored

Stage one runs on the device, always. PoolKit compares each image with the rule, using the same matcher that sorts captures into pools in the Pool app, and adds what it read: matching text, labels and named things. Nothing leaves the phone. Stage two is cloud assist, and it is optional. It runs only when your configuration and the grant both allow cloud assist. PoolKit then sends the captures it is unsure about, those with a probability between 0.3 and 0.8, to Pool’s judge.
  • At most 48 captures per call, the most uncertain first.
  • For each one: the text PoolKit read, its labels and the names of things on it, under a reference made up for the request. Never an image, never a photo identifier.
  • A verdict replaces the on-device probability and the member is marked .cloud. When the judge cannot tell from the text, the on-device result stands.
  • When the judge asks to wait, the on-device result stands and cloudRetryAfter says when to try again.
Four captures judged count as one unit. See the Service API.

Keep a rule live

The first update is the current set. A new one arrives when indexing changes who belongs. A capture goes to the judge at most once per stream. This call needs the observe operation. To be told about each new match as an event, use Signals.

Probabilities

On-device probabilities are fitted to the cloud judge’s verdicts, so a capture at 0.7 is one the judge would call a member about 7 times in 10. The fit was made on a small test library (344 judged captures over 8 rules), so read values between 0.2 and 0.8 as approximate, and pick your threshold on your own content. Words alone are weak evidence. Without the image model, a capture that holds every word of the rule scores about 0.35, under the default threshold of 0.5. If you classify before the models are installed, lower the threshold or allow cloud assist. With cloud assist, captures between 0.3 and 0.8 go to the judge, and a .cloud member carries the judge’s own probability.

Rules PoolKit refuses

Rules about things pass: “race cars” and “face cream” are fine. Captures that Pool marks as sensitive are never scored, whatever the rule says.