The rules the AI answers to are code, not a prompt
Talli uses language models to read documents and to answer questions about a pet's own records.
Every claim on this page is about what stops them, because that is the part a veterinarian should care about, and it is the part that is enforced in code rather than requested in a prompt.
Why a prompt is not a guarantee
The doctrine is written in the source: a prompt is a request, and a model may ignore it.
That is not a theoretical worry. It was measured on our own test pages on 2026-09-01, on deliberately degraded photographs of veterinary laboratory reports with known correct values. A vision model was told to write a placeholder rather than guess when a character was not legible. On the worst image it returned 32 fully populated analyte rows, 30 of them wrong, and used the placeholder zero times. The refusal instruction was ignored at every degradation level.
- 32 analyte rows
fully populated analyte rows returned from the worst image, all of them well formed
- 30 rows wrong
of those rows wrong, and not one of them malformed
- zero times
times the model wrote the placeholder it was instructed to write instead of guessing
Worse, and this is the finding that shaped the product: none of the wrong values were malformed. Every one was a well formed, plausible medical number. And when the same page was re-read asking only for a transcription, 16 of the 19 reference intervals it printed were invented, and the invented ones were the standard human reference ranges rather than the ones on the page. The model stopped reading and started recalling.
A reference interval is what decides whether a result is flagged high or low. A correct value against an invented interval produces a wrong reading of the result, and it looks entirely normal on a review screen.
So the guardrails below are mechanical. They do not ask the model to behave.
An answer with no citation is discarded, not shown
When you ask about a pet, the app retrieves that pet's own rows, numbers them, and asks the model one question about that numbered list. Every sentence that draws on a record has to end with that record's number.
An answer that cites nothing is discarded and never reaches you, however plausible it reads. A citation number that is not on the list is deleted from the text before anything is rendered, because an invented citation is the exact thing the check exists to catch.
A model that wants to answer from general knowledge has nothing to cite.
"The record does not say" is a real answer
When the records do not answer the question, the model is required to say so and to name what is missing, and that answer is returned as a normal answer rather than as a failure. An empty record is not a reason to improvise.
Some questions are refused before a model is ever called
A question that asks for a diagnosis, a prognosis or a prescription is matched and refused before the provider is contacted at all. The refusal is plain about what it is: it cannot diagnose, prescribe or tell you what is wrong, and it can show you what is in the record and help you take it to a veterinarian.
Beyond that, the assistant does not interpret findings, does not assess severity, risk or urgency, and does not decide whether a value is normal or abnormal. Only a flag printed in the record says that, and it is reported as the laboratory's flag. Where a veterinarian or a laboratory has written an assessment, it may be quoted and attributed. The words are theirs.
A fact that does not quote the document is dropped, not downgraded
When a document is read, each fact has to quote the page it came from, and the value has to appear inside its own quote. The comparison collapses whitespace and does nothing else: no case folding, no fuzzy matching, because those would let a paraphrase pass, and a paraphrase is precisely what the check is for.
A fact that fails is discarded. There is no confidence at which an unquotable fact becomes filable, so lowering its score would only be a softer way of keeping it.
"Mentioned" is not "administered"
A document says several kinds of thing about a treatment, and only some of them are evidence that it happened. A due date is not a record of anything that happened. A billing line is not evidence that a treatment was given. Something declined was never given. Something mentioned is not the same as something the practice recorded as done. Only facts in the right modality can create a clinical row.
A reading the animal could not have produced is held
A weight, or a temperature, is checked against the animal's own physiology and against the nearest reading on its own chart before it is written. If it fails, the row is not written, the chart is not touched, and the reading is reported with the bound it failed so a person can settle it. It is never dropped, never written at a lower confidence, and never corrected for you.
The limit of that check is stated rather than glossed: weight and temperature have bounds today, and other kinds do not yet.
Nothing read by a machine eye is applied on its own
Anything that came from optical character recognition goes to review unconditionally, at any confidence score. That is a rule about where the text came from, not a threshold, and it must not become one.
The reason is in the measurement: on degraded veterinary pages the confidence of correct reads and the confidence of incorrect reads formed two heavily overlapping distributions, so no cut-off exists that keeps the good numbers and drops the bad ones.
And optical character recognition does not fail the way a parser fails. It substitutes one plausible character for another and hands back a well formed wrong number. A body weight of 31 kg read as 11 kg validates, matches the type, carries a respectable score, and is a 20 kg lie in a medical record.
Personal details are removed before every call, with no opt-out
A veterinary record routinely carries the owner's name, home address and telephone number, and none of that is a clinical fact about the animal. Before any text is sent to a model, emails, telephone numbers, street addresses, owner names, card-shaped numbers and social-security-shaped numbers are replaced with placeholders.
The replacement map never leaves the process. It is never logged, never stored and never part of an error.
Only telephone numbers, emails and addresses are put back afterwards, so a clinic's number still lands in the clinic's field. An owner's name is never put back, because a person's name is not a clinical fact and has no field to land in.
Card-shaped and social-security-shaped numbers are deleted outright rather than restored.
Pet names, clinic and veterinarian names, drug names, laboratory values, units and dates are deliberately untouched, because a document whose animal was redacted cannot be filed against that animal.
The only thing that leaves the process is a count of how many placeholders were written.
There is no setting that turns this off.
It runs with no AI key at all
Talli runs with no API key. Classification and extraction both have deterministic implementations, and the pipeline reaches the same tables either way. Only the confidence differs, so more documents wait for one tap.
The assistant in that mode does not invent an answer either. With no provider configured it refuses and says so, and still lists the records it found.
There is also an alarm for the quiet failure: when a provider is configured and a row was still written by the deterministic extractors, that is counted and surfaced rather than passing as a normal result.
The number we will not print, and the one we will
There is no accuracy percentage for the AI path on this site, and there will not be one. The only committed measurement run of the corpus was made with no provider configured, so any percentage would be an invention.
547 numeric tokensnumeric tokens recovered from a real three-page veterinary record, the same 547 the reference tool recovered
The one measured number worth printing is not about AI at all. The PDF text-layer decoder was checked against a reference tool on a real three-page veterinary record: 547 numeric tokens recovered, the same 547 the reference tool recovered, none missing and none invented, with no new dependency.
That is a statement about copying text out of a PDF, and nothing more.
What the assistant is not, stated plainly
It does not examine your pet, and it will not diagnose or prescribe.
It does not read your images, and it does not annotate them. Nothing writes an AI annotation on an imaging study.
It does not search across your documents. Embeddings are written and never queried, so there is no semantic search here to claim.
It does not remember your previous questions. Each question is answered on its own, and earlier turns are not passed to the model.
Its retrieval is not question-aware yet. It gathers up to 8 rows of each kind and up to 24 laboratory rows, and the model answers from that sheet.
Anything it produces is labelled an observation, never a diagnosis, everywhere it appears.
Common questions
Which model does Talli use?
It is configurable rather than fixed, and the layer is provider-agnostic, so the same rules apply whichever provider is configured. Answers are also capped in length, and both the assistant and document reading spend from the same daily ceiling.
Does my pet's record train anybody's model?
Talli sends redacted text to a provider to answer one question or to read one document, and nothing else. What is sent is described above, and the replacement map never leaves the process. What a given provider does under its own terms is that provider's contract, and this site will not summarise it for them.
Why does it refuse a question I think is reasonable?
The refusal patterns are deliberately blunt, and they run before any model is called. A question phrased as "what is wrong with him" is refused for the same reason a question about dosing is: the answer would be a diagnosis, and this product does not produce one.
Is an observation ever a diagnosis?
No. Every observation is generated from your own records, lists the records it was read from, and carries the same sentence: it is not a diagnosis, and anything that concerns you is a conversation with your veterinarian.
Read next
Talli is not open yet
Leave an address and we will write to you once it is. That is the only thing this address is used for.
Coming soon on iPhone and Android.
Both apps are built. Neither is on a store yet, and there is no date to give you.