StudyBuddy: Llama 3.2 기반 친구를 위한 AI 학습 도우미
요약
StudyBuddy AI는 사용자가 업로드한 강의 노트를 기반으로 맞춤형 학습 자료를 제공하는 웹 앱입니다. 난이도별 시험 문제 세트, 숨겨진 추천 답변, 즉각적인 튜터링을 위한 AI 채팅 기능 등을 포함합니다. Llama 3.2를 활용하여 API 키나 클라우드 연결 없이 로컬 환경에서 구동되어 높은 개인 정보 보호 수준을 보장합니다.
핵심 포인트
- 강의 노트 기반 맞춤형 시험 문제 자동 생성 (단답형, 상세 설명형 등)
- AI 채팅 및 플래시카드 기능을 통한 다각적 학습 지원
- Llama 3.2를 활용하여 로컬 환경에서 구동 가능 (개인 정보 보호 우수)
- 클라우드나 API 키 없이 오프라인으로 작동하는 웹 앱
이 글은 Hacktoberfest Weekend Challenge: Build for a Friend*에 제출하는 내용입니다.
제가 만든 것
Ajay는 대학생으로, 강의 노트를 실질적인 학습 자료로 정리하는 데 어려움을 겪는 경우가 많습니다. 시험을 보기 전에는 실제로 개념을 배우기보다는 잠재적인 연습 문제를 생각해 내려고 몇 시간을 보냅니다.
StudyBuddy AI가 이 문제를 해결합니다. 사용자가 강의 노트를 업로드하면, 난이도별(2점 단답형, 5점 상세 설명형, 구술/인터뷰 스타일 질문)로 맞춤화된 시험 문제 세트를 즉시 얻을 수 있는 깔끔하고 휴대폰 친화적인 웹 앱입니다.
생성되는 각 질문에는 사용자가 지식을 테스트할 수 있도록 숨겨진 추천 답변이 포함되어 있습니다. 또한 어려운 주제에 대한 즉각적인 튜터링을 위한 AI 채팅 기능과 핵심 정의를 암기하는 데 도움이 되는 플래시카드 생성기도 제공됩니다.
데모
실시간/비디오: Llama 3.2가 모든 무거운 작업을 수행하므로 로컬 시스템에서 실행할 수 있습니다. 업로드된 텍스트를 읽고 Ollama를 통해 로컬로 구동합니다. 아무것도 노트북을 벗어나지 않습니다: API 키 없음, 클라우드 없음, 비용 없음.
'운영체제(Operating Systems)'에 대한 노트가 업로드되었을 때 StudyBuddy AI의 실제 출력 예시는 다음과 같습니다:
📘 Q1. 프로세스와 스레스의 차이점은 무엇인가요? (2점) (호버 시 표시) 프로세스는 자체 메모리 공간을 가진 독립적인 실행 프로그램인 반면, 스레드는 동일한 메모리 공간을 공유하는 프로세스 내의 경량 실행 단위입니다.
📙 Q2. 가상 메모리(Virtual Memory) 개념과 그 장점을 설명해 주세요. (5점) (호버 시 표시) 가상 메모리는 사용자에게 크고 연속적인 메모리의 환상을 만들어 물리적 메모리 제한을 숨기는 메모리 관리 기술입니다. 이는 페이지 테이블을 사용하여 가상 주소를 물리적 주소에 매핑함으로써 작동합니다. 장점에는 물리적 메모리보다 큰 프로그램을 실행할 수 있다는 점, 높은 수준의 다중 프로그래밍(multiprogramming)이 가능하다는 점, 그리고 스와핑(swapping)을 위한 I/O가 적다는 점 등이 포함됩니다.
코드
GitHub logo 624183-NITAP / StudyBuddy-AI
StudyBuddy AI
이 프로젝트는 Hacktoberfest Weekend Challenge: Build for a Friend를 위해 제작되었습니다.
제가 만든 것 (What I Built)
저는 친구가 다가오는 대학 시험을 준비하는 데 도움을 주기 위해 설계된, 로컬 기반의 개인 정보 보호 우선 AI 학습 도우미인 StudyBuddy AI를 만들었습니다.
제 친구는 좋은 연습 문제를 찾거나 강의 노트를 실질적인 학습 자료로 통합하는 데 어려움을 겪곤 합니다. 그들은 개념을 실제로 공부하기보다는 잠재적인 시험 문제를 생각해내는 데 몇 시간을 보냅니다. StudyBuddy AI는 친구가 코스 노트를 업로드하면 이를 통해 목표 지향적인 시험 문제(단답형 2점 문항, 상세 설명형 5점 문항, 심지어 구술/면접 스타일 질문)를 자동으로 생성할 수 있게 하여 이 문제를 해결합니다. 또한 어려운 주제에 대한 즉각적인 과외링을 위한 AI 채팅 기능과 핵심 정의 암기를 돕는 플래시카드 생성기도 포함하고 있습니다.
제작 방법 (How I Built It)
이 프로젝트는 다음으로 구축된 최신 웹 애플리케이션입니다:
- 프론트엔드: Next.js (React)와 Tailwind CSS를 사용하여 세련되고 반응성이 뛰어난…
StudyBuddy AI 📚 노트를 업로드하면 StudyBuddy가 시험지를 생성합니다. 또한 온디맨드 과외 선생님 역할도 수행합니다.
Llama 3.2가 모든 무거운 작업을 처리합니다. 업로드된 텍스트를 읽고 Ollama를 통해 로컬에서 실행됩니다. 아무것도 노트북을 벗어나지 않습니다: API 키 없음, 클라우드 없음, 비용 없음.
실행하기 (2개 명령어)
bash
ollama run llama3.2
npm run dev
그런 다음 http://localhost:3000을 엽니다.
제작 방법 (How I Built It)
Llama 3.2가 핵심 역할을 합니다. 로컬에서는 Ollama를 통해 실행되는 Llama 3.2입니다. 이 모델이 모든 추론, 질문 생성 및 과외링을 담당합니다. 로컬 모델이기 때문에 속도 제한이나 API 비용에 대한 걱정이 없으며, 이는 학생 예산에 완벽합니다.
JSON 스트리밍을 진행합니다. 상세한 5점짜리 시험 문제를 생성하는 데는 시간이 걸립니다. 빈 화면이 로드되기를 20초 동안 기다리는 것은 사용자 경험 측면에서 좋지 않습니다. 이를 해결하기 위해 Next.js에 NDJSON 스트리밍 파서를 구현했습니다. 서버가 Ollama로부터 청크를 실시간으로 스트리밍하고, 정규 표현식(regex)을 사용하여 완성된 JSON 객체를 추출한 다음, UI 컴포넌트를 브라우저로 점진적으로 스트리밍합니다. 문제 카드가 생성되는 대로 하나씩 화면에 나타납니다.
Next.js와 Tailwind를 사용했습니다. 프론트엔드는 Next.js (App Router) 기반으로 구축되었고, Tailwind CSS로 스타일링하여 늦은 밤 공부 세션에도 눈이 편안한 매끄럽고 현대적인 '다크 모드' 미학을 구현했습니다.
Open Innovation이 중요한 이유
사용자의 학습 자료는 사용자에게 남아 있습니다. 강의 노트, 개인적인 학습 오류, 학업적 약점은 반드시 제3자 서버로 전송되어 훈련 데이터로 사용될 필요가 없습니다. 로컬에서 실행되는 오픈 웨이트(open-weight) 모델을 사용하면, 그 데이터는 노트북을 떠나지 않습니다. 검토해야 할 공급업체도 없고, 보유 정책도 없으며, 계정도 만들 필요가 없습니다.
실행하는 데 완전히 무료입니다. 로컬 환경에서는 API 키나 요청당 비용이 없기 때문에, 제 친구는 걱정할 것 없이 원하는 만큼 많은 연습 시험을 생성할 수 있습니다.
저는 전체 파이프라인을 통제합니다. 추론 호출(inference call)을 제가 소유하기 때문에, 마크다운 없이 엄격하게 JSON만 반환하도록 프롬프트를 조정하고, UI를 처리하는 저만의 결정론적 스트리밍 파서를 강제할 수 있습니다. 폐쇄형 챗봇은 그들(플랫폼)의 UI 조건에 맞는 답변을 제공하지만, 오픈 웨이트는 원하는 정확한 경험을 구축할 수 있게 해줍니다.
수상 부문
Local AI Hero
Open Source Innovator
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기