-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstreamlit_app.py
76 lines (64 loc) · 2.5 KB
/
streamlit_app.py
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 streamlit as st
from langchain_core.messages import HumanMessage, SystemMessage
from form_helper import initialize_app
from pdf_loader import loader
from playground.departments import Berater
initialize_app()
# memory = SqliteSaver.from_conn_string(":memory:")
config = {"configurable": {"thread_id": "1"}, "recursion_limit": 100}
st.title("Form Helper")
with st.form("chatbot_form"):
ui_input_text = st.text_area(
"Enter text:",
"Ich will ein Fest feiern und Alkohol trinken.",
)
submitted = st.form_submit_button("Submit")
if submitted:
st.session_state.current_answer = st.session_state.app.invoke(
{
"messages": [
SystemMessage(
content="Du bist Mitarbeiter im Bürgerbüro der Stadt Würzburg und Zuständig für die Dokumentenverwaltung. Es ist von absolut kritischer Wichtigkeit, dass alle informationen die du herausgibst aus deinen zur Verfügung stehenden Tools stammen!"
),
HumanMessage(content=ui_input_text),
]
},
config=config,
)
if "current_answer" in st.session_state:
st.info(st.session_state.current_answer)
with st.form("berater_form"):
def formatter(state):
if state is None or len(state["messages"]) == 0:
return "No Messages"
return state["messages"][-1].content
submitted = st.form_submit_button("Submit Berater")
berater_supervised_graph = Berater.create_berater_graph()
if "berater" not in st.session_state:
st.session_state["berater"] = {
"app": berater_supervised_graph,
"current_answer": None,
}
ui_input_text = st.text_area(
"berater:",
"Was muss ich tun, um in Würzburg ein Fest zu feiern? Antworte in einem Satz!",
)
if submitted:
st.session_state.berater["current_answer"] = st.session_state.berater[
"app"
].invoke(
{
"messages": [HumanMessage(content=ui_input_text)],
},
config=config,
)
if (
"current_answer" in st.session_state.berater
and st.session_state.berater.get("current_answer") is not None
):
# TODO: better formatting
st.info(st.session_state.berater["current_answer"]["messages"][-1].content)
load_button = st.button("Load Document")
if load_button:
load_result = loader.load()
st.text_area("Load Result:", value=str(load_result))