반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

카테고리


반응형
이번 시간에는 지난번 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

 

 

반응형


반응형

LangChain - RAG - create_history_aware_retriever

 

지난 시간까지 RAG의 기본 기능을 배웠습니다.

AI Web Application에서 기본적으로 제공되어야 하는 것은 ChatBot 기능입니다.

 

이를 위해서는 Chat History를 관리해주는 기능이 추가 되어야 합니다.

AI는 이전 대화 내용을 기억하지 못하기 때문입니다.

 

이런 AI의 부족한 부분을 채워 주는 LangChain의 Retriever 가 바로 create_history_aware_retriever 입니다.

 

AI 하고 말이 통하게 만들어 주는 바로 그 Retriever.

 

오늘은 create_history_awere_retriever에 대해 배웁니다.

 

https://youtu.be/EQ6c9309T8c

 

오늘 매울 AI Web Application link는 아래에 있습니다. https://catchuplangchain.streamlit.app/LC_Quickstart_03_ConversationRetrievalChain

 

 

 

반응형


반응형

 

 

이번 비디오의 내용은 지난 비디오의 보충수업입니다.

 

지난 강좌에서 LangChain에서 Retrieval 함수를 사용해서 RAG의 가장 기본적인 기능을 구현 했습니다.

그것을 통해서 데이터 수집 - 데이터 split - 임베딩 처리 - 벡터스토어에 저장 - Retrieval - LLM 과 communication 이런 RAG의 기본적인 프로세스를 이해 했습니다.

 

이번에는 그 기능에 더해 데이터를 vector store에 저장하고 그 저장한 데이터를 Retrieval 하는 과정에서 어떻게 데이터를 가공하는지를 자세하게 알아 봅니다.

 

데이터를 어떻게 가공하느냐에 따라 성능과 속도 그리고 비용에까지 영향을 미칠 수 있습니다.

장문의 입력 데이터를 임베딩 처리 하기 전에 Chunk로 split 할 때 개발자는 어떤 것을 어떻게 control 해서 최적화를 시킬 수 있는지…

 

그리고 Vector store 에서 Retrieval 할 때 어떤 옵션들이 있고 그것을 어떻게 사용하는지를 설명했습니다.

실력있는 개발자는 단순히 기능만 구현하는 것 이외에 성능, 속도, 비용까지 고려 합니다.

한번 배울 때 확실하게 배워서 진짜 실력있는 개발자가 됩시다.

 

https://youtu.be/qC1GGZDyB14

 

 

 

반응형