[8기 랭체인] 크롤링,임베딩,벡터디비,랭체인,RAG, LLM(OpenAI), streamlit, ngrok, Flask 적용 챗봇


안녕하세요!

벌써 마지막 주가 되었군요.

오늘은 위 제목처럼, 다양한 내용들이 적용된 챗봇에 대해서 살펴보겠습니다.

참조 코드 링크

구현 코드 링크

크롤링,임베딩,벡터디비,랭체인,RAG, LLM(OpenAI API), streamlit, ngrok, Flask

  • 먼저 크롤링은 인터넷에서 검색한 블로그의 코드 를 참고하였고,

  • 크롤링해온 최신뉴스기사를 참조 코드와 같이 적용하기 위해서 각 기사를 ‘일자+기사제목’ 의 txt 파일로 구글드라이브에 저장하였습니다. (대략 2300 여개 파일)

  • 이 파일들을 모두 읽어서 임베딩하여 Chroma 벡터DB 에 저장하였고,

  • 랭체인을 적용해서 사용자의 질문에 해당하는 기사들을 벡터DB 에서 가져오고, 이를 질문과 함께 (RAG) OpenAI LLM 모델에 API 로 전달해서, 최적의 답변을 얻어왔습니다.

    RAG (Retrieval-augmented generation) 개념은 한번 그림을 첨부합니다^^ (링크)(링크)

  • UI 서비스를 위해서 streamlit 을 코랩 내부에서 동작시키고

  • 외부에서 코랩으로 접속을 위해 ngrok 을 사용하였으며

  • 코랩 내부에서 다시 Q&A 머신으로 연결하기 위해서 Flask (&ngrok) 를 사용하였습니다.


아래는 시연 캡쳐입니다. (접속링크)
아직은 약 2000여개의 뉴스만 벡터DB 에 임베딩되어 있어서.. 없는 내용은 잘 대답을 못합니다.^^;

아울러,
향후과제는 랭체인을 적용해서 RAG 방식으로 질문+검색결과 를 OpenAI API 를 이용해서 던지면, 많은 토큰으로 인해 과금이 많이 발생하므로, 이를 프롬프트 엔지니어링과 데이터 전처리를 통해서 최적화 하는 방안에 대해서 고민하려고 합니다.

길다면 길고 짧다면 짧은 기간동안, 랭체인 대해 공부할 수 있는 동기를 부여해 주시고 많은 정보를 공유해 주신 여려분들께 감사드립니다.

다들 심한 일교차에 감기 조심하시고 많이 행복하세요~~

감사합니다.!!

5
2개의 답글

(채용) 마케팅 리드, AI 엔지니어, 유튜브 PD, SNS 크리에이터

지피터스의 콘텐츠 플라이휠로 고속 성장할 팀원을 찾습니다!

👉 이 게시글도 읽어보세요