Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -16,7 +16,7 @@ from analyzer import (
|
|
| 16 |
)
|
| 17 |
from hf_utils import download_filtered_space_files, search_top_spaces
|
| 18 |
from chatbot_page import chat_with_user, extract_keywords_from_conversation
|
| 19 |
-
from repo_explorer import create_repo_explorer_tab, setup_repo_explorer_events
|
| 20 |
|
| 21 |
# --- Configuration ---
|
| 22 |
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
|
|
@@ -918,8 +918,8 @@ def create_ui() -> gr.Blocks:
|
|
| 918 |
return gr.update(visible=False), hf_url
|
| 919 |
return gr.update(visible=False), ""
|
| 920 |
|
| 921 |
-
def handle_explore_repo(selected_repo_id: str) -> Tuple[Any, Any, Any]:
|
| 922 |
-
"""Handle navigating to the repo explorer and
|
| 923 |
logger.info(f"DEBUG: handle_explore_repo called with selected_repo_id: '{selected_repo_id}'")
|
| 924 |
|
| 925 |
if selected_repo_id and selected_repo_id.strip() and selected_repo_id.strip() != 'nan':
|
|
@@ -927,13 +927,17 @@ def create_ui() -> gr.Blocks:
|
|
| 927 |
return (
|
| 928 |
gr.update(visible=False), # close modal
|
| 929 |
gr.update(selected="repo_explorer_tab"), # switch tab
|
| 930 |
-
gr.update(value=clean_repo_id) # populate repo explorer input
|
|
|
|
|
|
|
| 931 |
)
|
| 932 |
else:
|
| 933 |
return (
|
| 934 |
gr.update(visible=False), # close modal
|
| 935 |
gr.update(selected="repo_explorer_tab"), # switch tab
|
| 936 |
-
gr.update() # don't change repo explorer input
|
|
|
|
|
|
|
| 937 |
)
|
| 938 |
|
| 939 |
def handle_cancel_modal() -> Any:
|
|
@@ -1335,7 +1339,9 @@ def create_ui() -> gr.Blocks:
|
|
| 1335 |
outputs=[
|
| 1336 |
repo_action_modal,
|
| 1337 |
tabs,
|
| 1338 |
-
repo_components["repo_explorer_input"]
|
|
|
|
|
|
|
| 1339 |
],
|
| 1340 |
js="""(repo_id) => {
|
| 1341 |
console.log('DEBUG: Navigate to repo explorer for:', repo_id);
|
|
@@ -1343,6 +1349,19 @@ def create_ui() -> gr.Blocks:
|
|
| 1343 |
window.scrollTo({top: 0, behavior: 'smooth'});
|
| 1344 |
}, 200);
|
| 1345 |
}"""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1346 |
)
|
| 1347 |
cancel_modal_btn.click(
|
| 1348 |
fn=handle_cancel_modal,
|
|
|
|
| 16 |
)
|
| 17 |
from hf_utils import download_filtered_space_files, search_top_spaces
|
| 18 |
from chatbot_page import chat_with_user, extract_keywords_from_conversation
|
| 19 |
+
from repo_explorer import create_repo_explorer_tab, setup_repo_explorer_events, initialize_repo_chatbot
|
| 20 |
|
| 21 |
# --- Configuration ---
|
| 22 |
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
|
|
|
|
| 918 |
return gr.update(visible=False), hf_url
|
| 919 |
return gr.update(visible=False), ""
|
| 920 |
|
| 921 |
+
def handle_explore_repo(selected_repo_id: str) -> Tuple[Any, Any, Any, str, str]:
|
| 922 |
+
"""Handle navigating to the repo explorer and automatically load the repository."""
|
| 923 |
logger.info(f"DEBUG: handle_explore_repo called with selected_repo_id: '{selected_repo_id}'")
|
| 924 |
|
| 925 |
if selected_repo_id and selected_repo_id.strip() and selected_repo_id.strip() != 'nan':
|
|
|
|
| 927 |
return (
|
| 928 |
gr.update(visible=False), # close modal
|
| 929 |
gr.update(selected="repo_explorer_tab"), # switch tab
|
| 930 |
+
gr.update(value=clean_repo_id), # populate repo explorer input
|
| 931 |
+
clean_repo_id, # trigger repository loading with the repo ID
|
| 932 |
+
"auto_load" # signal to auto-load the repository
|
| 933 |
)
|
| 934 |
else:
|
| 935 |
return (
|
| 936 |
gr.update(visible=False), # close modal
|
| 937 |
gr.update(selected="repo_explorer_tab"), # switch tab
|
| 938 |
+
gr.update(), # don't change repo explorer input
|
| 939 |
+
"", # no repo ID to load
|
| 940 |
+
"" # no auto-load signal
|
| 941 |
)
|
| 942 |
|
| 943 |
def handle_cancel_modal() -> Any:
|
|
|
|
| 1339 |
outputs=[
|
| 1340 |
repo_action_modal,
|
| 1341 |
tabs,
|
| 1342 |
+
repo_components["repo_explorer_input"],
|
| 1343 |
+
repo_states["current_repo_id"], # Set the current repo ID
|
| 1344 |
+
status_box_input # Use for auto-load signal
|
| 1345 |
],
|
| 1346 |
js="""(repo_id) => {
|
| 1347 |
console.log('DEBUG: Navigate to repo explorer for:', repo_id);
|
|
|
|
| 1349 |
window.scrollTo({top: 0, behavior: 'smooth'});
|
| 1350 |
}, 200);
|
| 1351 |
}"""
|
| 1352 |
+
).then(
|
| 1353 |
+
# Auto-load the repository if the signal indicates to do so
|
| 1354 |
+
fn=lambda repo_id, signal: handle_load_repository(repo_id) if signal == "auto_load" and repo_id else ("", ""),
|
| 1355 |
+
inputs=[repo_states["current_repo_id"], status_box_input],
|
| 1356 |
+
outputs=[repo_components["repo_status_display"], repo_states["repo_context_summary"]]
|
| 1357 |
+
).then(
|
| 1358 |
+
# Initialize the chatbot with welcome message after auto-loading
|
| 1359 |
+
fn=lambda repo_status, repo_id, repo_context, signal: (
|
| 1360 |
+
initialize_repo_chatbot(repo_status, repo_id, repo_context)
|
| 1361 |
+
if signal == "auto_load" and repo_id else []
|
| 1362 |
+
),
|
| 1363 |
+
inputs=[repo_components["repo_status_display"], repo_states["current_repo_id"], repo_states["repo_context_summary"], status_box_input],
|
| 1364 |
+
outputs=[repo_components["repo_chatbot"]]
|
| 1365 |
)
|
| 1366 |
cancel_modal_btn.click(
|
| 1367 |
fn=handle_cancel_modal,
|