Documentation menu

Guides

Choosing a model

Swift, Summit and Compass compared: what each is for, what it costs, how auto chooses and how to choose yourself.

In short: leave model on auto and Northdoc picks Swift or Summit by how much the document holds. Choose one yourself when cost or accuracy matters more.

Model Best for Reads up to US$ per 1M tokens

Swift

model: "swift"

northdoc-swift-1

Everyday documents: invoices, letters, forms, reports. Fast and economical, and what auto picks for most documents. 180k tokens $2.75 in · $13.75 out

Summit

model: "summit"

northdoc-summit-1

Long or dense documents where accuracy matters most: contracts, financial statements, technical reports. 900k tokens $8.25 in · $41.25 out

Compass

embeddings: true

northdoc-compass-1

Embeddings for search: one vector of 1024, 512 or 256 numbers per page. Not a reading model. One vector a page $0.10

How auto chooses

  • After the pages are read, Northdoc measures how much the model will have to read: the text (about one token per four characters) plus the pictures.
  • Up to about 150k tokens (roughly 250 pages of dense text) it uses Swift.
  • Above that, up to 900k tokens, it uses Summit. Bigger than that is refused with document_too_large: split the document.
  • It goes by size, not difficulty. A short but dense contract goes to Swift unless you choose Summit.

Choosing one yourself

Set model on the document to use it for the extraction and every question asked during ingest, and on a question to use it for that answer. It only matters when the model runs, so send it with an extraction or queries. model.used on the response says which one ran.

terminal
# Summit for a dense contract
curl -X POST "$NORTHDOC_API/documents" \
  -H "Authorization: Bearer $NORTHDOC_KEY" \
  -F file=@contract.pdf \
  -F 'options={"model": "summit", "extraction": {"fields": ["parties", "dates", "amounts"]}}'

# Swift for one quick question about a document auto would give to Summit
curl -X POST "$NORTHDOC_API/documents/$DOC_ID/queries" \
  -H "Authorization: Bearer $NORTHDOC_KEY" \
  -H "Content-Type: application/json" \
  -d '{"question": "What is the settlement date?", "model": "swift"}'
  • Choose Summit when accuracy on hard documents matters most: legal and financial documents, long reasoning, subtle wording. It costs about three times as much as Swift.
  • Choose Swift to keep costs down on everyday documents. A document too long for it (over 180k tokens) is refused with a message suggesting summit or auto.

Always up to date

Swift and Summit are kept current. When a better model becomes available, Northdoc moves the name to it, so you get the improvement without changing a line of code: the option values, the endpoints and the response shape stay the same. The version at the end of model.used moves with it (northdoc-swift-1 becomes northdoc-swift-2), so every result says exactly which model produced it.

Compass is the exception. Vectors from two embedding models cannot be compared, so a silent change would quietly break a search index. Compass changes only with notice, and its version in embedding.model tells you which vectors to re-embed.