zhc134's picture
remove extra '
95da7d8
import streamlit as st
import openai
st.title("ChatGPT-Streamlit")
if 'dialogues' not in st.session_state:
st.session_state['dialogues'] = []
def set_api_key():
openai.api_key = st.session_state.api_key
st.text_input('Enter your OpenAI API key', type='password', key='api_key', on_change=set_api_key)
def get_response():
st.session_state.dialogues.append({'role': 'user', 'content': st.session_state.prompt})
st.session_state.prompt = ''
try:
completion = openai.ChatCompletion.create(model="gpt-3.5-turbo", messages=st.session_state.dialogues)
content = completion.choices[0].message.content
except:
content = 'Please enter your OpenAI API key!'
st.session_state.dialogues.append({'role': 'assistant', 'content': content})
return content
def clear():
st.session_state.dialogues = []
st.text_area('Press ctrl+enter or click blank space to send message', on_change=get_response, key='prompt')
st.button('Start a new chat', on_click=clear)
for message in reversed(st.session_state.dialogues):
st.subheader('ChatGPT' if message['role'] == 'assistant' else 'You')
st.write(message['content'])