📝 Project 소개 | [ Youtube ] [ 시연 링크 ]
저희 안녕 JOBits 서비스는 IT 직군의 개발자 취업 준비생을 돕기 위해 탄생했습니다. 예상 면접 질문 생성, 모의면접 기능을 통해 실제 면접에 가까우면서 더 구체적인 질문을 얻을 수 있습니다. 또한 피드백과 함께 실제 면접에서 좀 더 개선된 답변을 할 수 있도록 방향을 제시합니다.
취업시장에서의 경쟁력을 키우기 위해 AI를 활용해 면접 준비를 도와주는 서비스들이 등장하고 있지만 기존 서비스들은 다음과 같은 문제점들이 존재했습니다. 따라서 저희 안녕 자비스는 다음과 같은 방식으로 기존 서비스들의 문제점을 보완하여 실제 면접 환경에 사용자가 익숙해지는 데에 도움이 되고자합니다.
기존 서비스들과의 차별점
사용자의 이력서와 지원 회사의 채용공고
를 입력으로 받아,개인 맞춤화
질문을 제시- 실제 면접에서 추가 질문이 나오는 포인트를 살린,
꼬리 질문
제시 개발자 기술 면접
에 도움을 주는 특화된 서비스LLM Generation
과 자체 데이터셋Retriever 모델
을 함께 활용한 환각 축소 방안
개인의 성장과 팀의 조화를 추구하는 팀, 안녕 자비스입니다!
개인의 성장 == 팀의 성장
이라는 마인드로 잘 모르는 부분이 있다면 함께 알려주고 배워가면서 성장해왔습니다. 또한 배운 것을 바탕으로 자신의 역량을팀에서 조화
롭게 녹여나갈 수 있도록 믿어주고 응원해주고 있습니다.
구희찬 | 김민석 | 손유림 | 오태연 | 이상수 | 최예진 |
---|---|---|---|---|---|
이름 | 역할 |
---|---|
구희찬 | 배포를 위한 환경 설정(Docker-compose), Steamlit, FastAPI를 통한 MongoDB CRUD, 생성형 모델로 데이터 수집 및 검수로 데이터셋 구축 |
김민석 | Back-End 개발, Streamlit , FastAPI 을 통한 카카오 로그인 기능, 데이터 송수신 및 페이지 통신 구현, Retriever 임베딩 모델 탐색, 면접 질문 데이터셋 구축 및 검수 |
손유림 | Rule-Based 모델 구현, 면접 질문 데이터셋 구조도 구축, 데이터셋 추가 수집/최종 검수, FastAPI를 통한 MongoDB CRUD, 배포를 위한 환경 설정(Docker-compose) |
오태연 | LLM , LangChain 을 활용한 면접질문 Generation 모델 구현, Retriever 설계 및 구현(FAISS, Reranker), Streamlit 을 이용한 Front-End 개발 |
이상수 | Streamlit 을 이용한 Front-End 개발, Retriever 모델(DPR) 구현, LangChain 을 활용한 면접질문 Generation 모델 구현, 면접 질문 데이터셋 구축(LLM 기반 데이터 증강) |
최예진 | Project Manager, 프로젝트 기획 제안 진행, Streamlit 을 이용한 Front-End 개발, LLM 프롬프트 엔지니어링, 면접 질문 데이터셋 구축 및 검수 |
프로젝트는 Streamlit과 FastAPI를 사용하여 프론트엔드와 백엔드를 구축했습니다. 사용자는 Streamlit을 통해 질문 생성 및 모의 면접을 진행하며, Kakao OAuth를 통해 로그인하고 MongoDB를 사용하여 사용자 정보를 저장합니다. 이를 통해 사용자는 편리하게 서비스를 이용할 수 있습니다.
사용자가 JD와 이력서를 입력하면 Retrieval Model과 Generation Model 두 가지로 들어가게 됩니다. Generation 모델에서는 프로젝트와 관련된 질문을 생성하며, Retrieval 모델은 Rule-based 모델과 Semantic Search로 구성되어 기초 기술면접 질문을 생성합니다. 이를 통해 예상 면접 질문 N개가 선정되며, 모의면접 서비스와 면접예상 질문 생성 서비스 2가지로 서비스가 제공됩니다.
1️⃣ Retriever Model
직접 구축한 실제 기술면접 데이터셋을 바탕으로 기술면접 질문을 추출
-
- [FAISS] 기술면접 질문 데이터셋 중 JD와 관련성 높은 후보군 n*k개 질문 검색
- [Reranker] 검색된 면접 질문들 후보군에 대해 reranking를 통해 JD 전체와의 관련도 있는 k개의 질문 추출
-
- 채용 공고 및 이력서에 특정 키워드가 등장할 경우, 해당 키워드와 관련된 질문을 추출
- 연관성을 높이기 위해 다양한 규칙 추가
- 900개 이상의 면접 질문 데이터셋을 직접 스크랩한 후 검수하여 데이터셋을 구축, 직군의 경우 AI, 백엔드, 프론트엔드, CS 지식 관련 질문으로 분류하여 데이터를 수집
- 또한, IT Tech 직군의 채용 공고를 크롤링하여 얻은 데이터에서, 직무와 관련된 주요 키워드를 추출하여, 키워드와 면접 질문 데이터셋을 매칭시켜 룰베이스드 알고리즘과 Retriever에 활용
2️⃣ Generation Model
- 프로젝트 관련 질문 생성, 꼬리질문, 피드백 , 힌트 제공
- OpenAI의 ChatGPT API활용
- Langchain을 이용하여 아키텍쳐 구축
- Prompt Engineering 활용
✅ 예상 면접 질문 생성
3단계의 체인을 통해 면접 질문이 생성됩니다. Chain1,2에서는 Job Description과 이력서에서 주요 내용을 추출해오며, 이를 활용해 예상 면접 질문을 생성하는 Chain3로 구성됩니다.
✅ 모의면접 서비스
Langchain의 memory 기능을 활용해 이전 대질문과 면접자의 답변을 기억하여 꼬리질문을 생성합니다.
✅ 예상 면접 질문 생성-피드백 서비스