aaronW/chat-robot
1
1import streamlit as st2from streamlit_chat import message3 4import openai5openai.api_key = st.secrets["open_api_key"]6 7# openAI code8def openai_create(prompt):9 response = openai.Completion.create(10 model="text-davinci-003",11 prompt=prompt,12 temperature=0.9,13 max_tokens=1000,14 top_p=1,15 frequency_penalty=0,16 presence_penalty=0.6,17 stop=[" Human:", " AI:"]18 )19 return response.choices[0].text20 21# Streamlit App22st.set_page_config(23 page_title="Streamlit Chat - Demo",24 page_icon=":robot:"25)26 27# st.header("GPT 3.5 with Streamlit\nChatGPT API即将到来")28 29if 'generated' not in st.session_state:30 st.session_state['generated'] = []31 32if 'past' not in st.session_state:33 st.session_state['past'] = []34 35 36def get_text():37 input_text = st.text_input("You: ", key="input0")38 return input_text 39 40if 'key' not in st.session_state:41 st.session_state['key'] = st.text_input("key: ", key="input1")42 43elif st.session_state['key'] == st.secrets["login_key"]:44 user_input = get_text()45 if user_input:46 prompt = 'The following is a conversation with an AI assistant. The assistant is helpful, creative, clever, and very friendly.'47 if st.session_state['generated']:48 for past, generated in zip(st.session_state['past'], st.session_state['generated']):49 if len(generated)>0:50 prompt += f'\nHuman:{past}\nAI:{generated}'51 prompt += f'\nHuman:{user_input}\nAI:'52 print(prompt)53 output = openai_create(prompt)54 print(f'{user_input} -> {output}')55 st.session_state.past.append(user_input)56 st.session_state.generated.append(output)57 58 if st.session_state['generated']:59 for i in range(len(st.session_state['generated'])-1, -1, -1):60 message(st.session_state["generated"][i], key=str(i))61 message(st.session_state['past'][i], is_user=True, key=str(i) + '_user')62elif st.session_state['key'] != st.secrets["login_key"]:63 st.warning('wrong key!')64 print(st.session_state['key'])