Spaces:
Sleeping
Sleeping
nnngoc
commited on
Commit
•
c3fa453
1
Parent(s):
986ba7d
update
Browse files
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()
|