<< [[2025-01-16|Before]] | [[2025-01-18|Next]] >> ## Goal - `Quiz` 기능 구현하기 - `Crew Module`의 기능들을 `Utiles module`로 이동하기 ## TODO > [!TODO] TODO > - [v] file name 함수화 하기 > - [v] 문서 요약 기능을 CrewAI로 구현하기 > - [v] CrewAI에서 가져온 경로 중복 문제 해결하기 > - [v] Quiz Chain 구현하기 > - [v] Crew.py의 함수들 중 데이터 처리 관련 함수들을 Utiles.py로 이동시키기 > - [-] Quiz UI 구현하기 ## Issue/Solution #### Issue 1 > [!blank] > >> [!warning]+ Problem >>[[2025-01-15#Issue 1|Before Issue]]에서 `Refine LECEL Chain`과 `CrewAI`의 결과에 대해 다루었었다. >> `Refine LECEL Chain`은 `CrewAI`보다 문서 요약 쿼리에 대해 더 좋은 결과를 도출했었다. 하지만 `Refine LECEL Chain`의 경과 시간은 **약 5분 정도**로 실제로 사용하기에는 너무나 긴 시간이었다. > >> [!summary]+ Solution >> `CrewAI`의 결과 값이 `Refine LECEL Chain`보다 조금 못 미치더라도 연산 시간을 줄이기 위해 `CrewAI`을 사용해야 할 것 같다. `CrewAI` 또한 `Refine`으로 구현하는게 아니라 전체 문서를 주고 이를 요약하게 하여 시간을 더욱 줄이는 것을 목표로 하였다. #### Issue 2 > [!blank] > >> [!warning]+ Problem >>`file selector Crew`의 결과 값이 동일한 파일/이미지를 **중복하여 반환**하는 오류가 발생했다. > >> [!summary]+ Solution >> `file selector Crew`의 결과 값을 바로 사용하지 말고 **중복 체크를 함수**를 적용하여 파일 경로가 중복되지 않도록 구현하였다. #### Issue 3 > [!blank] > >> [!warning]+ Problem >>현재 `Crew module`에서는 `Crew`를 실행하는 것 뿐만 아니라, `Crew` 결과 값을 처리하는 과정도 수행한다. >>하지만 `Crew module`은 오직 `Crew`를 실행하는 데에 필요한 `Class`와 함수를 다루는 곳이기 때문에 이러한 데이터 처리는 **Utiles module**에서 처리하는 것이 좋다고 생각하였다. > >> [!summary]+ Solution >> `Utiles`에서 `Crew`을 실행한 결과 값을 받으면 이를 올바른 데이터로 검사 및 가공하고 **home.py(메인 페이지)** 에 이를 넘기도록 구현하였다. >> 이 과정에서 중복으로 사용되고 있던 기능들을 하나의 함수로 만들어 유지보수하기 쉽게 재구성하였다. ## Reference - [[Refine LCEL Chain]] - [[Crew]] - [[Quiz GPT]] ## Git commit contents - [refactor : home.py의 langchain run 함수를 Utiles로 이동 및 file name 함수화](https://github.com/Donghyeon-Shin/DocumentSecretary/commit/f68850ba7502720ce2016d4e4a8efbd2bed651fc "refactor : home.py의 langchain run 함수를 Utiles로 이동 및 file name 함수화") - [build : Document Summary Crew 구현](https://github.com/Donghyeon-Shin/DocumentSecretary/commit/584e9758bea8689e7b7eceaecdfa230dd4c2ddc8 "build : Document Summary Crew 구현") - [fix : 관련 문서와 이미지를 가져오는 과정에서 경로가 중복되는 경우 수정](https://github.com/Donghyeon-Shin/DocumentSecretary/commit/73ecf9ada38db951f9ea4c2b470dcfdf8d249535 "fix : 관련 문서와 이미지를 가져오는 과정에서 경로가 중복되는 경우 수정") - [build : Quiz Chain 구현](https://github.com/Donghyeon-Shin/DocumentSecretary/commit/9a22ff94b9981a42543a4febdcc002cb5b44eed4 "build : Quiz Chain 구현") - [refactor : crewModules의 데이터 처리를 Utiles에서 하도록 변경](https://github.com/Donghyeon-Shin/DocumentSecretary/commit/161d186bc3e20b7781525e48a3c00c52273a9e6c "refactor : crewModules의 데이터 처리를 Utiles에서 하도록 변경") ## What should I do more - `Quiz` UI 구현하기 - `Streamlit Cloud`로 프로젝트 배포하기