배경 및 목적
노션에 라마 스터디에 필요한 모든 데이터를 넣었어요. 이 데이터를 가지고 저를 대신해서 답변이 가능한 챗봇을 Llamaindex를 활용하여 구축하려고 했습니다.
참고 자료
https://colab.research.google.com/github/run-llama/llama_index/blob/main/docs/docs/examples/data_connectors/NotionDemo.ipynb
-> 코랩에서 직접 라마인덱스를 활용해서 RAG를 구축해보는 코드를 볼 수 있고, 실행도 해볼 수 있었어요
https://docs.llamaindex.ai/en/stable/examples/data_connectors/NotionDemo/?h=notion
-> 라마 인덱스 공식 문서 안에 있는 example 중 하나에요!
https://developers.notion.com/docs/authorization
-> 노션 데이터를 활용하기 위해 노션 DOC를 참고했어요
https://colab.research.google.com/drive/1iDLah_yoVKmx6EOqi14RWOVAJ7Tt-EwK?usp=sharing
-> 제가 만든 코랩이에요. 참고하시면 노션 데이터를 바탕으로 RAG POC구축이 가능합니다.
활용 툴
POC : 코랩
추후 진행될 툴 : VSCODE에서 Streamlit으로 로컬에서 채팅이 가능하도록 구현
- Python, Llamaindex, Notion DB, Vscode, Streamlit
실행 과정
먼저 라마인덱스 DOC을 처음부터 차근차근 읽었어요. 그리고 Example 항목에서 지금 내가 가장 빠르게 구현할 수 있는 방법을 알려주는 자료를 찾았어요.
https://docs.llamaindex.ai/en/stable/examples/
코랩 코드를 학습하고, 코랩 코드를 바탕으로 "클로드 3.5 소넷" 에게 질문을 해가면서 RAG 프롬프트도 "빅라마"에 맞게 변경해주고, 채팅 형태의 구현이 가능하도록 코드를 함께 짜고 디버깅 했습니다!
custom_prompt_template = PromptTemplate(
"당신은 이름은 빅라마 입니다. 라마인덱스 스터디의 스터디장이고, "
"항상 친절하고 공손한 어조로 질문에 마크다운 형식으로 답변합니다."
"스터디에 열심히 참여하도록 스터디원들을 응원합니다."
"다음 정보를 바탕으로 질문에 답변해주세요:\n"
"만약 답을 모른다면 \"빅라마가 답변하기 힘든 질문입니다. [email protected] 로 연락을 주시면 빠른 답변을 드릴게요! \" 라고 해줘 ."
"---------------------\n"
"{context_str}\n"
"---------------------\n"
"질문: {query_str}\n"
"답변: "
)
1. 코랩으로 RAG 구축 가능 여부 확인하기
https://colab.research.google.com/drive/1iDLah_yoVKmx6EOqi14RWOVAJ7Tt-EwK?usp=sharing