Spaces:
Sleeping
Sleeping
File size: 2,478 Bytes
c272710 e96de95 44cfcd2 c272710 44cfcd2 c272710 44cfcd2 c272710 44cfcd2 c272710 44cfcd2 c272710 44cfcd2 c272710 44cfcd2 c272710 44cfcd2 c272710 44cfcd2 c272710 44cfcd2 c272710 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
import os
import streamlit as st
from langchain import OpenAI
from langchain.chains import ConversationChain
from langchain.chains.conversation.memory import ConversationSummaryMemory
from streamlit_chat import message
from dotenv import load_dotenv
load_dotenv()
if "conversation" not in st.session_state:
st.session_state["conversation"] = None
if "messages" not in st.session_state:
st.session_state["messages"] = []
# Setting page title and header
st.set_page_config(page_title="Chat GPT Clone", page_icon=":robot_face:")
st.markdown(
"<h1 style='text-align: center;'>How can I assist you? </h1>",
unsafe_allow_html=True,
)
st.sidebar.title("😎")
summarise_button = st.sidebar.button("Summarise the conversation", key="summarise")
if summarise_button:
summarise_placeholder = st.sidebar.write(
"Nice chatting with you my friend ❤️:\n\n"
+ st.session_state["conversation"].memory.buffer
)
def getresponse(userInput: str):
if st.session_state["conversation"] is None:
llm = OpenAI(
temperature=0,
openai_api_key=os.getenv("OPENAI_API_KEY"),
model_name="text-davinci-003", # we can also use 'gpt-3.5-turbo'
)
st.session_state["conversation"] = ConversationChain(
llm=llm, verbose=True, memory=ConversationSummaryMemory(llm=llm)
)
response = st.session_state["conversation"].predict(input=userInput)
print(st.session_state["conversation"].memory.buffer)
return response
response_container = st.container()
container = st.container()
with container:
with st.form(key="my_form", clear_on_submit=True):
user_input = st.text_area("Your question goes here:", key="input", height=100)
submit_button = st.form_submit_button(label="Send")
if submit_button:
st.session_state["messages"].append(user_input)
model_response = getresponse(user_input)
st.session_state["messages"].append(model_response)
with response_container:
for i in range(len(st.session_state["messages"])):
if (i % 2) == 0:
message(
st.session_state["messages"][i],
is_user=True,
key=str(i) + "_user",
)
else:
message(st.session_state["messages"][i], key=str(i) + "_AI")
|