Spaces:
Sleeping
Sleeping
import streamlit as st | |
from langchain_core.messages import HumanMessage,AIMessage,ToolMessage | |
import json | |
class DisplayResultStreamlit: | |
def __init__(self,usecase,graph,user_message): | |
self.usecase= usecase | |
self.graph = graph | |
self.user_message = user_message | |
def display_result_on_ui(self): | |
usecase= self.usecase | |
graph = self.graph | |
user_message = self.user_message | |
if usecase =="Basic Chatbot": | |
for event in graph.stream({'messages':("user",user_message)}): | |
print(event.values()) | |
for value in event.values(): | |
print(value['messages']) | |
with st.chat_message("user"): | |
st.write(user_message) | |
with st.chat_message("assistant"): | |
st.write(value["messages"].content) | |
elif usecase=="Chatbot with Tool": | |
# Prepare state and invoke the graph | |
initial_state = {"messages": [user_message]} | |
res = graph.invoke(initial_state) | |
for message in res['messages']: | |
if type(message) == HumanMessage: | |
with st.chat_message("user"): | |
st.write(message.content) | |
elif type(message)==ToolMessage: | |
with st.chat_message("ai"): | |
st.write("Tool Call Start") | |
st.write(message.content) | |
st.write("Tool Call End") | |
elif type(message)==AIMessage and message.content: | |
with st.chat_message("assistant"): | |
st.write(message.content) |