KM0 Bot: thirteen years of a local newspaper, searchable in plain Italian

Thirteen years of PDFs in three different layouts: a valuable archive, but only for people willing to leaf through a hundred issues.
For the 100th issue of KilometroZero I built an assistant that answers in Italian and cites the issue, page and author of every source.
- Every answer with its sources
- Tested on questions with known answers
- Free, for the whole town
How I did it
The hard parts
- Three layouts in thirteen years
- I wrote an extraction step that recognises headlines, columns, boxes and recurring sections, so each article stays whole.
- Two kinds of question
- “When was the church of the Madonna di Juso built?” is about meaning; “What came out in May 2022?” asks for an exact fact. The first needs embeddings, the second needs dedicated tools.
- Trust, in a small town
- Answers are structured: every statement is tied to a specific article.
Three choices and their trade-offs
- Hybrid search, not vector search alone. More parts to maintain, but numbers and dates come from the data, not from a guess.
- Show only the sources actually cited. The list is shorter, but every link backs up a sentence in the answer.
- A screen that guides the first question. One more step, but it helps people ask what the archive can answer.

The bot remembers the conversation and can show the cover of any issue. It is a volunteer project, built for a small newsroom and a town with a lot to tell.











































