Abhyas: Gemma 4로 교과서 사진을 인도어 워크시트로 변환하기, 오프라인 사용
요약
Abhyas는 교재 페이지 사진을 찍으면 Gemma 4 모델을 활용하여 힌디어 또는 영어로 인쇄 가능한 워크시트와 정답지를 생성하는 오프라인 도구입니다. Ollama를 통해 노트북에서 구동되므로 인터넷 연결 없이도 사용 가능하며, MCQ, 빈칸 채우기 등 다양한 유형의 문제를 자동으로 만듭니다.
핵심 포인트
- 교재 사진을 찍어 인쇄 가능한 워크시트와 정답지를 생성합니다.
- Ollama 기반으로 Gemma 4를 활용하여 오프라인 환경에서 작동합니다.
- MCQ, 빈칸 채우기 등 다양한 문제 유형 생성이 가능합니다.
- API 비용 없이 노트북에 데이터를 보관하며 사용합니다.
이 글은 Hacktoberfest 오픈소스 AI 챌린지 주차 2: 부업 (Side Hustle)에 제출하는 내용입니다.
내가 만든 것
TODO (당신의 이야기, 3~4문장): 선생님이 누구인지(이름 또는 "[거주 도시]의 과외 교사"), 무엇을 가르치는지, 학생 수가 얼마나 되는지, 그리고 오늘 수동으로 워크시트 한 장을 만드는 데 시간이 얼마나 걸리는지를 설명합니다.
Abhyas (अभ्यास, 힌디어로 "연습"이라는 의미)는 교재 페이지를 찍은 휴대폰 사진을 힌디어 또는 영어로 인쇄 가능한 워크시트와 별도의 정답지로 변환해 줍니다. 이 시스템은 선생님의 노트북에서 Ollama를 통해 Gemma 4를 구동하므로, Wi-Fi가 꺼져 있어도 작동합니다.
선생님의 작업 과정:
- 내일 가르칠 페이지 사진을 찍습니다.
- 수업반, 언어, 그리고 원하는 객관식 문제(MCQ), 빈칸 채우기, 참/거짓 문제, 단답형 질문의 개수를 선택합니다.
- **워크시트 만들기 (Make worksheet)**를 클릭하고 화면에서 마음에 들지 않는 부분을 수정합니다.
- 학생들을 위한 워크시트를 인쇄하고 자신을 위한 정답지를 인쇄합니다. 모든 답 옆에는 해당 답이 나온 페이지의 문장이 표시됩니다.
누가 지불할까요: 매주 수동으로 워크시트를 만드는 과외 교사 및 소규모 학원입니다. TODO: 선생님과 테스트해 본 가격과 그분이 한 말을 추가하세요.
데모 (Demo)
TODO: 여기에 60초에서 90초 분량의 비디오를 삽입하세요. 예: {% embed https://www.youtube.com/watch?v=YOUR_VIDEO %}. 내용에는 다음이 포함되어야 합니다: Wi-Fi가 꺼진 상태, 사진 촬영 과정, 워크시트, 인쇄된 시트.
TODO: 실제 Gemma 출력을 통해 노트북에서 실행한 스크린샷 2~3장을 추가하세요 (앱 화면, 인쇄된 워크시트, 정답지).
코드 (Code)
GitHub logo Aayush657 / abhyas
교재 페이지를 사진 찍으면 힌디어 또는 영어로 인쇄 가능한 워크시트와 정답지를 얻을 수 있습니다. Ollama를 통한 Gemma 4, 오프라인 구동 가능.
Abhyas (अभ्यास)
교재 페이지를 사진으로 촬영하세요. 힌디어 또는 영어로 인쇄 가능한 워크시트와 정답지를 받으세요. 오프라인 지원.
Abhyas는 과외 선생님을 위한 작은 도구입니다. 이 도구는 교과서 페이지 사진을 Gemma 4로 전송하며, Gemma 4는 선생님의 노트북에서 Ollama를 통해 실행되는 오픈 웨이트 모델입니다. Gemma가 페이지를 읽은 후, 자신이 읽은 내용을 바탕으로 객관식 문항(MCQs), 빈칸 채우기, 참/거짓 문제, 그리고 단답형 질문을 작성합니다. 순수 Python 코드는 이 문제가 페이지에 도달하기 전에 모든 것을 확인합니다.
- 설정 후에는 인터넷 없이 작동합니다. Wi-Fi를 꺼도 됩니다.
- 워크시트당 비용이 들지 않습니다. API 요금이 없습니다.
- 페이지는 노트북에 보관됩니다. 아무것도 업로드되지 않습니다.
- 힌디어 인쇄가 올바릅니다. 브라우저가 데바나가리(Devanagari)를 처리하며, 글꼴이 번들로 제공됩니다.
작동 방식
- 첫 번째 통과 (Pass 1), 읽기: 각 사진은 온도 0으로 Gemma 4에 전송됩니다. Gemma는 JSON 형식(
PageNotes)으로 답변해야 하며, 여기에는 과목(subject), 주제(topic), 언어(language)와 페이지에서 복사된 사실 목록이 포함되어야 합니다. - …
제작 과정
Abhyas는 Ollama에서 로컬로 실행되는 Gemma 4를 중심으로 구축된 작은 Python 앱(화면용 Flask, 데이터 형태용 Pydantic)입니다. 핵심 결정 사항은 다음과 같습니다: Gemma가 먼저 페이지를 읽고, 그 후에 자신이 읽은 내용을 바탕으로 질문을 작성한다는 것입니다.
- Pass 1, 읽기. 각 사진은 JSON 스키마(Ollama의 구조화된 출력)와 함께 temperature 0으로 Gemma 4에 전달됩니다. Gemma는 페이지 자체의 언어로 주제, 토픽 및 페이지에서 복사한 사실 목록을 반환해야 합니다.
- Pass 2, 쓰기. 번호가 매겨진 사실과 교사의 설정은 다시 JSON 스키마와 함께 Gemma로 돌아갑니다. 모든 질문에는 어떤 사실을 테스트하는지(
fact_id) 명시되어야 합니다. - 확인 (plain Python으로). 모델이 작성하고, 코드가 검증합니다. 사실은 존재해야 합니다. 객관식 문항(MCQ)은 정답을 포함하여 4개의 다른 선택지를 필요로 합니다. 빈칸 채우기 문항은 빈칸을 포함해야 하며 답을 알려주어서는 안 됩니다. 참/거짓 문항은 True 또는 False여야 합니다. 중복이 없어야 합니다. 만약 Gemma가 빈칸을 잊었지만 문장 속에 답을 남겼다면, 코드가 스스로 빈칸 처리합니다. 그 외에 실패하는 것은 제거되며, 교사는 이유를 알 수 있습니다.
- 수정. 누락된 질문은 문제 목록과 함께 Gemma에게 다시 요청됩니다.
- 인쇄. 워크시트는 브라우저에서 인쇄되는 A4 용지이므로, 힌디어 모음 부호와 결합 문자가 올바르게 나옵니다. Poppins 글꼴(라틴어 및 데바나가리)이 번들로 제공되므로, 오프라인으로도 인쇄가 가능합니다.
모델: TODO: 사용한 Gemma 4 크기(gemma4:e4b 또는 gemma4:12b), 노트북의 RAM과 프로세서, 그리고 페이지당 소요 시간을 기재하세요.
실제 페이지에서의 결과
TODO: 20개의 실제 페이지에 대해 python eval/run_eval.py를 실행하고, 채점표를 작성한 다음, python eval/summarize.py에서 나온 표를 여기에 붙여넣으세요 (정답 여부, 페이지 사실 테스트 여부, 수정 없이 사용 가능 여부, 힌디어 가독성, 워크시트당 시간).
TODO: 스크린샷과 함께 솔직한 실패 사례 3가지(예: 잘못 읽은 단어, 약한 오답 선택지, 또는 다이어그램이 있는 페이지)를 제시하세요.
제가 AI를 사용해 구축한 방법
저는 코드를 작성하고 테스트하는 데 Claude를 코딩 보조 도구로 사용했습니다. Abhyas 내부의 모든 AI는 교사의 노트북에서 실행되는 Gemma이며, 앱은 어떤 폐쇄형 API도 호출하지 않습니다.
Open Innovation이 중요한 이유
⚠️ [IMG:N] 형식 토큰은 이미지 placeholder 입니다. 번역하지 말고 원래 위치에 그대로 유지하세요.
- 오프라인으로 작동합니다. 모델을 다운로드하면, 과외 수업에서 인터넷 연결 없이도 이 기능을 사용할 수 있습니다.
- 비용 구조가 합리적입니다. 워크시트당 API 비용이 없기 때문에, 적은 월 구독료만으로도 충분히 사업화할 수 있습니다. TODO: 실제 숫자를 추가하세요 (주간 워크시트 수와 그에 따른 유료 API 비용).
- 페이지 정보는 비공개로 유지됩니다. 교과서 페이지나 수업 자료가 노트북을 벗어나지 않습니다.
- 모델 선택의 자유도가 높습니다. 동일한 앱이 8GB 노트북에서는
gemma4:e2b를, 더 강력한 노트북에서는gemma4:12b를 구동하며, 나중에 인도어에 맞춰 파인튜닝(fine-tune)할 수도 있습니다. 폐쇄형 API로는 이 두 가지 모두 불가능합니다. - TODO: 직접 테스트해 본 결과, 오픈 소스 접근 방식이 폐쇄형 접근 방식보다 더 잘 작동했던 사례를 하나 제시해주세요.
나의 에이전트 세션 (My Agent Session)
TODO: DevRelay로 저장한 코딩 세션 링크를 연결하거나 이 섹션을 삭제하세요.
첫 사용자 경험 (My First User)
TODO: 교사가 이것을 사용했을 때 어떤 일이 일어났는지: 무엇을 만들었는지, 수업이 어떻게 진행되었는지, 그들로부터의 짧은 인용구, 비용 지불 의사 및 금액, 그리고 다음에 요청한 것이 무엇인지.
수상 부문 (Prize Categories)
- Gemma 활용 최우수 사례
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기