Challenge/Inflearn

[Do It LLM] 챌린지 기록 1주차: 스트림릿 챗봇

graph-dev 2025. 9. 28. 12:13
728x90

[목차 상세]

03-3 스트림릿으로 챗봇 완성하기
_[Do it! 실습] 스트림릿으로 챗봇 UI 만들기

 

스트림릿

 

스트림릿은 파이썬 기반으로 쉽게 웹 UI를 만들 수 있어 편리합니다.

 

스트림릿으로 이전 게시글에 만든 챗봇을 제작해보겠습니다.

 

스트림릿 홈페이지로 들어가서, playground를 누르고, 예제 코드를 가져옵니다.

https://streamlit.io/playground

 

Playground • Streamlit

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

 

코드를 작성합니다. 교재에서 제공한 코드 일부를 가져왔습니다.

# (0) 사이드바에서 api_key 입력하는 부분 
with st.sidebar:
    openai_api_key = os.getenv('OPENAI_API_KEY') 
    # openai_api_key = st.text_input("OpenAI API Key", key="chatbot_api_key", type="password")
    "[Get an OpenAI API key](https://platform.openai.com/account/api-keys)"
    "[View the source code](https://github.com/streamlit/llm-examples/blob/main/Chatbot.py)"
    "[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/streamlit/llm-examples?quickstart=1)"

st.title("💬 Chatbot")

표기되는 이미지

 

"Chatbot"을 제목으로 하면, 위와 같이 표기됩니다. 

# (1) st.session_state에 "messages"가 없으면 초기값을 설정
if "messages" not in st.session_state:
    st.session_state["messages"] = [{"role": "assistant", "content": "How can I help you?"}]

# (2) 대화 기록을 출력
for msg in st.session_state.messages:
    st.chat_message(msg["role"]).write(msg["content"])

# (3) 사용자 입력을 받아 대화 기록에 추가하고 AI 응답을 생성
if prompt := st.chat_input():
    if not openai_api_key:
        st.info("Please add your OpenAI API key to continue.")
        st.stop()

 

 

http://localhost:8501 로 접속하면 웹 페이지를 확인할 수 있습니다.

 

렌더링된 페이지는 아래와 같습니다.

 

 

 

멋모르고, python streamlit_basic.py 를 입력하면 이렇게 나타나며 실행되지 않습니다.

python3 스트림릿_파이썬파일.py ## 실행되지 않음

주의

 

streamlit 자체 명령어를 사용하는 것으로 보이네요. 실행할 때는 streamlit run 파이썬파일.py 로 실행해야겠습니다.

 

streamlit run 파이썬파일.py

 

 

또한, 새롭게 추가적인 정보는 알지 못합니다. 즉, GPT 모델이 학습되어있는 범위까지 정보만 저장되어 있습니다. 따라서, 오늘의 날씨를 물어보면 대답하지 못합니다.

한계

 

이것으로 streamlit으로 챗봇 만들기를 마치겠습니다.