본문으로 건너뛰기

[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에서 다시 갱신된다.

왜 이게 좋은가

  1. 불필요한 DB 쿼리 제거: 메시지 전송마다 발생하던 중복 API 호출 1회를 제거했다.
  2. UI 깜박임 방지: 동일한 데이터로 사이드바를 두 번 렌더링하는 것을 방지한다.
  3. 최소 변경: 단 3줄 삭제로 명확한 성능 개선을 달성했다. 기능 변화 없이 순수한 중복 제거다.

참고 자료

댓글

관련 포스트

PR Analysis 의 다른글