nnngoc commited on
Commit
c3fa453
1 Parent(s): 986ba7d
Files changed (2) hide show
  1. README.md +13 -0
  2. app.py +70 -0
README.md CHANGED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Chatbot Bk1
3
+ emoji: 📈
4
+ colorFrom: gray
5
+ colorTo: green
6
+ sdk: streamlit
7
+ sdk_version: 1.29.0
8
+ app_file: app.py
9
+ pinned: false
10
+ ---
11
+
12
+ ChatbotBK11
13
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
app.py CHANGED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from rag import rag
3
+ import logging
4
+
5
+ # Tạo ra một dictionary lưu trữ mapping giữa câu hỏi và giá trị tương ứng của nút
6
+ guiding_questions = {
7
+ "Có những loại chương trình đào tạo thạc sĩ nào?": False,
8
+ "Cho tôi thông tin về chương trình đào tạo thạc sĩ ứng dụng?": False,
9
+ "Tiêu chuẩn huy chương vàng được quy định như thế nào?": False,
10
+ "Miễn thi được quy định như thế nào?": False,
11
+ "Yêu cầu ngoại ngữ đối với học viên thạc sĩ?": False
12
+ }
13
+
14
+ def main():
15
+ st.set_page_config(page_title="Chatbot BK1")
16
+
17
+ st.image(["logo.jpg"], width=100)
18
+ # with st.columns(3)[1]:
19
+ # st.image(["logo.jpg"])
20
+
21
+ st.title("Chatbot Phòng Đào Tạo")
22
+ # st.markdown("<h1 style='text-align: center'>Chatbot Phòng Đào Tạo</h1>", unsafe_allow_html=True)
23
+
24
+ st.subheader("Tôi có thể giải đáp các thắc mắc về quy định học vụ của Trường Đại Học Bách Khoa - ĐHQG TP.HCM", divider='rainbow')
25
+
26
+ # Hiển thị sidebar với các câu hỏi hướng dẫn
27
+ st.sidebar.subheader("Có thể bạn quan tâm những câu hỏi dưới đây:")
28
+
29
+ # set initial message
30
+ if "messages" not in st.session_state.keys():
31
+ st.session_state.messages = [
32
+ {"role": "assistant", "content": "Xin chào, tôi có thể giúp gì cho bạn"}
33
+ ]
34
+
35
+ if "messages" in st.session_state.keys():
36
+ # display messages
37
+ for message in st.session_state.messages:
38
+ with st.chat_message(message["role"]):
39
+ st.write(message["content"])
40
+
41
+ # get user input
42
+ user_prompt = st.chat_input()
43
+ for question in guiding_questions.keys():
44
+ if st.sidebar.button(question, key=question):
45
+ user_prompt = question
46
+ guiding_questions[question] = True # Đánh dấu câu hỏi được chọn
47
+ handle_user_input(user_prompt)
48
+
49
+ def handle_user_input(user_prompt):
50
+ if user_prompt is not None:
51
+ st.session_state.messages.append({"role": "user", "content": user_prompt})
52
+ with st.chat_message("user"):
53
+ st.write(user_prompt)
54
+
55
+ # process user input
56
+ if st.session_state.messages[-1]["role"] != "assistant":
57
+ with st.chat_message("assistant"):
58
+ with st.spinner("Loading..."):
59
+ ai_response = rag(user_prompt)
60
+ if ai_response == "Encountered some errors. Please recheck your request!":
61
+ st.write("Xin lỗi, tôi không có thông tin về câu hỏi này!")
62
+ else:
63
+ st.write(ai_response)
64
+
65
+ new_ai_message = {"role": "assistant", "content": ai_response}
66
+ st.session_state.messages.append(new_ai_message)
67
+
68
+
69
+ if __name__ == '__main__':
70
+ main()