← Index
2026-10-14 — Progress

AI899 VLA Study: 강의 영상·논문 자습 + Codex 튜터

AI899 | davian-robotics-docs PR #1 (미팅 RAG) 변형 | ~/repos/KAIST/AI899/vla-study

TL;DR

12
전사 영상
4,019
검색 passage
12
학습 가이드
25/25
테스트

1 배경 / 목적

교수님: "연구실 온라인 미팅을 DB로 저장하고 RAG로 질의응답하는 솔루션을 조금 변형해서, 학생들이 영상을 보면서 논문도 직접 찾아보며 질문하고 self-study할 수 있는 소프트웨어"를 요청하셨다.

차이점: 미팅 솔루션은 한국어 회의록 Markdown(path:line 인용)이 대상이었다. 강의는 영어 영상·슬라이드·논문이고, 학생 질문은 한국어다. 인용도 "영상 몇 분, 몇 쪽"이어야 학습에 쓸 수 있다.

2 작업 내용

구성요소구현이유
sync_notion.pynotion.site 공개 API로 31개 수업, 영상, 슬라이드 수집새 강의 업로드 시 재실행만 하면 됨
transcribe.pyfaster-whisper large-v3, VAD, 수업 용어 prompt, Slurm(1 GPU)타임스탬프가 있어야 영상 seek 인용 가능
corpus.pyBM25(레퍼런스 포팅): 전사 75초 창 / 슬라이드 쪽 / 논문 쪽인용 단위 = 학생이 돌아가 볼 단위
tutor.py한국어 → 영어 검색어 변환, 수업 첫 질문에 전사 전체 주입, 현재 영상 ±60초교차언어 BM25 실패 해결
codex_client.pyGPT-Policy app-server 클라이언트 기반, 다중 thread 라우팅, 도구 차단 3중사용자 지정(Codex CLI), 학생 공개 서비스
server.py / static영상 Range, PDF 쪽 PNG, SSE, arXiv 검색·서재, 토큰 쿠키, rate limit표준 라이브러리만 사용(레퍼런스 원칙)
build_guides.py요약·강의 흐름·핵심 개념·논문 연결·자가 점검, 무효 태그 자동 제거영상 보기 전 길잡이

3 결과

항목수치
전사12개 영상, 14.7시간, job 192040 22분 10초 (영상당 64–134초), 언어 감지 en 0.59–0.99
코퍼스passage 4,019 (논문 2,656 / 전사 751 / 슬라이드 612)
학습 가이드12개, 5,008–11,379자, 태그 62–144개, 무효 태그 0
답변한국어 질문 E2E 27초, 근거 칩 9–21개, 후속 질문 맥락 유지
테스트25개 통과 (가짜 app-server로 도구 차단·승인 거절·늦은 이벤트·비JSON 출력 포함)
쪽 뷰어
Figure 1: 튜터 답변의 슬라이드 칩 → 쪽 이미지 뷰어(◀ ▶, "이 쪽 질문하기"). 헤드리스 브라우저라 한글 폰트가 깨져 보임
리뷰 반영: 깨진 태그나 Infinity 입력이 대화 lock을 영구 점유하던 문제, 비JSON 출력으로 reader thread가 죽던 문제(HIGH 2건)와 MEDIUM 8건을 수정하고 회귀 테스트 7개를 추가했다.

4 Takeaway

의미

미팅 RAG의 "근거 인용"을 강의용으로 바꾸면서 인용 단위를 영상 시각과 쪽으로 바꾼 것이 핵심이다. 학생이 답의 근거를 한 번 클릭으로 원 강의에서 확인할 수 있다. 한국어 질문과 영어 자료 사이의 차이는 BM25만으로 해결되지 않아, LLM 검색어 변환과 수업 전체 맥락 주입으로 풀었다.

5 Next Steps

결정 필요

학생 공개 배포 호스트와 방식(로그인 노드는 loopback만 가능), 토큰 공유 방식, Codex 사용량 정책(rate limit 기본값: IP당 10분 30개)

한계

PPTX는 텍스트만 보임(LibreOffice 없음). 화자 분리와 학생 계정이 없다. 가이드는 조교 검토 전 초안이다.