• 단, 맨 처음 저장된 system_message는 화면에 출력되지 않아야 하므로 idx > 0이라는 조건을 넣어 사용자가 처음 대화한 내용부터 출력되게 합니다.
(16) 세션 상태 리스트에 사용자의 질문 추가 : 사용자가 입력한 질문을 st.session_state.messages에 추가합니다. 리스트명.append()는 리스트에 새 요소를 삽입하는 명령입니다.
(17) API 요청 및 응답
• AI 모델에 요청을 보내고 응답을 받습니다. 이때 messages로 st.session_state.messages를 전달하면 AI 모델은 st.session_state.messages에 저장된 모든 대화를 참고해 맥락을 이해하고 답변을 생성합니다.
• 챗봇의 응답 메시지를 st.write_stream()으로 화면에 출력한 후 response 변수에 저장합니다.
(18) 세션 상태 리스트에 챗봇의 응답 추가 : response 변수에 저장한 챗봇의 응답을 st.session_state.messages에 추가합니다.
TIP (17)번에서 client.chat.completions.create()의 stream=True 뒤에 쉼표를 넣어도 되고, 안 넣어도 됩니다. 쉼표를 넣으면 나중에 인자를 추가할 때 편리합니다. 단일 줄에서는 쉼표를 생략하고 여러 줄에서는 쉼표를 넣는 경우가 많습니다.