跳到正文
DEV Community· Yagnik Satani·· 2 小時前AI 評分38

EchoLantern:珍藏回憶的私人小型檔案庫

EchoLantern: A Private Little Archive for Memories

AI 導讀

EchoLantern 是一款以本機為先的回憶珍藏工具,可把用戶筆記整理成可編輯的紀念卡、短文、卡片題詞和提問,並儲存於可搜尋的瀏覽器檔案庫。本機版本透過 Ollama 使用 Gemma 3 1B 生成內容;公開的 Vercel 示範則使用範本,不會執行 Gemma 推理。工具沒有用戶帳戶或託管 AI 端點,但瀏覽器儲存資料未經加密。

正文

A memory doesn't always arrive as a grand story. Sometimes it's a rattling ceiling fan, a pet waiting at the door, a phrase someone always used, or a small ritual that made an ordinary day feel like home. I built EchoLantern to give those details a place to stay.

What I Built

EchoLantern is a local-first keepsake maker for everyday memories, people, places, pets, family stories, and meaningful objects or traditions. A user writes a few rough notes, optionally adds one photo, and creates an editable keepsake card, a short reflective paragraph, a card inscription, and a gentle question for another day. Saved keepsakes live in a searchable archive in the current browser and can be exported as Markdown or JSON.

The app intentionally does not pretend to speak for someone who is gone or contact spirits. It doesn't assume that a person has died. It helps the user shape their own words, and the final copy remains editable. The model is instructed not to invent dates, people, events, favorite things, or exact quotes; generated prose still needs human review.

Demo

Live demo: https://echolantern-ai.vercel.app/

The static deployment shows the interface and browser-based template fallback. It cannot access Ollama running on a user's computer, so it is not a live hosted Gemma demo. The local version runs the Node server alongside Ollama and can generate keepsakes with Gemma 3 1B.

Code

Repository: https://github.com/yagnik-satani-otelier/echolantern-ai

How I Built It

EchoLantern uses Node.js's built-in HTTP server, vanilla JavaScript, CSS, browser localStorage, and the Ollama API. When run locally, the server uses Gemma 3 1B with an explicit JSON schema to return a consistent keepsake structure. When Ollama is missing or the static Vercel route has no local API, the app marks its output as TEMPLATE MODE rather than pretending that it came from the model.

The app has no user account or hosted AI endpoint. In local mode, the notes go to the Ollama service configured on the user's machine. A browser-side photo step compresses an optional image before it is saved with the entry in local storage. The archive can be exported, but browser storage is not encrypted and needs backups.

Why Does Open Innovation Matter?

Memories can be personal in a way ordinary app data isn't. A local model lets a person try AI-assisted writing without sending their notes to a separate hosted writing API, while the prompts, response handling, and storage logic remain inspectable and modifiable. People can switch models or change the rules rather than having their keepsakes depend on a closed service that might change or disappear.

The trade-off is that local inference requires installing a model and using your own machine's resources. Smaller models can get details wrong or add unsupported flourishes. EchoLantern keeps the original note visible, labels the output as a draft, and asks the user to check it. Open weights are not automatically the same as OSI-approved open-source software; model terms should be reviewed separately.

My Agent Session

The current automated suite has 19 passing Node.js tests covering input validation, prompt boundaries, output parsing, template fallback, mocked Ollama integration, and HTTP error/security cases. These tests use a mocked model endpoint and do not establish real Gemma output quality. I also manually verified the deployed Vercel demo: it creates a keepsake, saves it to the browser-based archive, and the entry remains available after refresh. Export behavior was checked as well. The hosted static demo uses template fallback, not local Gemma inference.

I also tested the local Gemma 3 1B path, confirmed locally generated entries are labelled LOCAL AI, and checked saving/reopening and export. I have not conducted a user study, so I make no claim about measured time savings or user outcomes.

The Spirit of It

EchoLantern's promise is intentionally small: keep the story, leave the shadows to the imagination, and let a person choose what deserves another light.

Prize Categories

Best Use of Gemma. The local version runs Gemma 3 1B through Ollama to generate keepsakes from a user's notes. The public Vercel demo is a static fallback demo and does not run Gemma inference.

來源:DEV Community · dev.to