개발자

파이썬 오류 좀 고쳐주세요 ㅠㅠ

2024년 06월 11일조회 347

import time import requests import streamlit as st API_BASE_URL = "http://localhost:8000/qna" # Fastapi로 api 생성 def request_chat_api(user_message: str) -> str: url = API_BASE_URL resp = requests.post( url, json={ "user_message": user_message, }, ) resp = resp.json() print(resp) return resp["answer"] def init_streamlit(): st.set_page_config(page_title='Dr. KHU', page_icon='🩺') if "messages" not in st.session_state: st.session_state.messages = [{"role": "assistant", "content": "안녕하세요! Dr.seo입니다🩺"}] # Initialize chat history if "messages" not in st.session_state: st.session_state.messages = [] # Display chat messages from history on app rerun for message in st.session_state.messages: with st.chat_message(message["role"]): st.markdown(message["content"]) def chat_main(): if message := st.chat_input(""): # Add user message to chat history st.session_state.messages.append({"role": "user", "content": message}) # Display user message in chat message container with st.chat_message("user"): st.markdown(message) # Display assistant response in chat message container assistant_response = request_chat_api(message) with st.chat_message("assistant"): message_placeholder = st.empty() full_response = "" for lines in assistant_response.split("\n"): for chunk in lines.split(): full_response += chunk + " " time.sleep(0.05) # Add a blinking cursor to simulate typing message_placeholder.markdown(full_response) full_response += "\n" message_placeholder.markdown(full_response) # Add assistant response to chat history st.session_state.messages.append( {"role": "assistant", "content": full_response} ) if __name__ == "__main__": init_streamlit() chat_main() 이 코드를 실행시키면 자꾸 AttributeError: st.session_state has no attribute "messages". Did you forget to initialize it? More info: https://docs.streamlit.io/library/advanced-features/session-state#initialization 라고 뜨네요..

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 2

백승윤님의 프로필 사진

와! 커리어리 QnA에서 Streamlit 질문을 만나게 되다니 이제서야 본게 괜히 죄송스럽네요. (저 Streamlit 짱 좋아합니다.) 음 제가 일단 제 로컬에서 streamlit 버전 1.35.0 로 실행해봤는데 잘 실행되는 것 같은데요? 우선 버전은 바꿔보시겠어요? 그리고 코드 안에 st.session_state에 message가 없을 때, initialize해주는 코드가 좀 중복되는 것 같은데 그 부분도 우선 수정해보시겠어요? 에러랑은 관련 없을 것 같긴합니다만..

profile picture

익명

작성자

2024년 06월 18일

감사합니다!

최용빈님의 프로필 사진

제가 작성한 코드인데 여기서 보게 될 줄은 몰랐네요,,, 세션 초기화가 중복되는 거 말고는 다른 부분은 문제 없던 걸로 기억합니다! 개선하는 작업을 하는 레포가 있으니 여기 참고해주시면 될 거 같아요 :) https://github.com/whybe-choi/advanced-rag-project/blob/main/app.py

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!