DragGPT + Stream
취미로 하는 개발

DragGPT + Stream

 

DragGPT 익스텐션이 기본적으로 non-stream으로 동작하다 보니, 응답을 다 받기까지의 로딩 속도가 매우 답답하게 느껴지는 부분이 있었다.

 

고쳐야지... 하고 매번 생각만 하며 게으름을 피우다 보니 이제야 작업을 하게 되었다.

 

기존에 DragGPT를 만들며 재미있게 개발했던 포인트 중 하나는 XState였는데, 사실 이번에 코드를 오랜만에 보는 만큼 XState가 낯설게 느껴지지 않을까 하는 걱정이 있었다. 그러나 실제 개발 단계에서는 걱정을 무색하게 만들 정도로 편하게 작업할 수 있었다.

 

기존 채팅 상태머신에 receiving 상태를 하나 추가해서 작업하는 것만으로도 관심사를 많이 좁혀서 작업할 수 있었는데, state 패턴의 장점을 극한까지 느낀 것 같았다.

 

 

작업을 하면서 알게 된 사실인데, openai chat completion api에는 steam 모드에서 요청을 취소하는 기능이 없었다;;

 

물론 클라이언트 입장에서는 chunk 단위로 유저의 stop 지점에서 끊어서 저장하는 등의 작업을 할 수는 있었으나, api 서버 컴퓨팅 자원의 불필요한 사용을 막기 위해 중단 요청을 보낸다거나 하는 기능은 끝내 찾지 못했다.

 

그 밖에도 chrome.port를 사용한 에러 전달 과정에서 겪은 이상한 이슈(?)도 있긴 한데 아직 파악이 되지 않아 어떻게 공유를 해야 할지 모르겠다.

 

뭐 어쨌든... 미뤄왔던 숙원 사업을 하고 나니 이번 연휴를 너무 무익하게 보내는 것 같지는 않아서 기분이 좋다.

 

 

 

https://nookpi.tistory.com/166

 

DragGPT chrome extension 개발기

배경 최근 ChatGPT 열풍이 거세다. 연구 영역에 있던 생성 AI의 위치를 대중에 가깝게 옮기면서 대중들로 하여금 급격한 기술 발달이 이뤄지고 특이점이 왔다(?)는 생각을 하게 만드는 것 같다. 기

nookpi.tistory.com