ChatGPT Prompt Engineering - Chatbot

박하영·2023년 7월 7일
1

LLM

목록 보기
4/4
post-thumbnail
post-custom-banner

prompt tunning

저는 ChatGPT API를 이용해서 "care assistant"라는 Role을 prompt를 통해서 부여해줬어요

requirements.txt

streamlit==1.12.0
streamlit-chat
openai
altair==4.2.2

우선 터미널 창에서 아래와 같이 입력해서 필요한 것들을 설치해 줍니다
pip install -r requirements.txt

app.py

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

profile
NLP 파이팅해야지!
post-custom-banner

0개의 댓글