quoc-khanh commited on
Commit
556fb16
·
verified ·
1 Parent(s): 5ffcb10

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +40 -34
app.py CHANGED
@@ -27,8 +27,8 @@ genai.configure(api_key=key)
27
  vectorstore = get_vectorstore()
28
  # Define the augment_prompt function
29
  def augment_prompt(query: str, k: int = 10):
30
- queries = []
31
- queries.append(query)
32
 
33
  retriever = vectorstore.as_retriever(search_kwargs={"k": k})
34
  results = retriever.invoke(query)
@@ -40,34 +40,42 @@ Dữ liệu:
40
  {source_knowledge}
41
  """
42
  else:
43
- return f"Không có thông tin liên quan. \n."
 
 
 
 
 
 
 
 
 
44
 
45
  def get_answer(query, queries_list=None):
46
  if queries_list is None:
47
  queries_list = []
48
 
49
  messages = [
50
- {"role": "user", "parts": [{"text": "IMPORTANT: You are a super helpful, polite, Vietnamese-speaking asistant to give infomation of an university. If you can not see the answer in contexts, try to search it up online by yourself OR tell user to make a more detailed question."}]},
51
- {"role": "user", "parts": [{"text": augment_prompt(query=query,k=100)}]}
52
- ]
53
- # bonus = '''
54
- # Bạn tham kháo thêm các nguồn thông tin tại:
55
- # Trang thông tin điện tử: https://neu.edu.vn ; https://daotao.neu.edu.vn
56
- # Trang mạng xã hội có thông tin tuyển sinh: https://www.facebook.com/ktqdNEU ; https://www.facebook.com/tvtsneu ;
57
- # Email tuyển sinh: [email protected]
58
- # Số điện thoại tuyển sinh: 0888.128.558
59
- # '''
60
 
61
  queries_list.append(query)
62
  queries = {"role": "user", "parts": [{"text": prompt_order(queries_list)}]}
63
  messages_with_queries = messages.copy()
64
  messages_with_queries.append(queries)
65
- # messages_with_queries.insert(0, queries)
66
-
67
- # Configure API key
68
  genai.configure(api_key=key)
69
 
70
- # Initialize the Gemini model
71
  model = genai.GenerativeModel("gemini-2.0-flash")
72
 
73
  response = model.generate_content(contents=messages_with_queries, stream=True)
@@ -78,13 +86,6 @@ def get_answer(query, queries_list=None):
78
  yield response_text
79
 
80
  messages.append({"role": "model", "parts": [{"text": response_text}]})
81
-
82
- # user_feedback = yield "\nNhập phản hồi của bạn (hoặc nhập 'q' để thoát): "
83
- # if user_feedback.lower() == "q":
84
- # break
85
-
86
- # messages.append({"role": "user", "parts": [{"text": query}]})
87
-
88
  log_message(messages)
89
 
90
  institutions = ['Tất cả', 'Trường Công Nghệ']
@@ -94,20 +95,25 @@ print("Launching on space... This may take some time...")
94
 
95
  with gr.Blocks() as demo:
96
  with gr.Row():
97
- category1 = gr.Dropdown(choices = institutions, label="Trường", value = None)
98
- category2 = gr.Dropdown(choices = categories, label="Bạn quan tâm tới", value = None)
 
 
 
 
 
 
 
 
99
 
100
  chat_interface = gr.ChatInterface(get_answer,
101
  textbox=gr.Textbox(placeholder="Đặt câu hỏi tại đây",
102
- container=False,
103
- autoscroll=True,
104
- scale=7),
105
- type="messages",
106
- # textbox=prompt,
107
  # additional_inputs=[category1, category2]
108
  )
109
- # playwright_path = get_driver_dir()
110
 
111
  if __name__ == "__main__":
112
- demo.launch()
113
- # demo.launch()
 
27
  vectorstore = get_vectorstore()
28
  # Define the augment_prompt function
29
  def augment_prompt(query: str, k: int = 10):
30
+ # Lưu lại truy vấn (có thể dùng cho mục đích khác)
31
+ queries = [query]
32
 
33
  retriever = vectorstore.as_retriever(search_kwargs={"k": k})
34
  results = retriever.invoke(query)
 
40
  {source_knowledge}
41
  """
