antimoda1 commited on
Commit
be458aa
·
1 Parent(s): 96830f5

fix for gradio

Browse files
Files changed (1) hide show
  1. app.py +17 -11
app.py CHANGED
@@ -59,19 +59,26 @@ class Perform:
59
 
60
  return self.scores, None, top_k_indices, f"Найдено {len(filtered_sorted)} результатов"
61
 
62
- def format_retrieval_results(self, top_k_indices):
63
- if len(top_k_indices) == 0:
64
  return "Нет результатов"
65
 
66
- texts = self.retrieval.paragraphs_df["texts"].iloc[top_k_indices]
67
- return "\n\n".join(texts)
68
-
69
- def format_selected_chunks(self, indices):
70
  texts = self.retrieval.paragraphs_df["texts"].iloc[indices]
71
  return "\n\n".join(texts)
72
 
73
  perform = Perform()
74
 
 
 
 
 
 
 
 
 
 
 
 
75
 
76
  def ask_llm(query, filtered_indices_state):
77
  """Этап 2: Отправка отфильтрованных чанков в LLM с потоковой выдачей"""
@@ -84,7 +91,7 @@ def ask_llm(query, filtered_indices_state):
84
  return
85
 
86
  # Форматируем контекст используя ту же функцию, что и в интерфейсе
87
- context = perform.format_selected_chunks(filtered_indices_state)
88
 
89
  if not context or context == "Нет валидных чанков":
90
  yield "Нет валидных чанков для отправки"
@@ -190,22 +197,21 @@ with gr.Blocks(title="RAG Application", theme=gr.themes.Soft()) as iface:
190
 
191
  # Обработчик поиска
192
  search_btn.click(
193
- fn=perform.perform_search,
194
  inputs=[search_query_input, top_k_slider, year_from_input, year_to_input],
195
  outputs=[all_scores_state, all_chunk_ids_state, top_k_indices_state, search_status]
196
  ).then(
197
- fn=perform.format_retrieval_results,
198
  inputs=[top_k_indices_state, top_k_slider],
199
  outputs=[retrieval_results]
200
  )
201
 
202
  # Обработчик изменения слайдера top_k
203
  top_k_slider.change(
204
- fn=perform.format_retrieval_results,
205
  inputs=[top_k_indices_state, top_k_slider],
206
  outputs=[retrieval_results]
207
  )
208
-
209
  # Отправка в LLM с потоковой выдачей
210
  llm_btn.click(
211
  fn=ask_llm,
 
59
 
60
  return self.scores, None, top_k_indices, f"Найдено {len(filtered_sorted)} результатов"
61
 
62
+ def format_retrieval_results(self, indices):
63
+ if len(indices) == 0:
64
  return "Нет результатов"
65
 
 
 
 
 
66
  texts = self.retrieval.paragraphs_df["texts"].iloc[indices]
67
  return "\n\n".join(texts)
68
 
69
  perform = Perform()
70
 
71
+ def ui_search(query, top_k, year_from, year_to):
72
+ return perform.perform_search(query, top_k, year_from, year_to)
73
+
74
+
75
+ def ui_format_results(indices, top_k):
76
+ if indices is None:
77
+ return "Нет результатов"
78
+
79
+ indices = indices[:top_k]
80
+ return perform.format_retrieval_results(indices)
81
+
82
 
83
  def ask_llm(query, filtered_indices_state):
84
  """Этап 2: Отправка отфильтрованных чанков в LLM с потоковой выдачей"""
 
91
  return
92
 
93
  # Форматируем контекст используя ту же функцию, что и в интерфейсе
94
+ context = perform.format_retrieval_results(filtered_indices_state)
95
 
96
  if not context or context == "Нет валидных чанков":
97
  yield "Нет валидных чанков для отправки"
 
197
 
198
  # Обработчик поиска
199
  search_btn.click(
200
+ fn=ui_search,
201
  inputs=[search_query_input, top_k_slider, year_from_input, year_to_input],
202
  outputs=[all_scores_state, all_chunk_ids_state, top_k_indices_state, search_status]
203
  ).then(
204
+ fn=ui_format_results,
205
  inputs=[top_k_indices_state, top_k_slider],
206
  outputs=[retrieval_results]
207
  )
208
 
209
  # Обработчик изменения слайдера top_k
210
  top_k_slider.change(
211
+ fn=ui_format_results,
212
  inputs=[top_k_indices_state, top_k_slider],
213
  outputs=[retrieval_results]
214
  )
 
215
  # Отправка в LLM с потоковой выдачей
216
  llm_btn.click(
217
  fn=ask_llm,