껍데기만 RAG의 탈(?)을 쓴 가라 챗봇을 만들었던 실패를 딛고
다시 제대로 RAG로 동작하는 챗봇을 구축해 보고자 다시 도전!
Gemini에게 상담을 받아보니....
RAG로 건 지식 내용이 사용자의 질문들과 시맨틱 검색을 해도
의미상 연결이 잘 안되는 것들이라서 그런 것 같다는 결론을 얻고
또한, 노드 구성 시, 앞단의 결과물을 되도록 입력 값으로 넣어야 하는데
sys.query를 넣은 경우들도 문제인 것 같다는 의견을 듣고 수정 필요성을 느낌
그래서 지식 파일부터 대대적으로 공사에 들어감.
워런 버핏의 투자 철학 보다는
실제 투자 포트폴리오 구축과 관리, 기업 내재 가치 분석, 투자 철학 및 격언 등으로 focus해서
자료 조사를 다시 하고, 그에 맞게 md file들을 세세하게 쪼개서 준비함
그래야 Dify 가 검색할 때 의미론적으로 잘 찾아서 넣어줄 수 있다라는 조언을 듣고
하나 또 배움
또한, 파일 이름도 그냥 막 짓는 게 아니라 의미론적으로 Dify가 검색 잘 할 수 있게
정성들여서 지었음
이 내용들로 indexing하고 이상 없는지 확인함.
잘게 쪼개서 넣었기 때문에 잘린 경우는 없었고,
문서 분량이 적어서 AI가 Lost in the middle 현상을 일으킬 염려도 거의 없는 듯함
전체 워크 플로우를 다시 짜고
노드간에 연결시 변수 구성 및 프롬프트 설정을 다시 꼼꼼하게 물어가면서 세팅함
앞서 실패했을 때는 질문 분류기 뒤의 knowledge retrieve 노드에 쿼리 변수를
sys.query로 설정했었는데,
이번에는 질문 분류기에서 나온 class name 변수를 넣어줌
(이렇게 하는 거구나라는 것을 이제서야 깨닫고 배움)
그리고 LLM의 설정과 프롬프트도 정신차리고 Gemini에게 물어보면서 다시 설정함
또한, 워런 버핏의 투자 관련한 내용이 아닌 질문은
바로 모릅니다로 답변하도록 하드코딩함
Test 해보니
우선, 투자 격언 문의하니,