151 lines
4.7 KiB
Markdown
151 lines
4.7 KiB
Markdown
---
|
|
title: Central AI Hub
|
|
type: note
|
|
status: active
|
|
proposed_folder: 200 projects/Tools Software WebUI
|
|
proposed_toc: "100 Table of Contents/Projects.md → Tools & Software"
|
|
proposed_tags:
|
|
- ai
|
|
- project
|
|
- architecture
|
|
- central
|
|
- hub
|
|
- showcase
|
|
confidence: 0.39
|
|
approved: false
|
|
proposed_for: f8a8727c94cb
|
|
created: "2026-10-10"
|
|
tags:
|
|
- project
|
|
- ai
|
|
- hub
|
|
- showcase
|
|
aliases:
|
|
- The Hub
|
|
- central_ai_llm_master
|
|
skills:
|
|
- service design
|
|
- intent routing
|
|
- authorization and approval flows
|
|
- event-driven integration
|
|
tools:
|
|
- OmniRoute
|
|
- Home Assistant
|
|
- Jervis
|
|
- Paperclip
|
|
- Artemis
|
|
- Apprise
|
|
---
|
|
|
|
# Central AI Hub — Overview
|
|
|
|
## 💡 What is this project?
|
|
|
|
One small service that every way in reaches every ability through. The phone app,
|
|
the house voice (Jervis), chat (dsh), and the admin app all talk to the Hub. The
|
|
Hub works out what was asked, checks who asked, sends it to the right place, and
|
|
returns a short reply.
|
|
|
|
It exists to stop the same abilities being built three times. Build once. Every
|
|
way in gets it.
|
|
|
|
The Hub does five steps: **hear → understand → check → route → answer**.
|
|
|
|
It is **not** a central brain. It holds no personality and no memory. It is
|
|
**not** Paperclip — it never waits minutes for an answer.
|
|
|
|
## 🌟 Key Highlights (Portfolio & Employment)
|
|
|
|
- **Concept**: A thin shared router over several AI systems, with one place for
|
|
safety and approval. Not a monolith.
|
|
- **Tools & Skills Showcase**: service design, intent routing with an LLM,
|
|
authorization and tap-to-approve flows, deterministic handling of
|
|
high-consequence actions, integration across MQTT, Home Assistant, Paperclip,
|
|
and a local model gateway.
|
|
- **Practical Value**: One place to add a new ability. One place to control who
|
|
may do what. The house, the phone, and chat all behave the same.
|
|
|
|
## 📐 Architecture & Flow
|
|
|
|
```mermaid
|
|
flowchart LR
|
|
subgraph IN["Ways in"]
|
|
PHONE["Phone app<br/>wake word + voice"]
|
|
ADMIN["Admin app<br/>restricted actions"]
|
|
ESP["ESP32 voice<br/>Hey Jervis"]
|
|
DSH["dsh chat"]
|
|
end
|
|
|
|
HUB{{"HUB<br/>hear - understand - check - route - answer"}}
|
|
|
|
subgraph OUT["Destinations"]
|
|
HA["Home Assistant"]
|
|
SPK["Speakers<br/>Jervis TTS"]
|
|
NET["Internet control"]
|
|
ART["Artemis<br/>phone screen"]
|
|
PC["Paperclip<br/>slow jobs"]
|
|
WEB["Web search"]
|
|
APP["Apprise / NTFY"]
|
|
end
|
|
|
|
PHONE --> HUB
|
|
ESP --> HUB
|
|
DSH --> HUB
|
|
ADMIN --> HUB
|
|
HUB --> HA
|
|
HUB --> SPK
|
|
HUB --> NET
|
|
HUB --> ART
|
|
HUB --> PC
|
|
HUB --> WEB
|
|
HUB --> APP
|
|
PC -. result .-> HUB
|
|
```
|
|
|
|
### The dividing line
|
|
|
|
> Does this need a decision, or does it need to happen?
|
|
|
|
- **Happen** — fast and certain. Go straight to the destination. No LLM in the
|
|
action path.
|
|
- **Decision** — slow, multi-step, worth recording. Send to Paperclip.
|
|
|
|
### How it relates to the other projects
|
|
|
|
Every other project is a **peer**, not a sub-project. Each has its own folder,
|
|
repo, port, interface, and build. Each works without the Hub. The Hub is an
|
|
**extra** way in.
|
|
|
|
- The **Hub asks** a project ("what does Harry have on today?") using one small
|
|
contract, `/ask`. The project answers about its own data.
|
|
- A **project tells** the Hub something ("overdue homework found").
|
|
- **n8n triggers** the project (scan the inbox, scan the school).
|
|
- **High-consequence control** (cut the kids' internet) does **not** go through
|
|
the Hub. The admin app calls the internet control service directly, with
|
|
confirmation on the phone.
|
|
|
|
### Safety
|
|
|
|
- Voice is shared and has no identity. Anyone in the house can speak.
|
|
- The admin app is the only trusted door for restricted actions.
|
|
- A spoken keycode is not the lock. Voice may ask; the admin app confirms with
|
|
"Did you ask for this?".
|
|
|
|
## 🔗 Related Notes & Links
|
|
|
|
- Gitea Repo: https://gitea.lab.audasmedia.com.au/sam/central_ai_llm_master
|
|
- Interactive Map: [Archify Map](https://maps.lab.audasmedia.com.au/central_ai_llm_master/docs/)
|
|
- AI Context (Outline): https://outline.lab.audasmedia.com.au/collection/central-ai-hub-fYfUzsMooS
|
|
- Contract: `/ask` — see `docs/ask-contract.md` in the repo.
|
|
- Local path: `/home/sam/paseo/projects/central_ai_llm_master/`
|
|
- Related: [[Home Voice Assistant System]] · [[Family Home Lab]] · [[Artemis on GrapheneOS Pixel Mobile]] · [[Front Door Cam]]
|
|
|
|
<!--
|
|
NOTES FOR THE AGENT WRITING THIS NOTE
|
|
* `type: note` is intentional — this note is written into the INBOX and the
|
|
obsidian-sorter assigns the real type from its final folder.
|
|
* Keep `skills:` and `tools:` — they are custom fields the sorter preserves.
|
|
* Do NOT add a `type` other than `note`, and do NOT choose a folder.
|
|
* Add the `project` tag so the sorter constrains it to the projects bucket.
|
|
-->
|