88from rabbithole .keywords import get_document_keywords
99from rabbithole .loader import load_file , SUPPORTED_IMG_FILE_TYPES
1010from rabbithole .mp3 import SUPPORTED_AV_FILE_TYPES
11+ from rabbithole .planner import generate_plan
1112
1213# Global variables
1314global_documents = {}
@@ -28,6 +29,7 @@ def load_files_with_spinner(files: list) -> dict[str, list[Document]]:
2829 for file in files :
2930 with st .spinner (f'Loading { file .name } ...' ):
3031 documents [file .name ] = load_file (file )
32+ print (file .name , [len (doc .page_content ) for doc in documents [file .name ]])
3133 return documents
3234
3335
@@ -75,6 +77,13 @@ def generate_summary_with_spinner(documents: dict[str, list[Document]]) -> dict[
7577 return summaries
7678
7779
80+ def generate_plan_with_spinner () -> dict :
81+ """Generate a logical plan to study the uploaded documents."""
82+ with st .spinner ("Generating plan..." ):
83+ plan = generate_plan (global_summaries , global_keywords )
84+ return plan
85+
86+
7887st .set_page_config (page_title = "RabbitHole" , page_icon = "🐇" , layout = "wide" )
7988
8089st .title ("RabbitHole" )
@@ -101,4 +110,21 @@ def generate_summary_with_spinner(documents: dict[str, list[Document]]) -> dict[
101110 st .write (global_summaries [doc_name ])
102111 st .divider ()
103112
113+ # Display the plan
114+ st .header ("Study Plan" )
115+ plan = generate_plan_with_spinner ()
116+ for data in plan .get ("plan" , []):
117+ for doc_name , doc_data in data .items ():
118+ st .subheader (doc_name )
119+ st .write (f"**Background Concepts**" )
120+ for concept in doc_data .get ("Background Concepts" , []):
121+ st .write (f"- { concept } " )
122+ st .write (f"**Key Concepts**" )
123+ for concept in doc_data .get ("Key Concepts" , []):
124+ st .write (f"- { concept } " )
125+ st .write (f"**Further Reading**" )
126+ for concept in doc_data .get ("Further Reading" , []):
127+ st .write (f"- { concept } " )
128+ st .write ("" )
129+
104130 st .success ('Summarization completed.' )
0 commit comments