_본 글은 Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass 제출물입니다.
제가 만든 것 (What I Built)
AI 기반 앱이 사용자가 화면을 보는 시간을 줄이고 자연에서 보내는 시간을 늘리도록 영감을 준다면 어떨까요? 🌿
그 질문은 저에게 **Wingscape — 발견하고. 관찰하고. 환영하다(Discover. Observe. Welcome.)**를 만들게 했습니다.
도시와 아파트에 살다고 해서 우리가 자연과의 연결을 잃을 필요는 없습니다. 새들은 매일 발코니, 동네 정원, 옥상, 근처 나무들을 방문하지만, 우리는 종종 그것들을 간과합니다.
Wingscape은 조류 발견 기능, AI 기반 발코니 코치, 그리고 간단한 새 관찰 일지를 통합하여 사람들이 주변 야생동물과 다시 연결되도록 돕습니다.
아이디어는 간단합니다. 기술을 사용하여 첫걸음을 내딛게 하고, 그 후에는 화면을 내려놓는 것입니다.
때로는 앱이 할 수 있는 가장 좋은 일이 밖에 나갈 이유를 주는 것일 때가 있기 때문입니다. 🐦
Homepage
🐦 새 발견 (Discover Birds)
이 조류 가이드는 하우스 스패로우(House Sparrow), 커먼 마이나(Common Myna), 록 피죤(Rock Pigeon), 로즈링 파라케트(Rose-ringed Parakeet)를 포함한 8종의 일반적인 인도 도시 새들을 소개합니다.
사용자는 일반명 또는 학명으로 검색하고, 식별 특징과 서식지를 탐색하며, 출처가 명시된 사진을 보고, 책임감 있는 관찰 팁을 배울 수 있습니다.
Discover Birds
🌿 AI 발코니 코치 (AI Balcony Coach)
모두가 정원을 가지고 있는 것은 아닙니다. 때로는 가진 것이 작은 발코니, 몇 개의 화분, 그리고 그 공간을 새들에게 더 환영받는 곳으로 만들고 싶은 욕구뿐일 때도 있습니다.
AI 발코니 코치(Balcony Coach)는 사용자의 발코니 크기, 햇빛 조건, 기존 식물, 목표, 예산을 고려하여 해당 선호도에 맞는 실용적인 추천을 생성합니다.
AI Balcony Coach
Personalised Balcony Plan
📔 관찰 기록(My Sightings)
사용자가 종(species), 관찰 날짜, 새의 수, 선택적 메모를 기록할 수 있는 간단한 조류 관찰 일지를 구축했습니다.
사용자는 자신의 관찰 기록을 검토하고 이를 CSV 파일로 다운로드할 수 있습니다.
My Sightings
Journal Observation
참고: 현재 일지는 임시 세션 저장소를 사용하므로, 관찰 기록을 보관하고 싶은 경우 CSV 파일을 다운로드하는 것이 중요합니다.
Downloadable CSV file
데모(Demo)
🌿 라이브 애플리케이션: https://wingscape.streamlit.app
이 앱은 Streamlit Community Cloud에 배포되었습니다.
사용자는 브라우저에서 조류 가이드 탐색, AI 기반 발코니 계획 생성, 관찰 기록 일지 사용을 직접 해볼 수 있습니다.
코드
도시 공간에서 새를 발견하고, 관찰하며, 환영하세요.
🌿 Wingscape — 발견하기(Discover). 관찰하기(Observe). 환영하기(Welcome).
자연을 집 가까이로 가져오세요.
Wingscape는 도시와 아파트에 거주하는 사람들이 지역 새를 발견하고, 발코니를 새 친화적으로 만들며, 주변 자연 세계를 관찰하는 습관을 기르도록 장려하는 자연에서 영감을 받은 웹 애플리케이션입니다.
🔗 실시간 데모(Live Demo): https://wingscape.streamlit.app
💻 GitHub 저장소: sanjay067-cse/Wingscape
🌱 프로젝트 소개 (About the Project)
도시에 산다고 해서 자연과 단절된 것은 아닙니다. 새들은 매일 발코니, 동네 정원, 옥상, 근처 나무들을 방문하지만, 우리는 종종 그것들을 간과합니다.
Wingscape는 이러한 작은 만남을 더 쉽게 알아차리고 더욱 의미 있게 만드는 것을 목표로 합니다.
이 애플리케이션은 일반적인 인도 도시 새에 대한 선별된 가이드, AI 기반 발코니 계획 도우미(AI-powered balcony planning assistant), 그리고 개인 새 관찰 일지(personal bird-sighting journal)를 하나의 간단하고 상호작용적인 애플리케이션으로 결합했습니다.
목표는 단순합니다: 사람들이 이미 주변에 있는 야생동물을 발견하도록 돕고, 그것을 환영하기 위한 작고 책임감 있는 단계를 취하도록 하는 것입니다.
✨ 기능 (Features)
🐦 1. 새 발견하기 (Discover Birds)
여덟 가지 일반적인...
GitHub에서 보기
이 저장소에는 Streamlit 애플리케이션, 새 종 데이터셋(bird species dataset), AI 발코니 코치(AI Balcony Coach), 관찰 일지, 그리고 의존성 설정(dependency configuration)이 포함되어 있습니다.
제작 과정 (How I Built It)
저는 자연 저널에서 영감을 받은 차분한 크림색과 녹색 디자인을 사용하여 Python과 Streamlit으로 Wingscape를 구축했습니다.
새에 대한 정보는 JSON 데이터셋에 저장되어 있으며, 별도의 헬퍼 모듈이 새 상세 정보 렌더링(bird-detail rendering)을 처리합니다. 나의 관찰 기록(My Sightings) 기능은 사용자가 자신의 관찰 내용을 기록하고 CSV 파일로 내보낼 수 있게 합니다.
AI 발코니 코치(AI Balcony Coach)를 위해 GPT-OSS 20B 오픈 웨이트 모델을 Groq API를 통해 통합했습니다. 이 애플리케이션은 사용자의 발코니 선호도를 모델에 전송하고, 새들이 머무는 곳으로 발코니를 더 환영하는 공간으로 만들 수 있도록 개인화된 추천 사항을 표시합니다.
모델은 노트북에서 로컬로 실행하는 대신 호스팅 추론(hosted inference) 방식을 사용합니다. 저는 대규모 모델을 로컬에서 실행하는 데 필요한 하드웨어 리소스가 필요하지 않은 상태에서도 작동하는 AI 기능을 구축하고 테스트할 수 있도록 이 접근 방식을 선택했습니다.
아키텍처
아래 다이어그램은 배포부터 새 발견, AI 기반 추천 및 목격 기록 내보내기까지 Wingscape의 주요 구성 요소들이 어떻게 함께 작동하는지 보여줍니다.
Architecture
이 애플리케이션은 GitHub에 호스팅된 코드를 사용하여 Streamlit Community Cloud를 통해 배포됩니다. AI 발코니 코치는 비밀 API 키를 사용하여 Groq API에 접근하며, 새 발견 및 목격 기록 기능은 새 정보와 사용자 관찰 내용을 처리합니다. 목격 기록은 영구적인 데이터베이스가 아닌 세션에 임시로 저장됩니다.
저는 간단한 아이디어를 중심으로 Wingscape를 구축했습니다:
기술은 우리가 응시하는 화면 그 이상일 수 있습니다. 그것은 밖에 나가 자연과 다시 연결하고, 창문 바로 너머에 사는 작은 경이로움들을 발견하도록 부드럽게 상기시켜 줄 수 있습니다. 🌿
개인화된 발코니 추천을 작고 실용적인 행동으로 전환함으로써, 사람들이 도시 공간을 공유하는 새들을 알아차리고, 환영하고, 감사할 수 있도록 돕고자 합니다.
오픈 혁신은 왜 중요할까요?
강력한 기술은 단순히 누군가 이미 구축한 것을 사용하는 것이 아니라, 더 많은 사람이 만들고, 실험하고, 문제를 해결할 기회를 창출해야 하기 때문에 오픈 혁신이 중요합니다.
Wingscape를 위해 저는 GPT-OSS 20B 오픈 웨이트 모델을 선택했습니다. 이는 접근할 수 없는 가중치(weights)를 가진 독점적 모델에 전적으로 의존하기보다, 공개적으로 사용 가능한 가중치를 가진 모델로 무엇을 만들 수 있는지 탐색하고 싶었기 때문입니다.
폐쇄형 API 역시 발코니 추천 기능을 생성할 수 있습니다. 저에게 중요한 것은 오픈 웨이트 모델이 제공하는 유연성입니다. 즉, 다양한 추론(inference) 제공업체를 탐색하고, 대안적인 배포 옵션을 조사하며, 라이선스, 하드웨어 요구 사항 및 기타 실질적인 제약 조건의 적용을 받는 한 모델을 독립적으로 실행하거나 조정할 수 있는 능력입니다.
현재 Wingscape는 Groq의 호스팅 추론(hosted inference)을 사용하므로, AI 기반 추천 기능을 이용하려면 인터넷 연결이 필요합니다. 저는 이 모델을 미세 조정(fine-tuned)하지 않았고 오프라인 추론을 구현하지도 않았습니다. 하지만 오픈 웨이트 모델로 시작하는 것은 프로젝트가 발전함에 따라 학습하고, 실험하며, 그러한 가능성을 탐색할 수 있는 여지를 저에게 제공합니다.
더 중요한 것은, 오픈 혁신(open innovation)이 저와 같은 개별 개발자들에게 기존 AI 발전을 의미 있는 무언가로 바꿀 기회를 준다는 점입니다. 저는 실질적인 문제—도시 공간에 사는 사람들이 자신의 발코니를 새들에게 더 환영받는 곳으로 만들도록 돕는 것—를 탐색하기 위해 모델을 처음부터 구축할 필요가 없었습니다.
그리고 이것이 Wingscape의 아이디어로 이어집니다: 기술은 우리의 화면 너머 세상으로 가는 다리가 되어야지, 우리를 그 화면에 붙잡아 두는 이유가 되어서는 안 됩니다. 🌿
저는 AI가 단순히 답변을 생성하는 것 이상을 하기를 바랍니다. 저는 그것이 호기심을 자극하고, 작고 실제적인 행동을 장려하며, 사람들이 이미 주변에 있는 자연과 다시 연결되도록 돕기를 원합니다.
나의 에이전트 세션 (My Agent Session)
저는 Wingscape를 구축하고 디버깅하는 동안 Antigravity를 코딩 어시스턴트로 사용하여, 새 가이드, 내비게이션, AI 통합 및 목격 기록장(sightings journal)을 점진적으로 구현했습니다.
마무리 생각 (Closing Thoughts)
Wingscape는 단순한 질문에서 시작되었습니다:
만약 기술이 우리를 화면 앞에 붙잡아 두기보다 자연에 더 많은 주의를 기울이도록 도와준다면 어떨까?
이것은 초기 버전이며, 개선할 부분이 아직 많이 남아 있습니다. 현재로서는 새 발견 기능, AI 기반 발코니 추천, 그리고 기본적인 관찰 일지를 결합한 작동하는 애플리케이션을 갖게 되어 기쁩니다.
저의 다음 목표는 경험을 계속 개선하는 동시에 더 많은 사람들이 주변의 새들을 알아차리고 환영하도록 장려하는 것입니다.
발견하고. 관찰하고. 환영하세요. 🌿