Boris commited on
Commit
0820945
·
1 Parent(s): 96f6b21
Files changed (2) hide show
  1. .DS_Store +0 -0
  2. src/streamlit_app.py +95 -89
.DS_Store CHANGED
Binary files a/.DS_Store and b/.DS_Store differ
 
src/streamlit_app.py CHANGED
@@ -1,101 +1,107 @@
1
- import streamlit as st
2
- from langchain_core.messages import HumanMessage, AIMessage
3
- from get_classification import get_graph_class
4
- from datetime import datetime
5
-
6
-
7
- def message_to_dict(messages):
8
- result = []
9
- for message in messages:
10
- if isinstance(message, HumanMessage) or isinstance(message, AIMessage):
11
- print("message:", message.content)
12
- if message.content == "" or message.content is None:
13
- continue
14
- if isinstance(message, HumanMessage):
15
- result.append({"role": "user", "content": message.content})
16
- elif isinstance(message, AIMessage):
17
- result.append({"role": "assistant", "content": message.content})
18
- print("-" * 100)
19
- return result
20
-
21
-
22
- def find_last_bot_message(messages):
23
- """Находит последнее сообщение бота"""
24
- for message in messages[::-1]:
25
- if isinstance(message, AIMessage) and len(message.content) > 0:
26
- return message.content
27
- return None
28
-
29
-
30
- def display_chat_messages():
31
- """Отображает историю сообщений в чате"""
32
- for message in st.session_state.messages:
33
- with st.chat_message(message["role"]):
34
- st.markdown(message["content"])
35
-
36
-
37
- def save_broken_case():
38
- messages_dict = st.session_state.messages
39
- result_str = ""
40
- for elem in messages_dict:
41
- role = elem["role"]
42
- content = elem["content"]
43
- result_str += f"{role}: {content}\n"
44
 
45
- current_datetime = datetime.now()
46
- formatted_datetime = current_datetime.strftime("%Y-%m-%d %H:%M:%S")
47
-
48
- with open("/Users/admin/my_documents/retrieval_part/services/broken_cases.txt", "a") as file:
49
- file.write(f"{formatted_datetime}\n" + result_str + "\n" + "-" * 50 + "\n\n")
50
-
51
-
52
- def handle_user_input():
53
- """Обрабатывает ввод пользователя и генерирует ответ бота"""
54
- if prompt := st.chat_input("Введите ваш вопрос"):
55
- st.session_state.messages.append({"role": "user", "content": prompt})
56
- if prompt.lower().startswith("log"):
57
- save_broken_case()
58
- st.session_state.messages = []
59
- display_chat_messages()
60
- else:
61
- with st.chat_message("user"):
62
- st.markdown(prompt)
63
 
64
- if "bot" not in st.session_state:
65
- st.session_state.bot = get_graph_class(prompt)
66
- st.session_state.bot.invoke(prompt)
67
 
68
- # Извлекаем последнее сообщение бота
69
- last_bot_message = find_last_bot_message(st.session_state.bot.messages)
70
- st.session_state.messages.append(
71
- {"role": "assistant", "content": last_bot_message}
72
- )
73
- with st.chat_message("assistant"):
74
- st.markdown(last_bot_message)
 
 
 
 
 
 
75
 
76
 
77
- def clear_chat():
78
- """Очищает чат и пересоздает бота"""
79
- st.session_state.messages = []
80
- del st.session_state.bot
81
 
 
 
 
82
 
83
- def main():
84
- """Основная функция приложения"""
85
- # Заголовок приложения
86
- st.title("Чат-бот технической поддержки OpenVPN")
87
 
88
- # Кнопка очистки чата
89
- if st.button("Clear"):
90
- clear_chat()
91
 
92
- if "messages" not in st.session_state:
93
- st.session_state.messages = []
94
 
95
- # Отображение чата и обработка ввода
96
- display_chat_messages()
97
- handle_user_input()
98
 
99
 
100
- if __name__ == "__main__":
101
- main()
 
 
 
