nkcong206 commited on
Commit
f321a77
·
verified ·
1 Parent(s): 8df61df

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -2
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
- vectorstore = Chroma.from_texts(texts=texts, embedding=_embd)
 
 
 
 
 
 
 
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
- # Sidebar: Upload file và xử lý
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