본문 바로가기
Project/명지대학교-입학관리팀챗봇-MARU_EGG

입학관리팀챗봇 개발일지 - 모델 버전으로 llm api개발, 프론트와의 cors오류 해결, delete & retrieve APIs 개발

by 지식을 쌓는 개구리 2024. 7. 18.

0712~0717의 기간동안 한 일들

지금 까지는 1차적인 api코드만 작성했지만, 파싱과 임베딩의 과정에 있어 좀 더 안정적으로 코드를 수정하였다.

또한 open ai api기반의 질의응답 api 하나만 개발해두었는데 모델 쪽 llm 팀원이 로컬 환경에서 llm을 올려두어

이를 기반으로 모델 기반 질의응답 api를 추가로 개발하였고, 작업중에 프론트팀 쪽에서 cors오류가 발생해서 이를 해결하였으며

프론트팀의 요청으로 문서 db에 대한 delete & retrieve APIs 개발을 진행하였다.

간략하게 설명해보겠다.

 

모델 버전으로 llm api개발

우리가 닥친 문제는.. 리소스에 관한 것이다.

학교에서 지원해주는 비용에 대해 한계가 있기에 최대한 비용을 절감할 수 있는 선택지로 삼아 사용해야 한다.

따라서 선택한 것이 무료로 풀려있는 한국어 기반 학습이 잘된 llm 모델을 쓰는 것이었는데.. 문제가 3가지 있다.

1. open ai api 보다 답변 성능이 사실상 좋지 못하다는 점

2. gpu성능이 좋은 컴퓨팅 리소스를 필요로 한다는 점

3. api에 비해 속도가 매우 느리다는 점

=> 이 3가지 문제는 최대한 해결하기 위해 파싱, 임베딩, 랭체인 설정 등등 최선을 다해볼 예정이다.

 

일단 해결이 되지 않는다면... open ai api의 gpt-4o 모델을 사용할 수도 있다.

 

react와의 cors오류

프론트 팀원이 오류가 생겼다고 문의가 왔는데 다음과 같았다.

 

=> 알고 보니 cors 문제였다.

CORS(Cross-Origin Resource Sharing)는 다른 도메인에서 자원을 요청할 때 발생하는 보안 문제이다. 문제해결을 위해 아래 참고문서 포스팅을 보면서 문제를 해결할 수 있었다.  Django 프로젝트에 django-cors-headers 패키지를 설치하고 설정을 추가하고 -> pip install django-cors-headers & settings.py 파일에 INSTALLED_APPS 'corsheaders'를 추가.

그리고 MIDDLEWARE 'corsheaders.middleware.CorsMiddleware'를 추가하고, CORS_ALLOWED_ORIGINS에 허용할 도메인을 설정했더니 해결됐다.

 

참고문서: https://integer-ji.tistory.com/361 https://cholol.tistory.com/524

 

react - django, cors 문제. django-cors-headers를 깔아도 문제가 발생할 때

리액트를 조금만 하다 보면 지옥의 CORS문제와 만나게 된다. CORS는 Cross-Origin Resource Sharing의 약자로 프론트엔드가 백엔드로 요청할 때 프론트와 백엔드의 도메인이 다르면 발생하는 문제다. 근데

cholol.tistory.com

 

 

delete & retrieve APIs 개발

프론트 팀 쪽에서 문서에 대한 delete, retrieve관련 api도 type, category별로 개발해 줄 수 있냐고 부탁해서 개발을 완료하였다.

 

 

앞으로 해야 할 일

=> 할 일이... 많다..

지금 상황으론 위에서 얘기했듯이 모델버전 api의 성능을 최대한 끌어내야 한다.

이를 위해서 할 수 있는 다양한 방식을 적용해 볼 것이다.

 

데이터 파싱에 대해서도 추가사항이 있는데 요약하자면 프론트팀의 요청에 맞춰 데이터 형식을 확장하고 정보를 최대한

다양하게 담에 프론트에서 이용할 수 있게 해야한다.

 

어렵지만, 또 재미있고 많이 배우는 시간이 될 것 같아 기대가 된다.