1. 01Queue synthetic notes
  2. 02Summarise locally
  3. 03Validate the response
  4. 04Review and store
Workflow sketch. Implementation choices and evaluation boundaries are explained below.

Define a useful summary

A good operational summary preserves facts, owners, deadlines, and uncertainty. It should distinguish a proposed action from an approved one. Begin with short notes from a repeatable meeting or handover, then define the expected output before selecting a model.

The Local Notes Assistant returns a summary and a list of actions. It rejects unexpected fields and invalid types. Its sample notes are synthetic, including an explicit statement that no equipment purchase was approved.

Run the model-free path first

Download the Local Notes Assistant source and extract it into a new directory. Run from the extracted root:

python3 -m labs.local_notes.main --fixture

Fixture mode uses a labelled canned response. It checks the program path, output handling, and packaging without claiming model quality or inference speed. The elapsed time printed in this mode is application overhead, not a model benchmark.

Connect to local inference

Install and start Ollama using its platform instructions. Pull the model, then run the same program without the fixture flag:

ollama pull qwen3:4b
python3 -m labs.local_notes.main --output runs/notes-result.json

The Python helper calls the loopback endpoint with bounded context, output length, timeout, and JSON mode. It marks the supplied notes as data rather than instructions. A structured response still needs content review: schema validity cannot prove that a deadline or owner is supported.

Add a recoverable batch boundary

For repeated files, keep a manifest containing input checksum, model revision, prompt version, status, and output location. Process one record at a time initially. Write validated results to a staging area and mark the record complete only after the write succeeds.

Use a bounded retry policy for temporary connection failures. Do not endlessly retry a malformed response or oversized input. Quarantine those records with a useful reason. Re-running a batch should skip completed inputs unless the model or prompt version has intentionally changed.

A batch loop can invoke the module for each approved file. Keep business input selection outside the model; do not let a generated response choose arbitrary filesystem paths or discover documents on its own.

Review the content that matters

Build a small evaluation set with missing owners, tentative dates, conflicting statements, and text that asks the model to ignore its instructions. Check whether summaries preserve negative facts such as “not approved.” Count invented commitments as failures, even when the prose reads well.

Keep a human review step before distributing summaries or creating tasks. The review-agent lab demonstrates a persisted pause and a local outbox. The notes assistant itself never sends a message or updates a work-management system.

Measure the batch operation

Record accepted results, rejected results, warm latency, model-loading overhead, and review time. Include the cost of keeping the workstation available and resolving failures. Scheduling a predictable batch may be easier to operate than an always-on interactive service for the same workload.

The lab page records which modes were tested. Do not infer Ollama performance from the separate MLX adaptation experiment: those use different models, runtimes, and tasks.

References

Put the process first

How would this fit your operation?

Tell us how the work gets done today and what a useful improvement would look like.

Discuss a workflow ↗