배경 및 목적
구글캘린더를 자연어로 편하게 입력하고 관리하고자 합니다.
참고 자료
대략적인 이해를 위해 랭체인에 관한 유튜브 1~2편 보았습니다.
활용 툴
ChatGPT
클로드3.5
POE
실행 과정
어려운 기능은 클로드 3.5에 맡겼습니다. ChatGPT가 해결 못하는 문제를 해결해줄 때가 있었습니다. 물론 역상황도 존재합니다.
그리고 코드 리팩토링이나 전체적인 개선이 많이 필요한 경우에는 ChatGPT에게 임무를 할당하였습니다. ChatGPT는 코드 생성 시 '계속 생성하기' 버튼이 나오기 때문에 온전한 코드를 얻어내는 것이 클로드에 비해 좋았습니다.
리밋의 경우 클로드 3.5는 금방 제한이 되는 경향이 있 어 ChatGPT와 혼용하여 사용하였습니다.
만약 둘다 다 쓴 경우나 클로드 3.5를 더 활용하기 위해서는 POE 를 유료결재하여 수시로 활용하였습니다. 거의 무제한 급으로 리밋없이 쓸 수 있어서 POE 도 코드 생성에 있어서 좋은 것 같습니다.
결과 및 인사이트
1) 생성형 인공지능을 통해 프로그램을 만들 수 있다는 점을 알았습니다.
2) 랭체인 기능을 활용해 자연어로 일정을 등록할 수 있음을 확인했습니다.
3) 랭체인 기능을 활용해 자연어로 일정에 대한 계획을 생성할 수 있음을 확인했습니다.
4) 생성형 인공지능마다 특징이 다름을 확인했고 앞으로 커서도 한번 써보고 싶긴 합니다.
<앞으로의 개선 방향>
웹서비스 혹은 구글 크롬 확장 프로그램으로 만들어보기 (스티림릿 활용 예정)
EXE파일로 만들어서 배포해보기 (EXE 만들기는 Pyinstaller로 6시간만에 성공 ㅠ.ㅠ 눈물, 생성형 인공지능의 도움을 받아 겨우 성공했습니다 .spec 확장자를 이용하여 시도)
일정에 대한 요약 정보를 카카오톡 챗봇 혹은 텔레그램 챗봇으로 받아보는 기능 추가해보기
일정에 대한 꾸준한 알림 정보를 사용자 설정에 의거하여 각종 챗봇으로 받아보기 기능
목표 관리, 할일 관리를 바탕으로 한주의 일정을 꾸준히 개선해주는 기능
일정 체크에 따른 캘린더 일정 관리 기능 개선 업데이트
계획, 목표 설정, 시간 관리와 관련된 내용으로 RAG기능을 한번 적용
종일 일정과 시간 기반 일정 구분하여 등록하기 기능 등
코드 내용을 바탕으로 랭체인에 대해 설명할 수 있을 정도록 설명력과 이해력 높이기
코드 내용 정리
코드가 속한 폴더를 어느정도 깔끔하게 정리하기
프롬프트를 더 좋게 개선하기 (어떤 자연어에도 능숙하게 대응하게 만들기)
전체적인 GUI
중국어 텍스트가 포함된 달력이 표시된 컴퓨터 화면
1) 캘린더 뷰 기능을 추가하였습니다
2) 일정을 3개로 구분하여 표시하는 기능을 추가하였습니다
3) 대화하는 챗봇을 구현했습니다.
-> 사용자는 자연어로 대화하며 일정을 추가할 수 있습니다.
-> 챗봇을 통해 일정 추가, 일정 수정, 일정 삭제 기능까지 가능합니다
4) 자연어로 일정 추가 기능을 추가했습니다.
-> 특정 프롬프트를 설계하여 사용자의 자연어를 분석하여 제목, 시작시간, 종료시간을 뽑아냅니다.
5) 자연어로 일정 계획 생성 기능을 추가했습니다.
-> 특정 프롬프트를 설계하여 사용자의 아이디어를 기반으로 하여 제목, 시작시간, 종료시간의 형태로 일정을 만들어냅니다.
6) 캘린더의 일정을 수정하거나 삭제하는 기능을 추가하였습니다.
7) 폰트 설정 기능을 추가하여 GUI의 폰트를 수정할 수 있습니다.
랭체인과는 별 상관없지만 제 일상에 꼭 필요한 기능을 생성형 인공지능과 호흡하며
8) 북마크 기능, 단축키 설정 기능, 북마크 관리 기능을 만들었습니다
컴퓨터 화면에 숫자 목록이 표시되는 화면
해당 단축키도 별도로 표시되게끔 했습니다. 이제 사용자는 해당 단축키를 누르면 쉽게 웹사이트에 새탭으로 해당 링크를 띄우게 됩니다. 여러 시행착오 끝에 keyboard 라이브러리를 거쳐 pynput으로 정착하였습니다.
한국 컴퓨터 화면의 스크린샷