v1.3.0
⚙️ 새로운 기능을 개발했습니다.
LLM 응답 중단 기능 개발
- 버튼 클릭 시 응답을 받는 reader를 cancel하여 즉시 중단 #95
- 응답 중단 요청 API 연동 #99
- AbortController로 Open AI API 강제 중단 #97
- 사용자 요청이 들어오면 nginx request id를 key로 Map에 AbortController 저장
- LLM API와 AbortSignal 연동
- 응답 스트리밍 API에서 AbortError를 감지하면 응답 즉시 중단
🫶🏻 사용성 개선에 힘썼습니다.
RAG 질문 history 구현 #91
- 이전 질문 내역을 관리하는 상태 추가
- zustand를 사용하여 상태 관리
- 최신 질문과 이전 질문 목록을 분리하여 관리
- 최신 순으로 구현
- QnA 컴포넌트 분리 및 디자인 변경
- 스크롤 이동 시 애니메이션 추가
useEffect
: 최신 질문 변화 감지scrollIntoView
: 최신 질의 컴포넌트로 스크롤 이동
키워드 기반 검색 및 hybrid 검색 성능 개선 #93
- 한국어 형태소 분석기 mecab 설치 후 postgres와 연동
- tsvector 저장할 때 mecab 사용하여 키워드 저장
- 검색할 때 문서 내용보다 문서 제목에 높은 가중치
- 문서를 구분하지 못 하는 이슈가 있어 검색한 문서를 prompt에 넣어줄 때 구분자 추가
API 서버의 스케줄러를 별도 서버로 분리 #90
- 원격 서버에 GPU가 없어 임베딩을 CPU로 수행
- 여러 문서에 대한 임베딩 수행 시 Nest 메인 스레드가 블록킹 되어 API 요청이 늦어지는 이슈 발생
- 임베딩 로직을 별도의 프로세스로 분리하여 임베딩 수행 도중 API 요청 가능
DB 모듈 분리 #90
- backend 서버와 scheduler를 별도의 workspace로 분리하면서 DB 로직 중복
- Nest library 기능 활용하여 DB 로직 library로 분리
What's Changed
- Refactor be #37 by @ezcolin2 in #88
- API 서버의 스케줄러를 별도 서버로 분리 by @ezcolin2 in #90
- RAG 질문 history 구현 by @pkh0106 in #91
- 키워드 기반 검색 및 hybrid 검색 성능 개선 by @ezcolin2 in #93
- 응답 생성 중단 기능 구현 by @pkh0106 in #95
- LLM 응답 중단 기능 개발 by @ezcolin2 in #97
- 스트리밍 응답 중단 API 연동 by @pkh0106 in #99
- RAG 답안 react-markdown 적용 by @pkh0106 in #100
Full Changelog: v1.2.1...v1.3.0