Update app.py
Browse files
app.py
CHANGED
@@ -77,6 +77,8 @@ def get_embedding_model():
|
|
77 |
|
78 |
# Hàm tạo RAG Chain
|
79 |
@st.cache_resource
|
|
|
|
|
80 |
def compute_rag_chain(_model, _embd, docs_texts):
|
81 |
if not docs_texts:
|
82 |
raise ValueError("Không có tài liệu nào để xử lý. Vui lòng tải lên các tệp hợp lệ.")
|
@@ -88,9 +90,17 @@ def compute_rag_chain(_model, _embd, docs_texts):
|
|
88 |
if len(texts) > 5000:
|
89 |
raise ValueError("Tài liệu tạo ra quá nhiều đoạn. Vui lòng sử dụng tài liệu nhỏ hơn.")
|
90 |
|
91 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
92 |
retriever = vectorstore.as_retriever()
|
93 |
|
|
|
94 |
template = """
|
95 |
Bạn là một trợ lí AI hỗ trợ tuyển sinh và sinh viên.
|
96 |
Hãy trả lời câu hỏi chính xác, tập trung vào thông tin liên quan đến câu hỏi.
|
@@ -110,6 +120,8 @@ def compute_rag_chain(_model, _embd, docs_texts):
|
|
110 |
)
|
111 |
return rag_chain
|
112 |
|
|
|
|
|
113 |
# Dialog cài đặt Google Gemini
|
114 |
@st.dialog("Setup Gemini")
|
115 |
def setup_gemini():
|
@@ -138,7 +150,7 @@ if st.session_state.save_dir is None:
|
|
138 |
os.makedirs(save_dir)
|
139 |
st.session_state.save_dir = save_dir
|
140 |
|
141 |
-
#
|
142 |
with st.sidebar:
|
143 |
uploaded_files = st.file_uploader("Chọn file txt", accept_multiple_files=True, type=["txt"])
|
144 |
max_file_size_mb = 5
|
|
|
77 |
|
78 |
# Hàm tạo RAG Chain
|
79 |
@st.cache_resource
|
80 |
+
# Hàm tạo RAG Chain với xử lý lưu trữ Chroma
|
81 |
+
@st.cache_resource
|
82 |
def compute_rag_chain(_model, _embd, docs_texts):
|
83 |
if not docs_texts:
|
84 |
raise ValueError("Không có tài liệu nào để xử lý. Vui lòng tải lên các tệp hợp lệ.")
|
|
|
90 |
if len(texts) > 5000:
|
91 |
raise ValueError("Tài liệu tạo ra quá nhiều đoạn. Vui lòng sử dụng tài liệu nhỏ hơn.")
|
92 |
|
93 |
+
# Tạo thư mục lưu trữ
|
94 |
+
persist_dir = "./chromadb_store"
|
95 |
+
if not os.path.exists(persist_dir):
|
96 |
+
os.makedirs(persist_dir)
|
97 |
+
|
98 |
+
# Khởi tạo Chroma và lưu dữ liệu
|
99 |
+
vectorstore = Chroma.from_texts(texts=texts, embedding=_embd, persist_directory=persist_dir)
|
100 |
+
vectorstore.persist() # Lưu dữ liệu vào thư mục persist_dir
|
101 |
retriever = vectorstore.as_retriever()
|
102 |
|
103 |
+
# Template cho prompt
|
104 |
template = """
|
105 |
Bạn là một trợ lí AI hỗ trợ tuyển sinh và sinh viên.
|
106 |
Hãy trả lời câu hỏi chính xác, tập trung vào thông tin liên quan đến câu hỏi.
|
|
|
120 |
)
|
121 |
return rag_chain
|
122 |
|
123 |
+
|
124 |
+
|
125 |
# Dialog cài đặt Google Gemini
|
126 |
@st.dialog("Setup Gemini")
|
127 |
def setup_gemini():
|
|
|
150 |
os.makedirs(save_dir)
|
151 |
st.session_state.save_dir = save_dir
|
152 |
|
153 |
+
# Cập nhật xử lý Sidebar
|
154 |
with st.sidebar:
|
155 |
uploaded_files = st.file_uploader("Chọn file txt", accept_multiple_files=True, type=["txt"])
|
156 |
max_file_size_mb = 5
|