소개
시도하고자 했던 것과 그 이유를 알려주세요.
: 옵시디언을 하고자 했던 가장 큰 이유인, customized dataset에 기반한 나만의 chatbot을 써보는 것을 해보고자 했솝니다.
진행 방법
어떤 도구를 사용했고, 어떻게 활용하셨나요?
: 옵시디언 플러그인 Smart Composer, Gemini API, 원하는 문서 취합(업무 관련 문서)
[1] Smart Composer를 플러그인 Browser에서 검색하여 설치.
[2] Gemini API 키 발급 (api 발급 사이트: https://aistudio.google.com/apikey)
[3] ChatBot에 활용할 문서를 취합.
→ 여기서 제가 확인해보고 싶은 것은, "chatbot이 실무에 활용할 수 있을 만큼 유용한가?" 였습니다.
→ 이를 확인하기 위해서 문서를 단순히 긁어오는 것이 아닌, 있어야 할 정보와 없어도 될 정보를 사람이 선별하고 정리해야 한다는 것을 알 수 있었습니다.
[결과와 배운 점]
배운 점과 나만의 꿀팁을 알려주세요.
: 위에 언급하 기도 했지만, Smart Composer가 내가 원하는 수준의 답변을 얻기 위해서는,
첫째, 옵시디언에 쌓아놓을 DB를 ChatBot이 참고하기 알맞도록 정리가 될 수록 chatbot의 퀄리티가 향상된다는 것을 알 수 있었습니다. 예를 들어, 저는 온라인에 있는 특정 상품의 매뉴얼을 DB화 하려고 했는데요, 단순히 Copy and Paste를 해서 DB를 만드는 것보다 핵심 내용과 답변에 필요한 정보가 하이라이트 되도록 정리했을 때 답변의 퀄리티가 좋아지는 것을 확인할 수 있었습니다.
둘째, Smart Composer를 쓸 때도 (어쩌면 당연하지만)Prompt Engineering이 필요한 것을 배울 수 있었습니다. 예를 들어, 저는 답변을 받을 때 문서의 "몇 번째 줄"을 참고해서 답변했는지를 알고 싶었고, prompt를 입력할 때 항상 reference를 기재하도록 하니 간단히 구현할 수 있었습니다.
(하단 그림의 블럭 처리된 부분)
[다음에 할 것]
: 현재는 하나의 문서 내에서 수행한 것인데요, 다양한 문서를 통합적으로 읽고 답변하기 위해서는 어떻게 할지 고민해보려 합니다.
물론 @로 문서나 폴더를 호출해서 Smart Composer에서 조회하도록 할 수 있는데, 문서가 너무 많으면 Chunking을 하는 과정(RAG를 위한)에서 waiting이 너무 길어지거나 혹은 멈추게 되어서.. 이를 해결하려면 어떻게 할지 고민해보려 합니다.