Spaces:
Sleeping
Sleeping
File size: 1,288 Bytes
4a82f95 | 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 | import utils
import streamlit as st
from streaming import StreamHandler
from langchain_openai import ChatOpenAI
from langchain.chains.conversation.base import ConversationChain
st.set_page_config(page_title="Chatbot", page_icon="💬")
st.header('Basic Chatbot')
st.write('Allows users to interact with a Language Model')
class BasicChatbot:
def __init__(self):
self.openai_model = utils.configure_openai()
def setup_chain(self):
llm = ChatOpenAI(model_name=self.openai_model, temperature=0, streaming=True)
chain = ConversationChain(llm=llm, verbose=True)
return chain
@utils.enable_chat_history
def main(self):
chain = self.setup_chain()
user_query = st.chat_input(placeholder="Ask me anything!")
if user_query:
utils.display_msg(user_query, 'user')
with st.chat_message("assistant"):
st_cb = StreamHandler(st.empty())
result = chain.invoke(
{"input":user_query},
{"callbacks": [st_cb]}
)
response = result["response"]
st.session_state.messages.append({"role": "assistant", "content": response})
if __name__ == "__main__":
obj = BasicChatbot()
obj.main()
|