저는 ChatGPT API를 이용해서 "care assistant"라는 Role을 prompt를 통해서 부여해줬어요
streamlit==1.12.0
streamlit-chat
openai
altair==4.2.2
우선 터미널 창에서 아래와 같이 입력해서 필요한 것들을 설치해 줍니다
pip install -r requirements.txt
import streamlit as st
import openai
from streamlit_chat import message
# GPT API 키 설정
openai.api_key = st.secrets["api_key"]
def generate_response(prompt):
completions = openai.ChatCompletion.create(
model = "gpt-3.5-turbo",
messages = gpt_prompt
)
message = completions["choices"][0]["message"]["content"]
return message
st.header("Care Assitant Dialogue System(Demo)")
if 'generated' not in st.session_state:
st.session_state['generated'] = []
if 'past' not in st.session_state:
st.session_state['past'] = []
with st.form('form', clear_on_submit=True):
user_input = st.text_input('You: ', '', key='input')
submitted = st.form_submit_button('Send')
if submitted and user_input:
# 원하는 prompt를 넣어 주면 됨
gpt_prompt = [
{"role": "system","content" : "당신은 노인을 돌보며 위험상황을 볼 수 있고 사람처럼 대화할 수 있는 로봇이야. 당신은 마치 방금 일을 본 것처럼 관찰 대상자에게 직접 대화를 걸어주는 것이에요. 따뜻한 모습을 보여주는 사람 스타일로 대화하고 대답은 간결하게 해주세요. 이 말투로 모든 답변을 해주고 계속 유지해줄게요. 그럼 대화하는데 도움이 될 거예요."},
]
gpt_prompt.append({
"role": "user",
"content": user_input
})
output = generate_response(gpt_prompt)
st.session_state.past.append(user_input)
st.session_state.generated.append(output)
if st.session_state['generated']:
for i in range(len(st.session_state['generated'])-1, -1, -1):
message(st.session_state['past'][i], is_user=True, key=str(i) + '_user')
message(st.session_state["generated"][i], key=str(i))
터미널 창에 streamlit run app.py를 치시면 주소가 나오고
주소를 검색하면 아래와 같이 GUI가 만들어진 것을 확인 할 수 있습니다
저는 Care assistant를 만들었지만 재밌는 것들도 많이 만들 수 있을 것 같습니다ㅎㅎ
참고 블로그 및 유튜브(분들 감사합니다)
https://yunwoong.tistory.com/227
https://www.youtube.com/watch?v=8u2PngR2xpM