Spaces:
Runtime error
Runtime error
Delete SUBMISSION.md
Browse files- SUBMISSION.md +0 -123
SUBMISSION.md
DELETED
|
@@ -1,123 +0,0 @@
|
|
| 1 |
-
# Worcestershire Libraries - Live Assistant · Submission Pack
|
| 2 |
-
|
| 3 |
-
> **Build Small Hackathon · Track: Backyard AI** (with a Thousand Token Wood crossover)
|
| 4 |
-
> One‑line: *The library that "doesn't shout about what it offers" - given a voice that knows everything, built from public data, running on a small model.*
|
| 5 |
-
|
| 6 |
-
---
|
| 7 |
-
|
| 8 |
-
## 1. The fable (open the pitch with this)
|
| 9 |
-
|
| 10 |
-
> Jack is a library resources manager in Worcester. His recurring frustration:
|
| 11 |
-
> **"the library doesn't shout loudly enough about everything it offers."**
|
| 12 |
-
>
|
| 13 |
-
> Everything a resident needs to know *is* public - but it's scattered across 200+
|
| 14 |
-
> council pages, a 1990s‑style catalogue, PDF van timetables and buried FOI logs.
|
| 15 |
-
> So we gave the library one calm, conversational voice that mines all of it **live**,
|
| 16 |
-
> tells you exactly **what you need to sign up**, and - the DCMS‑evidenced part -
|
| 17 |
-
> nudges you toward the services you never knew existed. On a ≤32B model. On a laptop.
|
| 18 |
-
|
| 19 |
-
That's the whole story: **civic data democratisation, small and local.**
|
| 20 |
-
|
| 21 |
-
## 2. What it is (elevator)
|
| 22 |
-
|
| 23 |
-
A Gradio app where you ask in plain English and a small‑model agent answers from
|
| 24 |
-
**live official data + a local knowledge graph**:
|
| 25 |
-
|
| 26 |
-
- Find a book / eBook / audiobook (live **SirsiDynix catalogue**)
|
| 27 |
-
- Branch **"open now?"**, hours, toilets, parking, café (live council pages)
|
| 28 |
-
- **Mobile library** times for any of **154 villages**
|
| 29 |
-
- **What's on** this week
|
| 30 |
-
- **Free online** - newspapers (PressReader), eBooks (BorrowBox), family history (Ancestry) - with *exactly how to access each*
|
| 31 |
-
- **Print Your Way** from your phone
|
| 32 |
-
- **Multi‑hop graph** questions: *"a late‑opening library with a café and meeting rooms"* → Malvern
|
| 33 |
-
|
| 34 |
-
Every answer carries **what you need to sign up**, a **£‑saved value receipt**, one
|
| 35 |
-
**"did you know?" nudge**, a live **source link**, and an open **agent trace**.
|
| 36 |
-
|
| 37 |
-
## 3. Why we win (competitive read)
|
| 38 |
-
|
| 39 |
-
The field is mostly *either* emotional *or* technical *or* genuinely‑used - rarely all
|
| 40 |
-
three, and **none mine live, verifiable real‑world data**. We hit every judging criterion:
|
| 41 |
-
|
| 42 |
-
| Judging criterion | Our evidence |
|
| 43 |
-
|---|---|
|
| 44 |
-
| Problem is specific & real | Jack's own words; a real council with real underused services |
|
| 45 |
-
| The person actually used it | Named beneficiary + real patrons; demo on his branch |
|
| 46 |
-
| Honest small‑model fit | The graph does the reasoning; the 7–32B model just routes + phrases |
|
| 47 |
-
| Polish | Branded UI, streaming, chips, source‑cited every time |
|
| 48 |
-
| (depth nobody else has) | Real **GraphRAG** + live multi‑source mining, not one prompt |
|
| 49 |
-
|
| 50 |
-
Borrowed insight from the field: shareable output wins Community Choice (Lolaby/whimsy
|
| 51 |
-
entries) → our **value‑receipt / hot‑take share‑card** is our shareable hook; strong
|
| 52 |
-
Backyard entries **lead with a face + a quote** → the demo opens on Jack.
|
| 53 |
-
|
| 54 |
-
## 4. Bonus badges we're claiming
|
| 55 |
-
|
| 56 |
-
| Badge | Status | Evidence |
|
| 57 |
-
|---|---|---|
|
| 58 |
-
| **Best Agent** | strong | 10 tools, LLM router + keyword fallback, graph search, visible traces |
|
| 59 |
-
| **Open Trace** | | every turn → `traces.jsonl` (shareable schema); one‑click push to Hub |
|
| 60 |
-
| **Field Notes** | | `IDEAS.md`, this pack, + a short build blog |
|
| 61 |
-
| **Off‑Brand** | ◑ partial | custom Worcestershire‑teal UI (stretch: `gr.Server`) |
|
| 62 |
-
| **Off the Grid** / **Llama Champion** | ◑ optional | runs fully local via llama.cpp (documented); Space default uses HF Inference |
|
| 63 |
-
| **Well‑Tuned** | future | a small fine‑tune is the next badge to grab |
|
| 64 |
-
| Specials | Best Demo · Judges' Wildcard (data democratisation) · Community Choice |
|
| 65 |
-
|
| 66 |
-
## 5. Demo video script (~75s)
|
| 67 |
-
|
| 68 |
-
| t | Shot | Voiceover |
|
| 69 |
-
|---|---|---|
|
| 70 |
-
| 0–8s | Jack on camera (or his quote on screen) | "Jack runs library resources in Worcester. He says the library never shouts about what it offers." |
|
| 71 |
-
| 8–18s | Type *"Is Malvern library open now?"* → /+ facilities | "So we built it a voice. It checks the council site live - open now, toilets, parking." |
|
| 72 |
-
| 18–30s | *"Can I read newspapers for free?"* → PressReader steps + titles | "It knows what's free online - and exactly how to sign up." |
|
| 73 |
-
| 30–45s | *"A late‑opening library with a café and meeting rooms"* → Malvern | "Ask by *features* - that's a knowledge‑graph traversal a chatbot can't do." |
|
| 74 |
-
| 45–58s | Show the £‑saved receipt + a "did you know?" nudge | "Every answer shows what you saved, and surfaces a service you didn't know existed - straight from the DCMS playbook on re‑engaging non‑users." |
|
| 75 |
-
| 58–70s | Expand the agent trace | "And it shows its working - open traces, all from public data, on a small model." |
|
| 76 |
-
| 70–75s | Logo + Space URL | "Your library. Out loud." |
|
| 77 |
-
|
| 78 |
-
## 6. Social post (pick one)
|
| 79 |
-
|
| 80 |
-
**X / Bluesky:**
|
| 81 |
-
> Libraries are full of free stuff nobody knows about. So we gave Worcestershire's a
|
| 82 |
-
> voice: ask it anything, it mines the council site + catalogue **live**, tells you
|
| 83 |
-
> exactly how to sign up, and shows what you just saved - all on a ≤32B model.
|
| 84 |
-
> #BuildSmall [link]
|
| 85 |
-
|
| 86 |
-
**LinkedIn:**
|
| 87 |
-
> For the Build Small Hackathon we built a "Backyard AI" for a friend who manages
|
| 88 |
-
> library resources in Worcester. His problem: the library doesn't shout about
|
| 89 |
-
> everything it offers. Our answer: a small‑model agent over a live knowledge graph
|
| 90 |
-
> of the *whole* service - books, mobile van, events, free newspapers, "what you need
|
| 91 |
-
> to sign up" - grounded in DCMS behaviour‑change research. Public data, public good,
|
| 92 |
-
> running on a laptop. [link]
|
| 93 |
-
|
| 94 |
-
## 7. Tech summary (for the write‑up / Q&A)
|
| 95 |
-
|
| 96 |
-
```
|
| 97 |
-
question → route (LLM JSON + keyword fallback)
|
| 98 |
-
→ 12 live/KB tools ── SirsiDynix catalogue (Atom) down to COPY level
|
| 99 |
-
→ ── all 57 Hive pages, exact offer (provenance‑tagged)
|
| 100 |
-
→ GraphRAG search ── council pages (87 services / 23 branches / 17 resources)
|
| 101 |
-
→ synthesise (≤32B) library_graph.json: 349 nodes · 502 edges · 26 Hive services
|
| 102 |
-
→ answer + eligibility + £‑receipt + EAST nudge + source + open trace
|
| 103 |
-
```
|
| 104 |
-
|
| 105 |
-
- **Inspiration:** microsoft/graphrag, microsoft/markitdown, IBM Docling.
|
| 106 |
-
- **Evidence spine:** DCMS/Ipsos *What works to engage non‑users* (COM‑B) + BIT **EAST**.
|
| 107 |
-
- **Honest constraint fit:** small model + big graph; **no‑LLM fallback** so the demo never breaks.
|
| 108 |
-
- **Sources:** worcestershire.gov.uk + the live catalogue (checked at question time), plus every page of thehiveworcester.org crawled with per‑fact provenance - council wins on conflicts.
|
| 109 |
-
|
| 110 |
-
## 8. Go‑live checklist (for Jack, Friday AM)
|
| 111 |
-
|
| 112 |
-
- [ ] Create Space `build-small-hackathon/wpl-discovery` (Gradio, public).
|
| 113 |
-
- [ ] Push: `app.py`, `library_sources.py`, `graph_rag.py`, `trace.py`,
|
| 114 |
-
`library_kb.json`, `hive_kb.json`, `library_graph.json`, `requirements.txt`, `README.md`, `LICENSE`.
|
| 115 |
-
*(build_kb.py / graph_build.py are build‑time only - optional to include.)*
|
| 116 |
-
- [ ] Add Space secret **`HF_TOKEN`** (read scope) → enables the model. *Without it the
|
| 117 |
-
app still runs in no‑LLM mode, so a missing token won't block Jack's test.*
|
| 118 |
-
- [ ] Optional: set `MODEL_ID=Qwen/Qwen2.5-32B-Instruct` to run at the cap.
|
| 119 |
-
- [ ] Smoke‑test the 6 example chips; confirm a live catalogue hit + a graph multi‑hop.
|
| 120 |
-
- [ ] Send Jack the link + 3 starter questions; capture his reaction for the demo video.
|
| 121 |
-
|
| 122 |
-
**Refresh data any time:** `python build_kb.py && python graph_build.py` (re‑crawls the
|
| 123 |
-
council site and rebuilds the graph - keeps everything current).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|