안녕하세요. 오랜만에 찾아온 랭체인 파트너 곽은철입니다.
얼마전에 있었던 항해99의 항해커톤에 참가하여 최우수상을 받게되어 팀원분들의 동의를 받고 후기겸 사례를 남겨봅니다.
해커톤 장소에서 처음 만나 밤새 아이디어를 쥐어짜고 코딩한 팀원들에게 무한한 감사를 드립니다.
해커톤의 주제는 “오픈소스 AI로 사회적 문제를 해결하는 서비스를 만들기” 였습니다. 다행이 여기서 말하는 오픈소스 AI는 GPT-4, gemini등 api서비스까지 포함되어 있어 한결 서비스를 만들기 쉬웠습니다.
처음 아이디어를 잘 잡고 설계가 튼튼해야 완성도가 높다는 공통된 의견에 따라 우리는 8시에 시작된 해커톤에서 새벽 2시까지 아이디어 회의를 계속했습니다. 팀단위로 신청하신분들의 경우 미리 아이디어를 생각해오기도 했지만 다들 큰 기대 없이 완성 그 자체를 목표로 좋은 아이디어를 모아갔고 “가짜뉴스의 피해가 AI가 발전할수록 더 커진다”라는 의견이 나왔고 우리가 해결 가능한 목표로 수정해서 “가짜뉴스 팩트체커”를 만들게 되었습니다.
구현시간이 12시간도 남지않은 상황에서 완성도 높은 서비스를 만들기 위해 최대한 타겟을 좁혀야했습니다.
그래서 수많은 가짜뉴스가 가장 많이 쉽게 퍼져나가는 유튜브를 주 타겟으로 선정했습니다.
UI는 디자이너가 없는 상황에서 최대한 완성도가 높고 사용자가 사용하기 쉽게하기 위해 가장 단순한 형태로 구현했습니다.
그리고 실제 작동은 최대 10초이내로 사용자가 결과를 받을 수 있도록 목표했습니다.
백엔드는 플라스크로 기본적인 전처리를 하고 이후에 AI를 활용하는 부분은 랭체인을 사용했습니다.
우리 로직은 다음과 같습니다.
Youtube url이 맞는지 정규표현식으로 확인합니다.
Youtube가 맞다면,
Youtube API를 사용해서 10분 내의 영상인지 확인합니다. 10분 이상의 영상은 처리 시간이 오래걸려서 우리 서비스 타겟에서 벗어 난다고 생각했습니다.
Youtube API로 자막을 가져옵니다.
아니라면 랭체인의 playwright loader를 활용해서 해당 URL의 내용을 크롤링 해옵니다.
가져온 자막,기사내용을 랭체인으로 GPT-3.5에 헤드라인(키워드, 검색어)로 변환합니다.
SerpAPI를 활용해서 GPT-3.5가 헤드라인(키워드, 검색어)에 신뢰성이 높은 국내 뉴스사이트에서만 검색을 합니다.
검색 결과와 4.에서 생성한 헤드라인(키워드, 검색어)을 추가해서 신뢰성을 %로 출력하고 그 근거를 설명하게 합니다.
6.의 결과를 json으로 리턴합니다.
실제 랭체인으로 작성한 코드만 모아보면 200줄 정도의 매우 짧은 양의 코드로 위 기능을 대부분 구현했습니다.
랭체인은 빠르고 쉽게 AI를 활용한 서비스를 만드는 데 특화되어 있어 이번 해커톤에서 그 효과를 많이 봤습니다.
자세한 코드와 설명은 설명편에서 작성해보겠습니다.
감사합니다.