|
|
|
import streamlit as st |
|
from streamlit_chat import message |
|
from dotenv import load_dotenv |
|
from langchain.chat_models import ChatOpenAI |
|
from langchain.schema import SystemMessage, HumanMessage,AIMessage |
|
|
|
|
|
|
|
load_dotenv() |
|
|
|
|
|
|
|
def start(): |
|
st.set_page_config(page_title="heeloo") |
|
st.header('chatbot') |
|
st.divider() |
|
start() |
|
|
|
|
|
|
|
|
|
|
|
|
|
def main(): |
|
|
|
chat = ChatOpenAI(temperature='0.5') |
|
|
|
|
|
if "messages" not in st.session_state: |
|
st.session_state.messages=[ |
|
SystemMessage(content="You are an assistant") |
|
] |
|
|
|
input_user= st.text_input("Ask Question ", placeholder ="Ask Question") |
|
|
|
button=st.button('Ask' ,use_container_width=True) |
|
|
|
if button: |
|
|
|
|
|
st.session_state.messages.append(HumanMessage(content=input_user)) |
|
|
|
resposne =chat(st.session_state.messages) |
|
|
|
message(resposne, is_user=False) |
|
|
|
st.session_state.messages.append(AIMessage(content=resposne.content)) |
|
|
|
messages = st.session_state.get('messages',[]) |
|
|
|
for i, msg in enumerate(messages): |
|
if i%2 ==0 : |
|
message(msg.content, is_user=True,key=str(i)+'_user') |
|
else: |
|
message(msg.content, is_user=False,key=str(i)+'_ai') |
|
|
|
main() |
|
|