[Open WebUI] sendMessage에서 중복 getChatList 호출 제거
PR 링크: open-webui/open-webui#22982 상태: Merged | 변경: +0 / -3
들어가며
Open WebUI의 sendMessage 함수에서 getChatList가 한 번의 메시지 전송에 두 번 호출되고 있었다. 첫 번째는 saveChatHandler 내부에서, 두 번째는 Promise.all 이후 sendMessage 함수 끝에서 호출된다. sendMessageSocket은 백엔드가 태스크를 수락하면 즉시 반환되므로(스트리밍 완료 전), 두 번째 호출은 동일한 DB 상태를 조회하는 무의미한 중복이었다.
핵심 코드 분석
Before: sendMessage 끝에 불필요한 getChatList 호출
// Promise.all 이후
currentChatPage.set(1);
chats.set(await getChatList(localStorage.token, $currentChatPage));
After: 해당 코드 삭제
- currentChatPage.set(1);
- chats.set(await getChatList(localStorage.token, $currentChatPage));
사이드바는 이미 saveChatHandler에서 갱신되고, 응답 완료 후 chatCompletedHandler에서 다시 갱신된다.
왜 이게 좋은가
- 불필요한 DB 쿼리 제거: 메시지 전송마다 발생하던 중복 API 호출 1회를 제거했다.
- UI 깜박임 방지: 동일한 데이터로 사이드바를 두 번 렌더링하는 것을 방지한다.
- 최소 변경: 단 3줄 삭제로 명확한 성능 개선을 달성했다. 기능 변화 없이 순수한 중복 제거다.
참고 자료
관련 포스트
PR Analysis 의 다른글
- 이전글 [Open WebUI] saveChatHandler에서 불필요한 채팅 목록 재조회 제거
- 현재글 : [Open WebUI] sendMessage에서 중복 getChatList 호출 제거
- 다음글 [triton] AMD WMMA Utilization 개선: Unroll 제거와 상수 폴딩
댓글