bvd757 commited on
Commit
afd6371
·
verified ·
1 Parent(s): 2d8002a

Delete streamlit_app.py

Browse files
Files changed (1) hide show
  1. streamlit_app.py +0 -101
streamlit_app.py DELETED
@@ -1,101 +0,0 @@
1
- import streamlit as st
2
- from langchain_core.messages import HumanMessage, AIMessage
3
- from services.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()