DEV Community

Cover image for MemoryWeaver
AdK819
AdK819

Posted on

MemoryWeaver

This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend

What I Built

I built MemoryWeaver — an empathetic digital chronicle that turns casual voice context and quick written notes into polished, structured story chapters.
I built this specifically for my family and close friends who love sharing nostalgic stories, old memories, and trip highlights, but always end up losing them across fragmented WhatsApp chats, forgotten audio notes, or unorganized camera rolls.
MemoryWeaver introduces Multi-Book Workspaces, allowing loved ones to keep distinct emotional spaces separate:

  • Family Heritage Vault: For preserving ancestral anecdotes, oral family history, and classic stories from elders.

- Friends Trip Anthology: For capturing inside jokes, travel chronicles, and weekend adventures with close friends.

Demo

  • GitHub Repository: https://github.com/AdK819/MemoryWeaver
  • Live Interface Preview: MemoryWeaver App UI Caption: MemoryWeaver vintage scrapbook interface displaying a generated memory chapter inside the Family Heritage Vault. --- ## Code

    📖 MemoryWeaver — AI-Powered Scrapbook Chronicle

    Turn unstructured family notes and spoken memories into beautifully woven story chapters.

    MemoryWeaver is an AI-powered multi-book chronicle that bridges generational memories into timeless heirloom chapters. Built with Streamlit, open-weight LLMs (llama-3.3-70b-versatile via Groq), and DevRelay agent session tracking.

    MemoryWeaver Scrapbook


    ✨ Features

    • Multi-Book Workspaces: Keep sensitive family history separate from casual trip memories (e.g. Family Heritage Vault, Friends Trip Anthology).
    • Scrapbook Desk Aesthetic: Designed to feel like a wooden desk with a kraft paper pinboard, lined notebook paper, and grid paper notes.
    • Open-Weights AI: Powered by llama-3.3-70b-versatile for empathetic, poetic chapter weaving.
    • End-User First: Zero technical clutter or API key inputs exposed to end users.
    • DevRelay Integration: Full agent session logging with embedded Liquid tags for DEV publishing.

    🚀 Quickstart

    1. Clone the repository:

      git clone https://github.com/AdK819/MemoryW.git
      cd MemoryW
      Enter fullscreen mode Exit fullscreen mode
    2. Install dependencies:

      pip install -r requirements.txt
      Enter fullscreen mode Exit fullscreen mode
    3. Set your Groq…


    Agent Session

    MemoryWeaver — Building an AI Family Chronicle with Groq + Streamlit
    You

    Build and launch a complete Streamlit MVP for MemoryWeaver — an AI-powered multi-book family and friendship chronicle. Requirements: Groq API (llama-3.3-70b-versatile), structured JSON output with chapter_title, formatted_story, extracted_tags. Multi-Book Workspaces: Family Heritage Vault and Friends Trip Anthology. Integrate DevRelay session logging so the build can be published to DEV.

    Agent

    Read devrelay-community-wisdom skill. Searched DEV community for Streamlit + Groq best practices. Consensus: use response_format={'type': 'json_object'} directly on Groq SDK, wrap in try/except for JSONDecodeError, use st.session_state for persistence.

    You

    Modify with DevRelay integration — I want a sidebar DevRelay panel, session export to DEV, and the session Liquid tag output.

    Agent

    Read devrelay-sessions SKILL.md and devrelay-publishing SKILL.md. Confirmed DevRelay CLI v0.1.17 is installed. Updated app.py to include: (1) DevRelay sidebar panel with version detection via subprocess, (2) 'Submit Session to DEV' button that builds curated_data from woven chapters and calls devrelay sessions submit, (3) Liquid tag display after successful submission, (4) in-app DevRelay export expander after each chapter woven. Relaunched Streamlit on http://localhost:8501.


    How I Built It

    MemoryWeaver was developed using Google Antigravity as the autonomous agent environment, running Streamlit for the frontend and powered by open-weights Llama 3 (llama-3.3-70b-versatile) via Groq for high-speed inference.
    The app takes dual inputs — written notes and optional secondary spoken context — and passes them to an open-weights model instructed to act as an empathetic family chronicler. The model returns structured JSON with:

  • chapter_title: An engaging, heartwarming title for the story.
  • formatted_story: Polished prose that retains the human warmth and original tone.
  • extracted_tags: Thematic tags for easy searchability across the workspace.

python
import streamlit as st
import json
from groq import Groq
def weave_memory(book_type, recipient, notes, voice_context, api_key):
    client = Groq(api_key=api_key)

    system_prompt = f"""
    You are MemoryWeaver, an empathetic chronicler.
    Transform user notes into a polished story chapter for a '{book_type}' dedicated to {recipient}.
    Keep the original human tone intact. 
    Output JSON format with keys: 'chapter_title', 'formatted_story', 'extracted_tags'.
    """

    prompt = f"User Notes: {notes}\nSecondary Voice Context: {voice_context}"

    completion = client.chat.completions.create(
        model="llama-3.3-70b-versatile",
        messages=[
            {"role": "system", "content": system_prompt},
            {"role": "user", "content": prompt}
        ],
        response_format={"type": "json_object"}
    )

    return json.loads(completion.choices[0].message.content)
Enter fullscreen mode Exit fullscreen mode

Top comments (0)