Catchup AI

LangChain + Streamlit = RAG + ChatBot : Streamlit 의 session_state를 사용해 RAG에 대화 기능을 구현합니다

솔웅 2024. 7. 8. 08:14
반응형
이번 시간에는 지난번 LangChain의 RetrievalChain 을 배울 때 사용했던 소스코드를 그대로 사용할 겁니다.
그 소스코드에 Streamlit 의 Session 관련 기능들을 사용해서 ChatBot 기능을 구현해 봅니다.
주요 스트림릿 툴들은 st.session_state(), st.session_message 그리고 st.session_input 등입니다.
이 각 툴들은 어떤 역할을 하고 또 어떻게 사용해야 되는지 알아봅니다.
 
지난 시간에 배웠던 랭체인의 create_history_aware_retriever 도 챗봇 기능을 구현하기 위해 지원되는 기능입니다.
 
둘 다 사용자의 질문과 인공지능의 대답을 저장해 두고 다음 질문 할 때 그 history와 함께 새로운 질문을 인공지능에 보내서 인공지능이 그동안의 질문과 답변을 참고해서 질문의 의미를 좀 더 정확하게 파악할 수 있게 해 좀 더 해당 질문에 정확한 답변을 보낼 수 있도록 해 주는 겁니다.
그리고 그 질문과 답변 history를 브라우저에 표시할 수도 있어서 사용자도 질문과 답변 히스토리를 볼 수 있도록 해 줍니다.
 
랭체인은 스크립트 내 변수에 해당 히스토리를 저장해서 사용하고 스트림릿은 세션단위에서 그 히스토리를 저장해서 사용합니다.
 
그렇기 때문에 둘 다 새로운 브라우저에서 대화를 할 때는 이전 히스토리를 사용할 수 없습니다.
 
이렇게 해당 정보가 휘발되지 않고 다른 브라우저에서 볼 수도 있고 컴퓨터를 껐다가 켜도 그 정보를 사용할 수 있도록 려면 스크립트 내 변수나 브라우저 세션 등 임시 저장공간에 저장을 하지않고 파일이나 DB 등 제 3의 장소에 저장해서 사용해야 합니다.
 
오늘은 스트림릿에서 제공하는 st.session_state 를 사용해서 간단하게 챗봇을 구현하는 기술을 배워 봅니다.
 

 

 

 

유투브 비디오 썸네일로 사용하려고 AI에게 이미지를 그려 달라고 했는데 이렇게 그려 주더라구요.

예쁜 여자 프로그래머를 그려 달라고 했는데 너무너무 예쁘게 그려 주네요.

 

이 그림은 마이크로소프트의 코파일럿 (Copilot) 이 그려 준 겁니다.

실제 썸네일에는  GPT 4o 가 그려 준 아래 이미지를 사용했는데요. 

 

코파일럿과  GPT 4o 각각 자신만의 화풍이 있는 것 같아요.

 

다음 비디오로는  GPT 4o 에게 코딩 시키기를 해 볼 계획입니다.

얼마전 회사에서 필요로 하는 샘플  RAG 웹앱을 만들어야 했는데요. 

이 때 오늘 설명한  기능에서 사용한 소스코드를 base 로 해서 샘플 RAG 웹 앱을 만들었는데요.

저 혼자 하면 며칠은 해야 됐을 것 같은 일을  챗지피티랑 같이 하니까 단 몇시간만에 만들 수 있더라구요.

 

챗지피티가 초보 개발자 한두명 역할은 충분히 하는 것 같습니다.

 

챗지피티에게 코딩을 시키면서 여러가지 생각들이 들더라구요.

 

그 능력에 놀란 부분도 있었고 또 인공지능에게 코딩을 시키기 위해 인간이 가지고 있어야 할 능력이 무엇인지도 생각 해 볼 기회가 있었구요.

또 개발자의 미래 그리고 회사의 management 의 변화 뭐 이런 것들도 생각 해 봤구요.

 

하여간 다음 시간에는 챗지피티에게 코딩을 시켜서 웹 어플리케이션 하나 완성해 보는 과정을 다룰 거구요 또 실제 업무 현장에서 챗지피티와 함께 코딩을 하면서 느낀 점들을 같이 나누고자 합니다.

 

회사에서 주 업무는 클라우드 를 사용한 서버 관리 그 중에 요즘엔 쿠버네티스를 사용한 서버 관리 부분을 하고 있는데요.

 

AI 웹 앱도 컨테이너 기반으로 쿠버네티스를 이용한 서버 환경에서 관리하는 법도 제 블로그와 유투브 채널에 정리해서 올릴 계획입니다.

 

계속 관심 가져 주시고 구독과 좋아요를 눌러 주시면 미국 현장에서 배우는  IT 기술을 나누는 일에 큰 힘이 될 겁니다.

많은 협조 부탁드립니다.

 

https://www.youtube.com/@catchupai

 

Catch Up AI

AI Web Developer 를 준비하면서 공부한 내용을 공유하는 채널 입니다. AI Engineer 가 되고 싶거나 AI 를 실무에서 응용하길 원하는 분들에게 정보를 제공하는 내용으로 채워질 예정입니다. Catch Up AI 는

www.youtube.com

 

 

반응형