1
+ # import streamlit as st
2
+ # from langchain_core.messages import HumanMessage, AIMessage
3
+ # from get_classification import get_graph_class
4
+ # from datetime import datetime
5
+
6
+
7
+ # def message_to_dict(messages):
8
+ # result = []
9
+ # for message in messages:
10
+ # if isinstance(message, HumanMessage) or isinstance(message, AIMessage):
11
+ # print("message:", message.content)
12
+ # if message.content == "" or message.content is None:
13
+ # continue
14
+ # if isinstance(message, HumanMessage):
15
+ # result.append({"role": "user", "content": message.content})
16
+ # elif isinstance(message, AIMessage):
17
+ # result.append({"role": "assistant", "content": message.content})
18
+ # print("-" * 100)
19
+ # return result
20
+
21
+
22
+ # def find_last_bot_message(messages):
23
+ # """Находит последнее сообщение бота"""
24
+ # for message in messages[::-1]:
25
+ # if isinstance(message, AIMessage) and len(message.content) > 0:
26
+ # return message.content
27
+ # return None
28
+
29
+
30
+ # def display_chat_messages():
31
+ # """Отображает историю сообщений в чате"""
32
+ # for message in st.session_state.messages:
33
+ # with st.chat_message(message["role"]):
34
+ # st.markdown(message["content"])
35
+
36
+
37
+ # def save_broken_case():
38
+ # messages_dict = st.session_state.messages
39
+ # result_str = ""
40
+ # for elem in messages_dict:
41
+ # role = elem["role"]
42
+ # content = elem["content"]
43
+ # result_str += f"{role}: {content}\n"
44
 
45
+ # current_datetime = datetime.now()
46
+ # formatted_datetime = current_datetime.strftime("%Y-%m-%d %H:%M:%S")
47
+
48
+ # with open("/Users/admin/my_documents/retrieval_part/services/broken_cases.txt", "a") as file:
49
+ # file.write(f"{formatted_datetime}\n" + result_str + "\n" + "-" * 50 + "\n\n")
50
+
51
+
52
+ # def handle_user_input():
53
+ # """Обрабатывает ввод пользователя и генерирует ответ бота"""
54
+ # if prompt := st.chat_input("Введите ваш вопрос"):
55
+ # st.session_state.messages.append({"role": "user", "content": prompt})
56
+ # if prompt.lower().startswith("log"):
57
+ # save_broken_case()
58
+ # st.session_state.messages = []
59
+ # display_chat_messages()
60
+ # else:
61
+ # with st.chat_message("user"):
62
+ # st.markdown(prompt)
63
 
64
+ # if "bot" not in st.session_state:
65
+ # st.session_state.bot = get_graph_class(prompt)
66
+ # st.session_state.bot.invoke(prompt)
67
 
68
+ # # Извлекаем последнее сообщение бота
69
+ # last_bot_message = find_last_bot_message(st.session_state.bot.messages)
70
+ # st.session_state.messages.append(
71
+ # {"role": "assistant", "content": last_bot_message}
72
+ # )
73
+ # with st.chat_message("assistant"):
74
+ # st.markdown(last_bot_message)
75
+
76
+
77
+ # def clear_chat():
78
+ # """Очищает чат и пересоздает бота"""
79
+ # st.session_state.messages = []
80
+ # del st.session_state.bot
81
 
82
 
83
+ # def main():
84
+ # """Основная функция приложения"""
85
+ # # Заголовок приложения
86
+ # st.title("Чат-бот технической поддержки OpenVPN")
87
 
88
+ # # Кнопка очистки чата
89
+ # if st.button("Clear"):
90
+ # clear_chat()
91
 
92
+ # if "messages" not in st.session_state:
93
+ # st.session_state.messages = []
 
 
94
 
95
+ # # Отображение чата и обработка ввода
96
+ # display_chat_messages()
97
+ # handle_user_input()
98
 
 
 
99
 
100
+ # if __name__ == "__main__":
101
+ # main()
 
102
 
103
 
104
+ import streamlit as st
105
+
106
+ st.title("Моё приложение")
107
+ st.write("Привет, мир!")