project-nomad/admin/app/models
John Cortright 9fde7f7747 feat: show source document and date as citations under RAG chat answers
Closes #1179.

Surfaces the documents an answer was drawn from as a "Sources" list under the
assistant message, with the archive date where one is known, and persists it so
reopening a past conversation still shows what backed each answer.

Offline there is no second opinion to check an answer against, so provenance is
the only signal the user has that a claim came from a real document rather than
from the model. This is the other half of retrieval being allowed to decline:
one says when nothing relevant was found, this says what was found.

Citations are built from the chunks actually injected into the prompt, not from
everything retrieval returned. A chunk dropped by the budget planner never
reached the model, so citing it would credit the answer to a document it was
not based on -- the exact failure the list exists to prevent.

The archive title and date have been written into the vector payload by the ZIM
ingestion path all along and were simply never read back, so this works on
already-embedded content with no re-embed.

Rebased onto the RagPipelineService refactor, which landed after this was
written: the citation list now comes off the pipeline trace rather than the
inline retrieval block that used to live in the controller. Entries with
neither a path nor a title are skipped rather than shown as "Unknown source" --
a row the user cannot act on makes an answer look sourced when it is not.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01F8Mgg1vd2eKSs8StZiuyMV
2026-09-29 15:54:41 -07:00
..
benchmark_result.ts feat(benchmark): official multi-arch sysbench, resolved digest, platform metadata (#1158) 2026-08-04 03:39:53 +00:00
benchmark_setting.ts feat: Add system benchmark feature with NOMAD Score 2026-01-22 21:48:12 -08:00
chat_message.ts feat: show source document and date as citations under RAG chat answers 2026-09-29 15:54:41 -07:00
chat_session.ts feat: [wip] native AI chat interface 2026-01-31 20:39:49 -08:00
collection_manifest.ts feat: curated content system overhaul 2026-02-11 15:44:46 -08:00
custom_library_source.ts feat(Content): custom ZIM library sources with pre-seeded mirrors (#593) 2026-05-20 10:16:00 -07:00
drug_label.ts Add offline FDA drug reference (labels, interaction view, conditions, remedies) (#1040) 2026-08-04 03:38:33 +00:00
installed_resource.ts Add offline FDA drug reference (labels, interaction view, conditions, remedies) (#1040) 2026-08-04 03:38:33 +00:00
kb_ingest_state.ts feat(rag): add subject/collection organization to knowledge base (#1063) 2026-08-04 03:37:42 +00:00
kb_ratio_registry.ts fix(KB): stop partial_stall warning firing on atypical ZIMs (link-out/PDF-heavy) 2026-06-23 04:46:54 +00:00
kv_store.ts feat(AI Assistant): custom name option for AI Assistant 2026-03-04 20:05:14 -08:00
map_marker.ts feat(maps): add scale bar and location markers (#636) 2026-04-03 14:26:50 -07:00
service.ts feat: replace legacy Kolibri image default with latest v19 image (#1019) 2026-06-23 04:47:07 +00:00
wikipedia_selection.ts feat: Add dedicated Wikipedia Selector with smart package management 2026-01-31 21:00:51 -08:00