Skip to content

All work

Grounded archive assistant

A chat assistant that answers only from the archive

An archive of a creative body of work, with a chat assistant that answers only from the record, cites what it used, and declines what the record cannot support.

How it fits together

  1. Inputs

    • Curated record

      Source material cleaned into structured entries, one per work, held in a content system on Postgres.

    • Visitor question

      Asked in plain language on the public site.

  2. Engine

    Grounded assistant

    A chat service that answers only from the record.

    1. Retrieve

      Pull the entries that bear on the question.

    2. Answer from the record

      The model answers only from what was retrieved and cites it.

    3. Decline the rest

      When the record does not cover a question, it says so instead of guessing.

  3. Outputs

    • Cited answer

      An answer that shows the entries it drew on.

    • Research lanes

      Separate lanes gather and check new material.

Guardrails

  • Limits on what it will answer, written into the build
  • A recorded human decision before any change to an original
  • Answers only from retrieved material

The problem

Archives hold years of material that visitors cannot search by meaning. A general chat model would fill the gaps with confident guesses, which is the wrong behavior for a historical record.

What I built

  • An assistant grounded in a curated record, so each answer traces to a source it can cite.
  • Clear limits on what it will not answer, written into the build instead of left to the model.
  • A multi-lane research workflow that splits the gathering and checking of material into separate lanes.
  • A recorded human decision before any change to an irreplaceable original.

How I built it

Retrieval over a curated record, with a model constrained to answer from the retrieved material and to say so when the record does not cover a question.

What it shows

I put limits on what an assistant is allowed to say, and I make those limits part of the build.