Atomize Factory · Factory Floor

Run three questions through Atomize's pipeline and fix the answers it holds back

Each crate is a sample question about one sentence. Run the line to cut, search and check every question. Then change the recipe below the floor to see which choices make the line hold an answer back, and fix it.

Ready. Run the line or step one tick.
Follow an order

Receiving dock → Cutter → Search → Check sources (teaching rule) → Send out · withheld orders drop to the rework bin

Atomize's full pipeline adds a step this floor skips: after search, a model re-ranks the top 25 to 60 matches. A newer search path, in testing, re-ranks the top 10. A model then writes the answer; the newer path also flags numbers it can't trace. Open "Behind the machines" for the comparison.

BillingReturnsPetsWithheldFollowed

Choose a station or order
Change the recipeHow pieces are cut, searched and sent out. Current: Large (9 words) · Meaning · Cited answer
Wording
Orders from

Changing these restarts the line. Search checks all 3 documents.

Read sources and questions 3 orders
Loading examples…
Piece size

One 9-word piece per sample sentence.

Match by

Higher score = closer vector match.

Loading next-order match…

Atomize searches by meaning and words together; this floor lets you try one at a time.

Send out

Requires the full quote in the top chunk.

How matching scores work

Choosing Meaning or Shared words chooses how scores are computed, not a high or low score. The highest score ranks first; it does not prove the answer.

Meaning (semantic matching) compares the question and each piece as vectors. A model learned text-pattern representations; this example uses frozen 768-dimensional embeddings from the same model. Cosine ranges from -1 to 1 and compares their directions: closer to 1 means more similar directions, 0 means perpendicular, and -1 means opposite directions. Opposite directions do not necessarily mean logical contradiction. There is no universal good-score cutoff or confidence percentage.

Shared words (lexical matching) counts the fraction of distinct eligible question words found in each piece, after common words are excluded. That fraction and cosine use different scales. Do not compare them as accuracy scores.

For example, the Returns question asks about “broken earphones”; its source says “faulty headphones”. Meaning can match related text even when Shared words finds no eligible words in common.

Choices apply when cutting starts.

Preview next recipe and current order
Line settingsWorkers per station and batch size. Simulation ticks, not production latency.
Cutter workers
1
1–3

Sorter workers
1
1–3

Inspectors
1
1–2

Orders per source
1
1–4 · max 12 orders

Workers change concurrency, not evidence. Service ticks: dock 1 · cutter 1 (Large) or 2 (small) · sorter 2 or 3 · inspector 1. Illustrative, not measured.

Behind the machinesHow each station compares with what Atomize really does.
Atomize's pipeline, in order, and where it appears on this floor
Atomize stageWhat Atomize doesOn this floor
CutPieces of about 800 tokens, each overlapping the previous by 100 tokens.Cutter
SearchBy meaning and by words together; the two rankings are combined.Search (meaning or words, one at a time)
Re-rankA model re-orders the top 25 to 60 matches. A newer search path, in testing, re-orders the top 10.Not simulated
WriteA model writes the answer from the top-ranked articles.Send out (copies the source instead)
CheckIn a newer search path, in testing, numbers that can’t be traced to a source are flagged; the check never blocks the answer.Check sources uses a different teaching rule

Stages follow Atomize's current search pipeline in its source code (lib/search/runSearch.ts). The live app may still serve some searches through an older path that searches by meaning first and adds word matches when results are thin.

Each machine on this floor
StationIn Atomize
Receiving dockAtomize runs background work, such as embeddings and summaries, through BullMQ queues stored in Redis. Here every question waits in one simple queue.
CutterAtomize cuts articles into pieces of about 800 tokens (a token is roughly three-quarters of a word), each overlapping the previous piece by 100 tokens.
SearchAtomize searches by meaning and by words together and combines the two rankings. A model then re-ranks the top 25 to 60 matches; a newer search path, in testing, re-ranks the top 10. This floor skips re-ranking. The vectors here were prepared ahead of time.
Check sources (teaching rule)Atomize doesn’t use this rule. It has a model write the answer from the top-ranked articles. A newer search path, in testing, also flags numbers it can’t trace, and that check never blocks the answer.
Send outThe response returned to the reader. In Atomize a model writes the answer; here the answer is copied from the source.
Rework binA retry with changed settings, not a dead-letter queue.

Long-running workers run on Railway in Atomize; nothing here contacts Railway, Redis or BullMQ. A finished-answer application cache is separate from a model's KV cache, which holds attention state during generation and may be reused across requests when serving supports prefix caching. Neither cache is simulated.

Spatial placement is illustrative. Rankings are computed in the original 768-dimensional vector space, and no camera or view change touches them.

Demo model: nomic-embed-text, 768 dimensions (this Factory Floor, the Precision Cell and the Sentence Machine). The full lab's Evidence Workshop uses all-MiniLM-L6-v2, 384 dimensions. Atomize production uses OpenAI text-embedding-3-small, 1536 dimensions.

Run the line to load the frozen example and its model digest.