grasscard: 야외 미션 카드를 인쇄하고 자리를 비켜주는 로컬 모델
요약
grasscard는 야외 활동 미션을 인쇄 가능한 카드로 제공하는 로컬 모델입니다. 사용자의 위치, 시간, 계절, 빛 상태를 고려하여 맞춤형 미션 5가지를 출력하며, 이를 통해 디지털 기기 대신 실제 경험에 집중하도록 유도합니다. 또한, 산책 후에는 간단한 명령어 기록을 남겨 활동 일지화가 가능합니다.
핵심 포인트
- 위치/시간 기반의 야외 미션을 인쇄 가능한 카드로 제공
- 로컬 모델(Gemma 3 1B)을 사용하여 개인 정보 보호 강화
- 터미널 명령어를 통해 간편하게 활동 기록 및 관리가 가능
- 디지털 피드 대신 실제 경험에 집중하도록 설계된 도구
Hacktoberfest 오픈 소스 AI 챌린지 주차 1: 자연을 느끼다(Touch Grass) 제출물
제가 만든 것
대부분의 "밖에 나가라" 앱들은 사용자가 계속해서 그 화면을 보기를 원합니다. 하지만 grasscard는 정반대의 역할을 합니다. 이 명령 하나를 실행하면, 현재 시간, 위치, 계절, 그리고 바깥 빛의 상태에 맞춰 여러분이 가질 수 있는 시간에 맞는 다섯 가지 짧은 야외 미션이 적힌 작은 카드를 출력해 줍니다. 그리고 끝납니다. 화면을 보는 데는 약 1분이 걸립니다. 나머지 활동은 바깥에서 이루어집니다.
산책 후에는 grasscard log "..." 명령어를 사용하면, 기기에 기록된 일지 파일에 한 줄이 추가됩니다. 이렇게 하면 어디에도 게시하지 않고도 실제로 무엇을 했는지 기록으로 남길 수 있습니다.
이는 하루 종일 터미널에서 시간을 보내며, 피드(feed)가 첨부되지 않은 알림이 필요한 저 같은 사람들을 위한 것입니다.
데모
이것은 Gemma 3 1B 모델을 사용하여 실시간으로, 편집 없이 진행한 실제 32초 분량의 실행 영상입니다: 강아지와 함께하는 가벼운 비가 내리는 45분 트레일 산책에 대한 카드, 인쇄 가능한 버전, 그리고 이후의 일지 기록 한 줄까지 보여줍니다.
여기에 Gemma 3 1B 모델이 로컬에서 구동하여 출력한 실제 카드가 있습니다. 휴대폰으로 열고 미션을 터치하면 완료 표시를 할 수 있습니다:
직접 사용해 보세요:
ollama pull gemma3:1b
python -m grasscard card --minutes 30 --place park
여기에 "가벼운 비, 우리 강아지와 함께"와 같은 메모를 추가하면 미션들이 조정됩니다. --mock은 모델을 전혀 사용하지 않고 실행하는 기능으로, 빠르게 테스트해 볼 때 유용합니다.
코드
grasscard GitLab 주소: https://gitlab.com/engelstands-hue/grasscard
Python 3.9 이상, 의존성 없음, MIT 라이선스, 단위 테스트(unit tests) 13개 포함.
제작 과정
흐름 자체가 작게 설계된 이유입니다:
- 오늘 날짜와 사용자의 반구(hemisphere), 그리고 현재 시간의 빛을 기반으로 계절을 계산합니다.
- 사용자에게 맞는 시간, 장소, 메모를 바탕으로 로컬 오픈 웨이트 모델에 한 줄짜리 퀘스트를 요청합니다.
- 짧은 필터가 사진 촬영, 앱 열기, 정보 검색 등 화면으로 되돌아가게 하는 모든 퀘스트를 걸러냅니다.
- 터미널용 고정 폭 카드 또는 네트워크 요청이 없는 독립적인 HTML 카드를 출력합니다. 이 카드를 휴대폰에서 열고 퀘스트를 탭하여 완료 표시(체크)할 수 있습니다(표시는 해당 브라우저에 저장됨). 또는 일반적인 흑백 주머니 카드로 인쇄할 수도 있습니다.
프롬프트와 '화면 금지' 필터는 각각 짧은 Python 파일이므로, 어떤 것이 좋은 퀘스트로 간주되는지를 변경하는 것은 설정 파일을 찾는 작업이 아니라 간단한 편집만으로 가능합니다.
CPU 전용으로는 카드 하나를 만드는 데 기계 사양에 따라 몇 초에서 최대 1분 정도가 걸립니다(기록된 실행은 약 5초, 바쁜 공유 장비에서의 초기 콜드 실행은 약 45초 소요). 이는 외출하기 전에 한 번 사용하는 것이라면 충분한 시간입니다.
오픈 소스인 이유 (Why open matters here)
핵심 목적은 산책을 존중하는 도구이므로, 모델이 사용자가 있는 곳에서 실행되어야 합니다:
- 신호가 필요 없습니다. Gemma를 다운로드하면 grasscard는 완전히 오프라인으로 작동합니다. 등산로 입구에서 카드를 만들 수 있습니다.
- 사용자의 위치 정보가 사용자에게 머무릅니다. 사용자가 어디를 걷고 일지에 무엇을 적든, 절대 기기를 벗어나지 않습니다. 신뢰할 서버가 없습니다.
- 실행 비용이 들지 않습니다. API 키도, 계정도, 카드당 요금도 없습니다.
- 모델 교체 가능. 모든 Ollama 모델은
--model로 작동하며, 사용자는 프롬프트나 필터를 직접 재작성할 수 있습니다.
호스팅된 모델을 사용했다면 카드를 좀 더 빠르게 만들 수는 있었겠지만, 계정과 키가 필요하고 현재 위치를 다른 사람의 서버로 전송해야 한다는 의미가 됩니다. 이는 '외출' 도구가 추구해야 할 것과는 정반대입니다.
상금 부문 (Prize Categories)
Gemma 활용 최우수: Gemma 3 1B가 기본 모델이며, 모든 퀘스트 생성을 로컬에서 수행합니다.
Engel AI Lab 팀 제작: https://engelailabs.com
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기
