본문 바로가기
카테고리 없음

openai - frontend 생성

by 인라인타지마 2023. 7. 13.

프론트앤드

 - 사용자에게 입력을 받아 백앤드에 요청사항을 보내고 리턴된 응답값을 사용자에게 보여줌

 - 개발방안 : 파이썬의 streamlit 라이브러리를 사용

app실행 명령어 : streamlit run [파일명]

 

import streamlit as st
from streamlit_chat import message
import requests

if 'messages' not in st.session_state:
    st.session_state['messages'] = []
    # [{"role": "user", "content": "blahblahblah"},
    #  {"role": "assistant", "content": "blahblahblah"}, ...]

chat_url = "http://localhost:8000/chat"


def chat(text):
    user_turn = {"role": "user", "content": text}
    messages = st.session_state['messages']
    resp = requests.post(chat_url, json={"messages": messages + [user_turn]})
    assistant_turn = resp.json()
   
    st.session_state['messages'].append(user_turn)
    st.session_state['messages'].append(assistant_turn)


st.title("챗봇 서비스")

row1 = st.container()
row2 = st.container()

with row2:
    input_text = st.text_input("You")
    if input_text:
        chat(input_text)


with row1:
    for i, msg_obj in enumerate(st.session_state['messages']):
        msg = msg_obj['content']
        is_user = False
        if i % 2 == 0:
            is_user = True

        message(msg, is_user=is_user, key=f"chat_{i}")


반응형