마일스톤 달성을 위한 일정관리 앱 -- 일정확인 챗봇 추가

아래 일정 중 chatbot 만들기와 calendar 에 timegroup 추가 하기를 진행 하였습니다.
(완벽한 기능적 마무리 보다는 전박적인 진도 나가기에 집중 하였습니다.)

  • 1주차 : goal & action 입력, 수정, 삭제 기능 만들기

  • 2주차: chatbot기능 추가하고 text-to-sql 관련 backend 로직 구체화 하기

  • 3주차: calendar 에 timegroup 지정하기

  • 4주차: action 를 자동 배치하기 및 사용자 피드백에 따라 일정 재배치

챗봇만들기 위한 과정

flutterflow 에서 drag & drop 방식으로 widget 를 하나씩 만들다가는 일정 맞출 수 없을 듯 하여public widget 를 사용하는 방식으로 목표를 수정 하였습니다.

먼적 flutterflow 와 Cursor AI 의 유료 버전이 필요 하였습니다. (Code download 기능 때문에 $27 를 지출 합니다. ㅠㅠ )

pub.dev 사이트에서 chat 관련 package 를 검색하여 남들이 제일 많이 사용하는 것은 선택 합니다.

chatview 2 0 웹사이트의 스크린샷

flutterflow 에서 custom widget 를 작성하는 곳에 Pubspec dependencies에 패키지 이름을 작성 한 후 code download 하여 Cursor AI 에서 채팅으로 코드를 작성 합니다. (Apply 기능 때문에 추가 $20 결제 합니다. ㅠㅠ)

컴퓨터의 코드 편집기 스크린샷

아래는 chat 을 추가한 App 페이지 뷰 입니다 . (디버깅은 web 상이 편하여 chrome 에서 작업합니다.)

한국어 문자 메시지 스크린샷

이 때, 메세지를 작성하고 send 버튼을 누르게 되면 n8n workflow 의 webhook 으로 메세지가 전달 되도록 코드 추가 합니다.

n8n 에서는 2개의 AI Agent 를 사용하며, text-to-sql 용 과 output summarization 용으로 사용 합니다.

머신러닝 시스템의 프로세스를 보여주는 다이어그램

프롬프트에는 전달받은 message 와 DB schema 를 작성합니다. 초기에는 성공률이 높지 않았지만 querying 실패 내용을 추가 하다보니 어느정도 성공 확률이 높아 집니다.

깨달음 점:
1) text-to-sql 은 4o-mini 로는 fail 이 많다. 4o 는 어느정도 성공률을 보장한다.
2) 특정 목적의 텍스트는 querying fail 이 반복 하는데, 에러 로그를 추가 하였더니 해결 되었다.
3) "Goal 관련 Action 항목 구체화" 라는 메인 기능도 4o-mini 를 사용하는데, 서브 기능인 chat 을 4o 를 사용한다면 생산성이 나오지 않겠다. 프롬프트 구체화를 해서라도 4o-mini 로 낮춰야 할 것 같다.

여러 줄의 텍스트가 포함된 문서의 스크린샷

그리고 sql 결과물을 chat 에 response 하였더니 기계적 응답처럼 너무 딱딱하게 느껴져서 사용자 요약을 추가하였습니다.

결과물에 대한 아쉬운점

아직도 querying fail 이 너무 많아서 프롬프트 튜닝이 필요할 것지만, 전박적인 기능 개발도 빠듯하니 chat 성능은 후순위로 진행해야 할 듯 합니다.

그리고 아래와 같이 태그에 따라 action 을 시키고 싶지만 chat package 들은 custom 하기에 한계가 많다 입니다. + sql 문에 가깝도록 message 가이드 기능이 필요할 듯 하여 직접 widget 을 만들어야 겠다는 생각이 들었습니다.

흰색 배경에 흰색 배터리

todoist.com 처럼 message 작성 시, 태그 기반의 가이드 문구가 뜨도록 하도록 하면 querying fail 를 더 줄일 수 있을 것 같다 입니다.

4
1개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요