Planti-Fier: 사진으로 식물을 식별하는 웹 앱
요약
사진을 업로드하여 식물을 학명, 일반명 등 상세 정보와 함께 식별해주는 웹 앱 'Planti-Fier'를 소개합니다. 이 앱은 Gemini API를 통해 Google의 Gemma 모델을 호출하며, 사용자가 자신의 API 키를 직접 붙여 넣어 백엔드 없이도 작동하는 것이 특징입니다. 오픈 가중치 모델과 공개 코드를 활용하여 높은 접근성과 신뢰성을 확보했습니다.
핵심 포인트
- 사진 기반 식물 식별 웹 앱 'Planti-Fier' 개발 사례
- Gemini API와 Gemma 모델을 활용한 AI 구현
- 사용자 키를 이용해 백엔드 없이 작동하는 구조 (BYOK)
- 오픈 가중치 및 공개 코드를 통한 높은 투명성과 접근성 확보
이 글은 Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass 제출물입니다.
제가 만든 것 (What I Built)
PLANTI-FIER는 사진을 찍어 식물을 식별하는 웹 앱입니다. 사진을 업로드하면 해당 식물의 학명, 일반명, 신뢰도 점수, 자연 서식지 지역, 그리고 온라인에서 찾을 수 있는 검색 링크를 반환합니다.
이 앱은 산책을 호기심 게임으로 바꿔서 사람들을 화면에서 벗어나게 합니다. 알려지지 않은 식물을 지나치는 대신, 멈춰 사진을 찍고 이름을 배웁니다. 그런 다음 그것을 관찰하고, 냄새 맡아보고, 전 세계 어디에 더 자라는지 알아낼 수 있습니다. 이 앱은 AI 단계가 몇 초 만에 끝나도록 설계되었으며, 실제 세상이 나머지 부분을 담당합니다.
하이커, 정원사, 학생, 호기심 많은 아이들, 그리고
- Open-weight AI: 이 앱은 Gemini API를 통해 Google의 Gemma 모델을 호출합니다. 사용자의 키가 어떤 모델을 사용할 수 있는지 API에 문의하고, Gemma 모델을 먼저 선택한 다음, 해당 키에서 Gemma를 사용할 수 없을 때만 Gemini 모델로 대체됩니다. 페이지에는 각 답변을 생성한 모델이 표시됩니다.
- Flow: 사진은 브라우저에서 읽어져 base64로 변환됩니다. 이미지와 엄격한 JSON 형식의 응답을 요청하는 프롬프트가 모델로 전송됩니다. 받은 응답은 파싱되어 결과 카드 형태로 표시됩니다.
- Bring your own key: 사용자는 자신의 키를 API_KEY 필드에 붙여넣습니다. 이 키는 브라우저에 남아 있으며 코드나 저장소에는 저장되지 않습니다.
- UI: 스타일링은 Pl@ntNet Identify에서 영감을 받았으며, 녹색 팔레트, 히어로 배너, 둥근 카드 형태로 구성되어 있습니다.
- Hosting: GitHub Pages를 사용합니다.
- Shopping links: 이 링크들은 과학적 이름으로 구축된 검색 URL이므로, 앱은 어떤 상품도 판매하거나 특정 판매자를 지정하지 않습니다.
저는 앱을 설명하고 테스트하며 오류를 수정하는 반복적인 과정을 거치며 AI의 도움을 받아 이를 만들었습니다. 실제 버그 중 하나는 하드코딩된 모델 이름 때문에 작동을 멈춘 것이었는데, 이것이 바로 이 앱이 이제 사용 가능한 모델을 스스로 발견하도록 만든 이유입니다.
오픈 혁신(Open Innovation)은 왜 중요할까요?
- 종속성 탈피 (No lock-in): 모델 이름은 바뀌고 모델은 단종됩니다. 제 앱은 고정된 모델이 사용 불가능해지면서 한 번 작동을 멈춘 적이 있습니다. 여러 모델과 함께 작동하기 때문에, 죽는 대신 적응할 수 있습니다.
- 접근성 (Accessibility): 학생도 자신의 키를 가지고 백엔드 없이 무료로 작동하는 AI 앱을 구축하고 호스팅할 수 있습니다.
- 신뢰와 검증 (Trust and inspection): 식물 식별은 채집과 같은 실제 결정에 영향을 미칠 수 있습니다. 오픈 가중치(Open-weight) 모델과 공개 코드는 사람들이 이 도구가 어떻게 작동하는지 검사하고, 의문을 제기하며, 개선할 수 있게 합니다.
- 성장 여지 (Room to grow): 동일한 디자인으로 소규모의 오픈 모델을 로컬에서 실행할 수도 있어, 신호가 없는 오지에서도 식별이 가능하게 할 수 있습니다. 폐쇄형 API는 그 경로를 훨씬 어렵게 만듭니다.
AI 식물 식별은 틀릴 수 있으니, AI 결과만 믿고 절대로 식물을 먹거나 사용하지 마십시오.
시상 부문 (Prize Categories)
- Touch Grass (1주차 테마)
INNOVATE
devchallenge
hf26challenge.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기