Spaces:
Running
Running
fixing batching for loading data
Browse files
components/review_dashboard_page.py
CHANGED
@@ -479,25 +479,26 @@ class ReviewDashboardPage:
|
|
479 |
gr.update(value="β Reject") # Reset reject button text
|
480 |
)
|
481 |
|
482 |
-
def
|
|
|
483 |
if not items:
|
484 |
-
return
|
|
|
|
|
485 |
if direction == "next":
|
486 |
new_idx = min(current_idx + 1, len(items) - 1)
|
487 |
# Only load more items when user reaches the LAST item of a batch
|
488 |
should_load_more = (new_idx == len(items) - 1 and len(items) % 5 == 0)
|
489 |
if should_load_more:
|
490 |
log.info(f"User reached end of loaded items ({new_idx}/{len(items)}), will load more items")
|
491 |
-
|
|
|
|
|
|
|
|
|
492 |
else: # prev
|
493 |
-
|
494 |
-
|
495 |
-
def conditional_load_more_fn(items, session, should_load_more):
|
496 |
-
"""Load more items if needed, otherwise return existing items"""
|
497 |
-
if should_load_more:
|
498 |
-
log.info("Loading more items for navigation...")
|
499 |
-
return load_more_items_fn(items, session, current_batch_size=10) # Reduced from 50 to 10 items
|
500 |
-
return items
|
501 |
|
502 |
def save_validation_fn(items, idx, session, approved: bool, rejection_reason: str = ""):
|
503 |
if not items or idx >= len(items):
|
@@ -712,9 +713,9 @@ class ReviewDashboardPage:
|
|
712 |
fn=lambda: update_ui_interactive_state(False),
|
713 |
outputs=self.interactive_ui_elements
|
714 |
).then(
|
715 |
-
fn=
|
716 |
-
inputs=[self.items_state, self.idx_state,
|
717 |
-
outputs=self.idx_state
|
718 |
).then(
|
719 |
fn=show_current_review_item_fn,
|
720 |
inputs=[self.items_state, self.idx_state, session_state],
|
@@ -748,9 +749,9 @@ class ReviewDashboardPage:
|
|
748 |
fn=lambda: gr.update(value="β Reject"), # Reset reject button
|
749 |
outputs=[self.btn_reject]
|
750 |
).then(
|
751 |
-
fn=lambda items, idx:
|
752 |
-
inputs=[self.items_state, self.idx_state],
|
753 |
-
outputs=[self.idx_state]
|
754 |
).then(
|
755 |
fn=show_current_review_item_fn,
|
756 |
inputs=[self.items_state, self.idx_state, session_state],
|
@@ -771,9 +772,9 @@ class ReviewDashboardPage:
|
|
771 |
inputs=[self.items_state, self.idx_state, session_state, self.rejection_mode_active],
|
772 |
outputs=[self.header.progress_display]
|
773 |
).then(
|
774 |
-
fn=lambda items, idx, rejection_mode:
|
775 |
-
inputs=[self.items_state, self.idx_state, self.rejection_mode_active],
|
776 |
-
outputs=[self.idx_state]
|
777 |
).then(
|
778 |
fn=lambda items, idx, session, rejection_mode: show_current_review_item_fn(items, idx, session) if not rejection_mode else (
|
779 |
str(items[idx]["tts_id"]) if items and idx < len(items) else "",
|
@@ -799,9 +800,9 @@ class ReviewDashboardPage:
|
|
799 |
|
800 |
# Skip button (just navigate to next)
|
801 |
self.btn_skip.click(
|
802 |
-
fn=
|
803 |
-
inputs=[self.items_state, self.idx_state,
|
804 |
-
outputs=self.idx_state
|
805 |
).then(
|
806 |
fn=show_current_review_item_fn,
|
807 |
inputs=[self.items_state, self.idx_state, session_state],
|
|
|
479 |
gr.update(value="β Reject") # Reset reject button text
|
480 |
)
|
481 |
|
482 |
+
def navigate_and_load_fn(items, current_idx, direction, session):
|
483 |
+
"""Combined navigation and loading function"""
|
484 |
if not items:
|
485 |
+
return items, 0
|
486 |
+
|
487 |
+
# Navigate
|
488 |
if direction == "next":
|
489 |
new_idx = min(current_idx + 1, len(items) - 1)
|
490 |
# Only load more items when user reaches the LAST item of a batch
|
491 |
should_load_more = (new_idx == len(items) - 1 and len(items) % 5 == 0)
|
492 |
if should_load_more:
|
493 |
log.info(f"User reached end of loaded items ({new_idx}/{len(items)}), will load more items")
|
494 |
+
# Load more items
|
495 |
+
updated_items = load_more_items_fn(items, session, current_batch_size=10)
|
496 |
+
return updated_items, new_idx
|
497 |
+
else:
|
498 |
+
return items, new_idx
|
499 |
else: # prev
|
500 |
+
new_idx = max(current_idx - 1, 0)
|
501 |
+
return items, new_idx
|
|
|
|
|
|
|
|
|
|
|
|
|
502 |
|
503 |
def save_validation_fn(items, idx, session, approved: bool, rejection_reason: str = ""):
|
504 |
if not items or idx >= len(items):
|
|
|
713 |
fn=lambda: update_ui_interactive_state(False),
|
714 |
outputs=self.interactive_ui_elements
|
715 |
).then(
|
716 |
+
fn=lambda items, idx, session, dir=direction: navigate_and_load_fn(items, idx, dir, session),
|
717 |
+
inputs=[self.items_state, self.idx_state, session_state],
|
718 |
+
outputs=[self.items_state, self.idx_state]
|
719 |
).then(
|
720 |
fn=show_current_review_item_fn,
|
721 |
inputs=[self.items_state, self.idx_state, session_state],
|
|
|
749 |
fn=lambda: gr.update(value="β Reject"), # Reset reject button
|
750 |
outputs=[self.btn_reject]
|
751 |
).then(
|
752 |
+
fn=lambda items, idx, session: navigate_and_load_fn(items, idx, "next", session),
|
753 |
+
inputs=[self.items_state, self.idx_state, session_state],
|
754 |
+
outputs=[self.items_state, self.idx_state]
|
755 |
).then(
|
756 |
fn=show_current_review_item_fn,
|
757 |
inputs=[self.items_state, self.idx_state, session_state],
|
|
|
772 |
inputs=[self.items_state, self.idx_state, session_state, self.rejection_mode_active],
|
773 |
outputs=[self.header.progress_display]
|
774 |
).then(
|
775 |
+
fn=lambda items, idx, session, rejection_mode: navigate_and_load_fn(items, idx, "next", session) if not rejection_mode else (items, idx),
|
776 |
+
inputs=[self.items_state, self.idx_state, session_state, self.rejection_mode_active],
|
777 |
+
outputs=[self.items_state, self.idx_state]
|
778 |
).then(
|
779 |
fn=lambda items, idx, session, rejection_mode: show_current_review_item_fn(items, idx, session) if not rejection_mode else (
|
780 |
str(items[idx]["tts_id"]) if items and idx < len(items) else "",
|
|
|
800 |
|
801 |
# Skip button (just navigate to next)
|
802 |
self.btn_skip.click(
|
803 |
+
fn=lambda items, idx, session: navigate_and_load_fn(items, idx, "next", session),
|
804 |
+
inputs=[self.items_state, self.idx_state, session_state],
|
805 |
+
outputs=[self.items_state, self.idx_state]
|
806 |
).then(
|
807 |
fn=show_current_review_item_fn,
|
808 |
inputs=[self.items_state, self.idx_state, session_state],
|