nkcong206 commited on
Commit
1d2cbea
1 Parent(s): 8b54974
Files changed (2) hide show
  1. .gitignore +2 -0
  2. app.py +16 -26
.gitignore ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+
2
+ /Documents
app.py CHANGED
@@ -11,7 +11,6 @@ from typing import Dict, List, Optional, Tuple
11
  import numpy as np
12
  import pandas as pd
13
  import umap
14
- from langchain.prompts import ChatPromptTemplate
15
  from langchain_core.output_parsers import StrOutputParser
16
  from sklearn.mixture import GaussianMixture
17
 
@@ -204,8 +203,6 @@ def recursive_embed_cluster_summarize(model,embd,
204
 
205
  return results
206
 
207
-
208
-
209
  page = st.title("Chat with AskUSTH")
210
 
211
  if "gemini_api" not in st.session_state:
@@ -244,6 +241,9 @@ def get_embedding_model():
244
  if "embd" not in st.session_state:
245
  st.session_state.embd = get_embedding_model()
246
 
 
 
 
247
  if "save_dir" not in st.session_state:
248
  st.session_state.save_dir = None
249
 
@@ -264,8 +264,8 @@ def vote():
264
 
265
  if st.session_state.gemini_api is None:
266
  vote()
267
- else:
268
- os.environ["GOOGLE_API_KEY"] = st.session_state.gemini_api
269
  st.session_state.model = get_chat_google_model(st.session_state.gemini_api)
270
 
271
  if st.session_state.save_dir is None:
@@ -279,9 +279,8 @@ def load_txt(file_path):
279
  doc = loader_sv.load()
280
  return doc
281
 
282
-
283
  with st.sidebar:
284
- uploaded_files = st.file_uploader("Chọn file CSV", accept_multiple_files=True, type=["txt"])
285
  if st.session_state.gemini_api:
286
  if uploaded_files:
287
  documents = []
@@ -345,12 +344,11 @@ def load_rag():
345
  st.session_state.rag = compute_rag_chain(st.session_state.model, st.session_state.embd, docs_texts)
346
  st.rerun()
347
 
348
- if st.session_state.uploaded_files and st.session_state.gemini_api:
349
- if st.session_state.gemini_api is not None:
350
- if st.session_state.rag is None:
351
- load_rag()
352
 
353
- if st.session_state.gemini_api is not None and st.session_state.gemini_api:
354
  if st.session_state.llm is None:
355
  mess = ChatPromptTemplate.from_messages(
356
  [
@@ -372,7 +370,7 @@ for message in st.session_state.chat_history:
372
  st.write(message["content"])
373
 
374
  prompt = st.chat_input("Bạn muốn hỏi gì?")
375
- if st.session_state.gemini_api:
376
  if prompt:
377
  st.session_state.chat_history.append({"role": "user", "content": prompt})
378
 
@@ -381,20 +379,12 @@ if st.session_state.gemini_api:
381
 
382
  with st.chat_message("assistant"):
383
  if st.session_state.rag is not None:
384
- try:
385
- respone = st.session_state.rag.invoke(prompt)
386
- st.write(respone)
387
- except:
388
- respone = "Lỗi Gemini, load lại trang và nhập lại key"
389
- st.write(respone)
390
  else:
391
- try:
392
- ans = st.session_state.llm.invoke(prompt)
393
- respone = ans.content
394
- st.write(respone)
395
- except:
396
- respone = "Lỗi Gemini, load lại trang và nhập lại key"
397
- st.write(respone)
398
 
399
  st.session_state.chat_history.append({"role": "assistant", "content": respone})
400
 
 
11
  import numpy as np
12
  import pandas as pd
13
  import umap
 
14
  from langchain_core.output_parsers import StrOutputParser
15
  from sklearn.mixture import GaussianMixture
16
 
 
203
 
204
  return results
205
 
 
 
206
  page = st.title("Chat with AskUSTH")
207
 
208
  if "gemini_api" not in st.session_state:
 
241
  if "embd" not in st.session_state:
242
  st.session_state.embd = get_embedding_model()
243
 
244
+ if "model" not in st.session_state:
245
+ st.session_state.model = None
246
+
247
  if "save_dir" not in st.session_state:
248
  st.session_state.save_dir = None
249
 
 
264
 
265
  if st.session_state.gemini_api is None:
266
  vote()
267
+
268
+ if st.session_state.gemini_api and st.session_state.model is None:
269
  st.session_state.model = get_chat_google_model(st.session_state.gemini_api)
270
 
271
  if st.session_state.save_dir is None:
 
279
  doc = loader_sv.load()
280
  return doc
281
 
 
282
  with st.sidebar:
283
+ uploaded_files = st.file_uploader("Chọn file txt", accept_multiple_files=True, type=["txt"])
284
  if st.session_state.gemini_api:
285
  if uploaded_files:
286
  documents = []
 
344
  st.session_state.rag = compute_rag_chain(st.session_state.model, st.session_state.embd, docs_texts)
345
  st.rerun()
346
 
347
+ if st.session_state.uploaded_files and st.session_state.model is not None:
348
+ if st.session_state.rag is None:
349
+ load_rag()
 
350
 
351
+ if st.session_state.model is not None:
352
  if st.session_state.llm is None:
353
  mess = ChatPromptTemplate.from_messages(
354
  [
 
370
  st.write(message["content"])
371
 
372
  prompt = st.chat_input("Bạn muốn hỏi gì?")
373
+ if st.session_state.model is not None:
374
  if prompt:
375
  st.session_state.chat_history.append({"role": "user", "content": prompt})
376
 
 
379
 
380
  with st.chat_message("assistant"):
381
  if st.session_state.rag is not None:
382
+ respone = st.session_state.rag.invoke(prompt)
383
+ st.write(respone)
 
 
 
 
384
  else:
385
+ ans = st.session_state.llm.invoke(prompt)
386
+ respone = ans.content
387
+ st.write(respone)
 
 
 
 
388
 
389
  st.session_state.chat_history.append({"role": "assistant", "content": respone})
390