MemoMate: 친구의 기억을 돕는 로컬 AI 메모리 비서
요약
MemoMate는 로컬 기반의 개인 메모리 비서로, 사용자가 일상 대화나 생각을 자연스럽게 말하면 중요한 정보(할 일, 아이디어, 사람 등)를 추출하여 구조화된 '기억'으로 저장합니다. 이 도구는 임베딩을 활용한 의미론적 검색 기능을 제공하여, 나중에 질문만으로 관련 정보를 쉽게 찾아낼 수 있게 돕습니다.
핵심 포인트
- 로컬 우선(local-first) 방식으로 작동하는 개인 메모리 비서입니다.
- 사용자의 자연어 대화에서 할 일, 아이디어, 사람 등 핵심 정보를 추출합니다.
- 임베딩 기반의 의미론적 검색을 통해 관련 기억을 찾아냅니다.
This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend
제가 만든 것 (What I Built)
저는 MemoMate라는 로컬 우선(local-first) AI 메모리 비서를 만들었습니다. 이 도구는 평소에 잊기 쉬운 사소한 것들을 기억하는 데 도움을 줍니다.
이 아이디어는 간단한 문제에서 시작되었습니다. 제 친구는 하루 동안 할 일, 아이디어, 정보들이 여기저기 흩어져 있지만, 복잡한 노트 시스템을 유지하고 싶어 하지 않았습니다. MemoMate를 사용하면 다음과 같이 말할 수 있습니다:
“오늘 밤 DBMS 과제를 끝내야 해. 우리 대학 프로젝트에 추천 시스템을 적용하는 것도 생각 중이야. Priya가 나랑 프로젝트를 하고 있고, 내일 Rahul에게 프로젝트 파일을 보내야 해.”
MemoMate는 이 중요한 정보를 추출하여 '기억(memories)'으로 저장합니다. 나중에 다음과 같이 질문할 수 있습니다:
- “내일 뭘 해야 해?”
- “대학 프로젝트에 어떤 아이디어가 있었지?”
- “프로젝트에서 누가 나와 함께 하고 있어?” 그리고 MemoMate는 관련된 기억을 검색하여 답변합니다.
데모 (Demo)
데모에서는 전체 흐름, 즉 메모리 캡처 → 저장 → 질문하기 → 관련 정보 검색 과정을 보여줍니다.
여기서 데모 비디오를 시청하세요
코드 (Code)
GitHub:
GitHub logo whoaditi / memomate
과제, 아이디어, 사람 및 개인적 맥락을 기억하는 로컬 AI 메모리 비서.
🧠 MemoMate
내 친구가 말한다. MemoMate가 기억한다.
MemoMate는 사용자가 자신이 말하거나 생각하거나 기억해야 할 것들을 간단하게 추적할 수 있도록 만든, 로컬 기반의 AI 개인 메모리 비서입니다.
모든 것을 별도의 노트, 투두 리스트, 연락처에 수동으로 정리하는 대신, MemoMate는 사용자에게 자연스럽게 말하도록 합니다. 이는 유용한 정보를 추출하여 구조화된 기억(structured memories)으로 저장하고, 나중에 사용자가 그 기억들에 대해 질문할 수 있도록 합니다.
📝 할 일 (Tasks) • 💡 아이디어 (Ideas) • 👥 사람 (People) • 🧠 개인 컨텍스트 (Personal Context)
✨ 주요 기능 (Features)
- 📝 할 일 메모리 (Task Memory) — 해야 할 일을 기억합니다.
- 💡 아이디어 메모리 (Idea Memory) — 프로젝트 아이디어와 생각을 기록합니다.
- 👥 사람 메모리 (People Memory) — 대화에서 언급된 사람들을 기억합니다.
- 📌 메모 (Notes) — 유용한 개인 컨텍스트를 저장합니다.
- 🔎 의미론적 검색 (Semantic Retrieval) — 임베딩(embeddings)을 사용하여 관련 메모를 찾습니다.
- 💬 자연어 질문 (Natural Language Questions) — 자신의 메모에 대해 질문할 수 있습니다.
- 🤖 로컬 AI (Local AI) — ...을 사용합니다.
구축 과정 (How I Built It)
MemoMate는 다음 기술들을 사용하여 로컬 애플리케이션으로 구축되었습니다:
- Python
- FastAPI
- SQLite
- React
- Sentence Transformers
- Ollama
- Gemma 3:1B
메모가 추가되면, Gemma는 할 일, 아이디어, 사람 등 명시적으로 진술된 정보를 추출합니다. 이 정보는 임베딩과 함께 로컬에 저장됩니다.
질문이 들어오면, MemoMate는 의미론적 유사성(semantic similarity) + 키워드 매칭을 사용하여 관련 메모를 검색하고, 그 컨텍스트를 Gemma에게 제공하여 답변을 생성하게 합니다.
또한 모델이 저장된 메모에 없는 정보를 지어내는 것을 방지하기 위해 안전장치를 추가했습니다. 따라서 MemoMate는 다음과 같이 의도적으로 지시받습니다:
- 저장된 메모만 사용할 것
- 사실을 절대 지어내지 말 것
- 관계를 절대 추론하지 말 것
- 할 일을 아이디어로 바꾸는 것을 피할 것
- 사용 가능한 메모가 불충분하면 명시적으로 “모릅니다(I don't know)”를 반환할 것
왜 오픈 혁신이 중요한가요? (Why Does Open Innovation Matter?)
MemoMate는 개인 정보를 다루기 때문에, 핵심 AI 워크플로우가 클라우드 AI API를 요구하는 대신 로컬에서 실행되기를 원했습니다. 저는 Ollama를 통해 Gemma 3:1B를 로컬로 사용하고 있으며, 이는 애플리케이션이 모든 메모를 원격 AI 서비스로 전송할 필요 없이 작동할 수 있음을 의미합니다.
저에게 있어 이것이 바로 오픈 AI의 가치입니다. 일반 노트북에서 실행될 수 있는 모델이 유료 API나 강력한 서버가 필요하지 않은 상태로도 유용하고 개인 정보 보호에 민감한 애플리케이션의 기반이 될 수 있다는 것입니다.
친구를 위해 만들어졌습니다 (Built For a Friend)
저는 또 다른 범용 챗봇을 만들고 싶지 않았습니다.
작게 느껴지지만 실제 존재하는 문제를 해결하는 무언가를 만들고 싶었습니다.
나중에 기억하기 위해 기록해야 한다는 것을 기억할 필요가 없다면 어떨까요?
이것이 바로 MemoMate의 아이디어입니다!!
수상 부문
Gemma 활용 최우수상
MemoMate는 메모리 추출과 질의응답을 위해 Ollama를 통해 로컬에서 Gemma 3:1B를 사용합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기