1. 프로젝트 개요
- 글로벌컬처대학 교수님들이 활용 가능한 AI 기반 조교 도우미 서비스 개발
- ML 엔지니어로 참여하여 RAG 기반 검색/생성 기능 API 전반 설계 및 구축 진행
- 기능 : 강의계획서, 논문 초안, 문제 자동 생성 등 교육 행정 관련 컨텐츠 생성 지원
2. 검증 방향성
- RAG 아키텍처의 적합성 검토:
- 다양한 포맷의 교수 자료(HWP, PDF, 유튜브 등) 검색 가능 여부 검증
- LangChain 기반 Retrieval 및 Re-Ranking 구조와 Streaming 모델 대응성 실험
- Hybrid Search의 품질 개선 효과 검증:
- Milvus 기반 semantic 검색 + keyword 기반 lexical 검색 결합
- Re-ranking 전략을 적용하여 Top@5 검색 결과의 응답 품질 확인
- 교수 도우미로서의 유용성 검증:
- 실제 교수진을 대상으로 1~2차 베타 테스트 진행
- 문항 출제 시간 단축, 계획서 작성 자동화 효과 측정
- 정량적 피드백 수치 확보 (불만 피드백 1차 40% → 2차 5%로 감소)
3. 파이프라인 구조도
<aside>

</aside>
- 대학측의 RFP상 요구 사항인 문항생성, 문항수정, 업로드 자료에 대한 질의 응답을 처리하기 위해 유저 intent 분류 역할의 라우팅 처리
- 일반 답변을 제외한 모든 LLM Input/Output은 정의한 schema 대로 입출력
- 정학환 출력 form이 존재하기 때문에 위와 같이 개발
- 미리 업로드 한 파일들은 각 형식에 맞는 loader를 통해 Milvus 적재
- 하이브리드(Lexical + Semantic) 검색을 위해 BGE-m3와 Openai embedding 사용
- lexical retrieval → BGE-M3의 sparse embedding 사용
- semantic retrieval → OpenAI embedding 사용
- re-ranking → BGE-M3의 dense embedding 사용
- “Semantic에는 OpenAI, Re-ranking에는 BGE-M3를 사용한 이유?”
- 검색 recall을 더 높일 수 있는 OpenAI 임베딩이 검색에 유리하다는 판단.
- ‘한국어’는 OpenAI 임베딩에 비해 BGE-m3의 성능이 더 좋다는 벤치마크 테스트
- 최대 100문항의 문제를 출제해야 하는 상황에서 recall이 적을 경우 비슷한 유형의 문제만 생성됨을 관찰
- 대화 히스토리는 user_id, session_id 기준으로 TTL 1시간까지 Redis에 남아있고, 이후 백엔드 사이드의 DB에 저장
4. 주요 개발 고려 사항
- 문항 생성 퀄리티 확보 → Json Parser 사용하여 정확한 답변(Latex 수식 포함) 생성 유도
- 클라이언트 요구 템플릿 그대로 출력하기 위한 세부 프롬프트 엔지니어링(ex. 강의계획서 표)
5. 개발 중 이슈
- 다량의 Latex 포함 문항 생성 요청 시 Json parser 이슈
- 클라이언트 요청 문항생성 기능의 최대 문항 수 100문항
- 다량의 output 생성 시 json 형식대로 정확하게 출력 X
- 해결 방안 : OutputFixingParser 클래스 활용하여 생성물 2중 점검 후 Latex 문법 후처리 적용