42
  else:
43
+ return "Không có thông tin liên quan. \n."
44
+
45
+ # Hàm mới để log toàn bộ dữ liệu trả về từ vectorstore.invoke
46
+ def log_vectorstore(query: str, k: int = 10):
47
+ retriever = vectorstore.as_retriever(search_kwargs={"k": k})
48
+ results = retriever.invoke(query)
49
+ if results:
50
+ return "\n\n".join([doc.page_content for doc in results])
51
+ else:
52
+ return "Không có thông tin liên quan."
53
 
54
  def get_answer(query, queries_list=None):
55
  if queries_list is None:
56
  queries_list = []
57
 
58
  messages = [
59
+ {"role": "user", "parts": [{"text": "IMPORTANT: You are a super helpful, polite, Vietnamese-speaking assistant to give information of an university. If you cannot see the answer in contexts, try to search it up online by yourself OR tell user to make a more detailed question."}]},
60
+ {"role": "user", "parts": [{"text": augment_prompt(query=query, k=100)}]}
61
+ ]
62
+ # bonus = '''
63
+ # Bạn tham khảo thêm các nguồn thông tin tại:
64
+ # Trang thông tin điện tử: https://neu.edu.vn ; https://daotao.neu.edu.vn
65
+ # Trang mạng xã hội có thông tin tuyển sinh: https://www.facebook.com/ktqdNEU ; https://www.facebook.com/tvtsneu ;
66
+ # Email tuyển sinh: [email protected]
67
+ # Số điện thoại tuyển sinh: 0888.128.558
68
+ # '''
69
 
70
  queries_list.append(query)
71
  queries = {"role": "user", "parts": [{"text": prompt_order(queries_list)}]}
72
  messages_with_queries = messages.copy()
73
  messages_with_queries.append(queries)
74
+
75
+ # Cấu hình API key cho model
 
76
  genai.configure(api_key=key)
77
 
78
+ # Khởi tạo model Gemini
79
  model = genai.GenerativeModel("gemini-2.0-flash")
80
 
81
  response = model.generate_content(contents=messages_with_queries, stream=True)
 
86
  yield response_text
87
 
88
  messages.append({"role": "model", "parts": [{"text": response_text}]})
 
 
 
 
 
 
 
89
  log_message(messages)
90
 
91
  institutions = ['Tất cả', 'Trường Công Nghệ']
 
95
 
96
  with gr.Blocks() as demo:
97
  with gr.Row():
98
+ category1 = gr.Dropdown(choices=institutions, label="Trường", value=None)
99
+ category2 = gr.Dropdown(choices=categories, label="Bạn quan tâm tới", value=None)
100
+
101
+ # Phần UI riêng để log dữ liệu từ vectorstore.invoke
102
+ with gr.Row():
103
+ log_query_input = gr.Textbox(label="Nhập truy vấn cho log", placeholder="Nhập truy vấn để xem log vectorstore invoke", value="")
104
+ log_k_input = gr.Number(label="Số lượng kết quả (k)", value=10)
105
+ log_output = gr.Textbox(label="Log vectorstore invoke", interactive=False)
106
+ log_button = gr.Button("Hiển thị log")
107
+ log_button.click(fn=log_vectorstore, inputs=[log_query_input, log_k_input], outputs=log_output)
108
 
109
  chat_interface = gr.ChatInterface(get_answer,
110
  textbox=gr.Textbox(placeholder="Đặt câu hỏi tại đây",
111
+ container=False,
112
+ autoscroll=True,
113
+ scale=7),
114
+ type="messages"
 
115
  # additional_inputs=[category1, category2]
116
  )
 
117
 
118
  if __name__ == "__main__":
119
+ demo.launch()