CoolFace
Apppublic

aaronW/chat-robot

sourceHugging Faceupdated 4y agoView on Hugging Face
1likes
app.py64 linesDownload Raw Back to root
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'])