RAG

패스트캠퍼스 환급챌린지 13일차 : 테디노트의 RAG 비법노트 강의 후기

Sssadie 2025. 11. 24. 21:58
반응형

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

 

Ch 2. 미니 프로젝트

 

https://streamlit.io/   :  간단한 코딩으로 웹사이트를 만드어주는 도구 

 

Streamlit • A faster way to build and share data apps

Streamlit is an open-source Python framework for data scientists and AI/ML engineers to deliver interactive data apps – in only a few lines of code.

streamlit.io

 

웹 사이트 만들기

#streamlit 가져오기
import streamlit as st

#타이틀 입력
st.title("나의 ChatGPT")

 

 

웹사이트를 띄우는 명령어(@Terminal)

streamlit run 파일명.py

 

 

공허한 사이트에 작성한 타이틀만 들어가 있습니다.

 

 

 

 

사용자 입력이 들어오면, 사용자 입력을 user_input에 넣어뒀다가 그대로 출력

import streamlit as st

st.title("나만의 ChatGPT")

# 사용자의 입력
user_input = st.chat_input("궁금한 내용을 물어보세요!")

# 만약에 사용자 입력이 들어오면..
if user_input : 
    st.write(f"사용자 입력 : {user_input}")

 

import streamlit as st

st.title("나만의 ChatGPT")

# 사용자의 입력
user_input = st.chat_input("궁금한 내용을 물어보세요!")

# 만약에 사용자 입력이 들어오면..
if user_input:
    st.chat_message("user").write(user_input)

 

st.chat_message("user").write(user_input) 

with st.chat_message("user"):
    st.write(user_input)

 

import streamlit as st

st.title("나만의 ChatGPT")

# 사용자의 입력
user_input = st.chat_input("궁금한 내용을 물어보세요!")

# 만약에 사용자 입력이 들어오면..
if user_input:
    st.chat_message("user").write(user_input)
    st.chat_message("assistant").write(user_input)

사용자 입력을 AI가 똑같이 반복 출력

but, 대화 내역이 쌓이지 않고, 페이지가 새로고침이 일어나면 매번 대화가 처음부터 다시 시작됨.

 

 

session_state  : 새로고침이 일어나도 대화 내역을 저장해주는 기능

→ 키와 밸류 형식으로 지정함

 

 

import streamlit as st
from langchain_core.messages.chat import ChatMessage

st.title("나만의 ChatGPT")

# 처음 1번만 실행하기 위한 코드
if "messages" not in st.session_state:
    # 대화 기록을 저장하기 위한 용도로 생성
    st.session_state["messages"] = []


# 이전 대화 출력
def print_messages():
    for chat_message in st.session_state["messages"]:
        st.chat_message(chat_message.role).write(chat_message.content)


# 새로운 메시지 추가
def add_message(role, message):
    st.session_state["messages"].append(ChatMessage(role=role, content=message))


print_messages()

# 사용자의 입력
user_input = st.chat_input("궁금한 내용을 물어보세요!")

# 만약에 사용자 입력이 들어오면..
if user_input:
    # 웹에 대화를 출력
    st.chat_message("user").write(user_input)
    st.chat_message("assistant").write(user_input)

    # 대화기록을 저장
    add_message("user", user_input)
    add_message("assistant", user_input)

 


 

 

아직은 단순히 앵무새처럼 사용자가 한 말을 AI도 반복하는 채팅을 구현해봤어요. 코드가 점점 길어지니까 헷갈리고 뭐가 뭔지 잘 모르겠지만 문법 공부하듯 익혀야 하는 것 같아요. 이렇게 실습해보니까 어떤 내용을 배우고 있는건지 감이 잡히네요. 물론 공부가 더 필요한 것 같아요. 역시 코딩은 쉽지않아ㅠㅠㅠㅠ중간에 오류 나서 영상 코드랑 비교해보면서 찾았더니..한 강의만 들었는데 시간이 이렇게나 많이 지나갔네요...좀더 꼼꼼하게 보고 놓치지 않도록 노력해야겠어요!!!

 

 

 

 

커리어 성장을 위한 최고의 실무교육 아카데미 | 패스트캠퍼스

성인 교육 서비스 기업, 패스트캠퍼스는 개인과 조직의 실질적인 '업(業)'의 성장을 돕고자 모든 종류의 교육 콘텐츠 서비스를 제공하는 대한민국 No. 1 교육 서비스 회사입니다.

fastcampus.co.kr

 

 

반응형