# import streamlit as st # from langchain_core.messages import HumanMessage, AIMessage # from get_classification import get_graph_class # from datetime import datetime # def message_to_dict(messages): # result = [] # for message in messages: # if isinstance(message, HumanMessage) or isinstance(message, AIMessage): # print("message:", message.content) # if message.content == "" or message.content is None: # continue # if isinstance(message, HumanMessage): # result.append({"role": "user", "content": message.content}) # elif isinstance(message, AIMessage): # result.append({"role": "assistant", "content": message.content}) # print("-" * 100) # return result # def find_last_bot_message(messages): # """Находит последнее сообщение бота""" # for message in messages[::-1]: # if isinstance(message, AIMessage) and len(message.content) > 0: # return message.content # return None # def display_chat_messages(): # """Отображает историю сообщений в чате""" # for message in st.session_state.messages: # with st.chat_message(message["role"]): # st.markdown(message["content"]) # def save_broken_case(): # messages_dict = st.session_state.messages # result_str = "" # for elem in messages_dict: # role = elem["role"] # content = elem["content"] # result_str += f"{role}: {content}\n" # current_datetime = datetime.now() # formatted_datetime = current_datetime.strftime("%Y-%m-%d %H:%M:%S") # with open("/Users/admin/my_documents/retrieval_part/services/broken_cases.txt", "a") as file: # file.write(f"{formatted_datetime}\n" + result_str + "\n" + "-" * 50 + "\n\n") # def handle_user_input(): # """Обрабатывает ввод пользователя и генерирует ответ бота""" # if prompt := st.chat_input("Введите ваш вопрос"): # st.session_state.messages.append({"role": "user", "content": prompt}) # if prompt.lower().startswith("log"): # save_broken_case() # st.session_state.messages = [] # display_chat_messages() # else: # with st.chat_message("user"): # st.markdown(prompt) # if "bot" not in st.session_state: # st.session_state.bot = get_graph_class(prompt) # st.session_state.bot.invoke(prompt) # # Извлекаем последнее сообщение бота # last_bot_message = find_last_bot_message(st.session_state.bot.messages) # st.session_state.messages.append( # {"role": "assistant", "content": last_bot_message} # ) # with st.chat_message("assistant"): # st.markdown(last_bot_message) # def clear_chat(): # """Очищает чат и пересоздает бота""" # st.session_state.messages = [] # del st.session_state.bot # def main(): # """Основная функция приложения""" # # Заголовок приложения # st.title("Чат-бот технической поддержки OpenVPN") # # Кнопка очистки чата # if st.button("Clear"): # clear_chat() # if "messages" not in st.session_state: # st.session_state.messages = [] # # Отображение чата и обработка ввода # display_chat_messages() # handle_user_input() # if __name__ == "__main__": # main() import streamlit as st st.title("Моё приложение") st.write("Привет, мир!")