The Last Remembering:以離線 AI 保存家庭故事與真實回憶
🕯️ The Last Remembering: A Living Altar for Family Stories & Authentic Memories
The Last Remembering 是一款以開放權重 AI 建構的開源離線工具,讓家庭保存口述歷史、食譜和回憶,避免雲端依賴及冒充逝者。系統在本機以 Whisper 轉錄錄音,並用 Google Gemma 提取有逐字引句佐證的事實;用戶須審核後才可儲存。資料可匯出為 .ofrenda 檔案,並透過 SQLite 保存在本機。
Hacktoberfest Open-Source AI Challenge: Ghost in the Machine Submission 👻🌼
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine
What I Built
Families lose oral histories, favorite recipes, and cherished memories across generations:
- Vanishing Stories: Unwritten recipes, family songs, and favorite sayings slip away once an elder passes.
- The Cloud Privacy Barrier: Uploading intimate voice recordings and family photos to commercial clouds exposes private family history to corporate AI training and data brokers.
- The "Digital Séance" Trap: Commercial chatbots try to impersonate deceased relatives—generating creepy synthetic avatars that hallucinate things a loved one never said.
- Ephemeral Platforms: Proprietary memorial apps shut down, deprecate APIs, or lock family memories behind monthly paywalls.
The Solution: The Last Remembering 🕯️
Inspired by Día de los Muertos, The Last Remembering is an open-source, private, 100% offline virtual ofrenda and oral history keeper built on open-weight AI.
- Virtual Ofrenda & Living Glow Engine: A 3-tiered altar where each loved one has a framed portrait, Pan de Muerto offerings, and a Veladora candle. The candle burns brighter (from Nearly dark to Burning bright) as you add memories, and dims over time to gently prompt you to revisit their stories.
- Local Whisper Voice Capture: Record stories straight from the browser microphone. Spoken audio is transcribed locally on your CPU—zero audio bytes leave your computer.
- Verifiable Fact Extraction: Powered by Google's open-weight Gemma, the system extracts mentioned foods, songs, sayings, and places, backing each detail with an exact verbatim quote from the story so it never hallucinates.
- Hard Human-in-the-Loop Gate: Transcripts and suggested facts are never saved automatically. You review quotes and check off what you want preserved.
- Grounded Retrieval (Never Impersonation): Ask questions like "What did Abuelo sing in the truck?" Answers are built strictly from saved stories, cite exact source memories with clickable links, and speak in the third person. If nothing exists, it plainly answers: "I don't have a memory of that yet."
-
Durable
.ofrendaPortable Archive: The entire database and photos export into a portable.ofrendafile that lives on a USB drive with no cloud dependencies.
Demo
- Live Deployment: https://the-last-remembering-frontend.onrender.com/
- Live API & Docs: https://the-last-remembering-api.onrender.com/docs
- Local Run: Follow the Quick Start steps below to run locally with Ollama in under two minutes with Wi-Fi off.
Workflow
- Select an ancestor (e.g., Abuela Lupita) or add a new person to the altar.
- Record a story via browser mic or type it in.
- Review Whisper's local transcript and click Extract Facts.
- Check off verified facts backed by verbatim quotes.
- Click Save Memory—watch their Veladora candle brighten on the 3-tier altar.
- Ask a question in the Ask tab and get an answer with clickable source citations.
Code
Check out the complete repository on GitHub:
🔗 GitHub Repository: Uxie7/the-last-remembering
How I Built It
The Last Remembering is built around an open-weight, local-first architecture running entirely on consumer hardware with zero cloud AI dependencies.
flowchart TB
subgraph LocalMachine ["User Laptop (100% Local Inference)"]
UI["Frontend: Next.js / Tailwind CSS / Ofrenda Altar"]
API["FastAPI Backend (src/api.py)"]
subgraph LocalOllama ["Local Ollama Runtime (localhost:11434)"]
GEMMA["Google Gemma (Open-Weight LLM)"]
NOMIC["nomic-embed-text (Open-Weight 768d Embeddings)"]
end
subgraph Pipeline ["Memory Pipeline"]
WHISPER["faster-whisper (Local CPU STT)"]
EXTRACT["Gemma Fact Extractor & Verbatim Quote Matcher"]
GLOW["Glow Decay Engine (Pure Domain)"]
RETR["Grounded Retrieval & Refusal Rules"]
end
DB[("Local SQLite + sqlite-vec")]
STORAGE[("data/audio, data/photos")]
end
UI <--> API
API <--> LocalOllama
API --> Pipeline
Pipeline --> DB
Pipeline --> STORAGEThe Open Model Stack
- Language Model (Google Gemma via Ollama): Runs locally on CPU/GPU. Handles strict JSON fact extraction with verbatim quote matching and grounded question answering with citations.
- Speech-to-Text (faster-whisper): Transcribes spoken family recordings locally on CPU with int8 quantization.
- Embedding Model (nomic-embed-text via Ollama): 768-dimension local embeddings for semantic vector search across family stories.
- Database & Vector Search (SQLite + sqlite-vec): Plain local database storing profiles, stories, facts, and embeddings in one file.
- Frontend: Next.js (App Router), Tailwind CSS, Veladora flame animations, and bilingual (English / Español) toggle.
- Test Suite: 44 automated tests validating glow decay math, quote verification, CORS isolation, and end-to-end memory lifecycles.
Why Does Open Innovation Matter?
Open innovation is what made The Last Remembering possible:
-
True Family Privacy: Personal voices, photos, and family heirlooms never leave your laptop. Open-weight models running on
localhosteliminate cloud data leakage by design. - Zero Running Costs: Preserving family history costs exactly $0. Running Gemma and Whisper locally requires no API keys or token subscriptions.
- Works with the Internet Off: Once models are downloaded, the app runs completely offline. You can record memories at a family gathering with no Wi-Fi.
- Permanence Over Corporate Lifecycles: Commercial memorial apps shut down or change pricing. Plain SQLite files and open-weight models ensure your family archive opens decades from now.
- Respectful Grounding: Open-weight models allow strict architectural constraints: verbatim quote checks, source citations, and clear refusal rules ("I don't have a memory of that yet").
My Agent Session
This project was architected, implemented, and verified using paired AI agent workflows tracked with DevRelay:
Prize Categories
- Hacktoberfest Week 4 Theme: Ghost in the Machine: Built directly for the theme—a local oral history tool and virtual ofrenda that keeps family memories alive without synthetic impersonation.
- Best Use of Gemma: Google's open-weight Gemma runs locally for zero-hallucination verbatim quote extraction and grounded Q&A with citations.
-
Best Use of Render: Deployment-ready Blueprint (
render.yaml) orchestrating both the FastAPI backend and Next.js frontend with automated health checks. - Best Use of DevRelay: Full agent pair-programming lifecycle, architectural planning, and 44-test verification recorded with DevRelay.
來源:DEV Community · dev.to



