mgbam commited on
Commit
635af98
·
verified ·
1 Parent(s): 2057855

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +35 -17
app.py CHANGED
@@ -1,43 +1,61 @@
1
- # File: app.py
2
  import streamlit as st
3
  from orchestrator.dispatcher import Dispatcher
4
  from components.sidebar import render_sidebar
5
  from components.paper_list import render_paper_list
6
  from components.notebook_view import render_notebook
7
  from components.graph_view import render_graph
8
-
9
 
10
  def main():
11
- # Page configuration with theming
12
- st.set_page_config(page_title="AI Research Companion", layout="wide", initial_sidebar_state="expanded")
 
 
 
13
 
14
- # Render sidebar for inputs: query, num results, theme
15
- query, num_results, theme, search_clicked = render_sidebar()
16
 
17
- # Dynamically inject simple dark CSS if chosen
18
  if theme == "Dark":
19
  st.markdown(
20
- "<style>body {background-color: #0E1117; color: #E6E1DC;} .stButton>button {background-color: #2563EB; color: white;}</style>",
21
- unsafe_allow_html=True
 
 
 
 
 
22
  )
23
 
 
24
  if search_clicked and query:
25
  dispatcher = Dispatcher()
26
-
27
- # 1. Search for papers via MCP servers
28
- papers = dispatcher.search_papers(query, limit=num_results)
29
  render_paper_list(papers)
30
 
31
- # 2. Show notebook for the first paper
32
  if papers:
33
- first_id = papers[0]["id"]
34
- notebook_cells = dispatcher.get_notebook_cells(first_id)
 
 
 
 
 
 
 
35
  render_notebook(notebook_cells)
36
 
37
- # 3. Visualize a knowledge graph for the paper
38
- graph_data = dispatcher.get_graph(first_id)
39
  render_graph(graph_data)
40
 
 
 
 
 
 
 
41
 
42
  if __name__ == "__main__":
43
  main()
 
 
1
  import streamlit as st
2
  from orchestrator.dispatcher import Dispatcher
3
  from components.sidebar import render_sidebar
4
  from components.paper_list import render_paper_list
5
  from components.notebook_view import render_notebook
6
  from components.graph_view import render_graph
7
+ from orchestrator.gemini import gemini_generate
8
 
9
  def main():
10
+ st.set_page_config(
11
+ page_title="🚀 MCP Research Companion",
12
+ layout="wide",
13
+ initial_sidebar_state="expanded"
14
+ )
15
 
16
+ # Sidebar: user query, num results, theme, gemini prompt, etc.
17
+ query, num_results, theme, search_clicked, gemini_prompt = render_sidebar()
18
 
19
+ # Optional theme
20
  if theme == "Dark":
21
  st.markdown(
22
+ """
23
+ <style>
24
+ body {background-color: #0E1117; color: #E6E1DC;}
25
+ .stButton>button {background-color: #2563EB; color: white;}
26
+ </style>
27
+ """,
28
+ unsafe_allow_html=True,
29
  )
30
 
31
+ # Search and display papers
32
  if search_clicked and query:
33
  dispatcher = Dispatcher()
34
+ with st.spinner("Searching MCP servers..."):
35
+ papers = dispatcher.search_papers(query, limit=num_results)
 
36
  render_paper_list(papers)
37
 
 
38
  if papers:
39
+ first_paper = papers[0]
40
+ st.subheader("Gemini-Powered Abstract Summarizer")
41
+ if st.button("Summarize Abstract with Gemini"):
42
+ with st.spinner("Gemini is generating summary..."):
43
+ summary = gemini_generate(first_paper["abstract"])
44
+ st.success(summary)
45
+
46
+ # Show notebook and graph
47
+ notebook_cells = dispatcher.get_notebook_cells(first_paper["id"])
48
  render_notebook(notebook_cells)
49
 
50
+ graph_data = dispatcher.get_graph(first_paper["id"])
 
51
  render_graph(graph_data)
52
 
53
+ # Gemini research Q&A, even if user hasn't hit 'Search'
54
+ if gemini_prompt:
55
+ st.header("💡 Gemini Research Q&A")
56
+ with st.spinner("Gemini is thinking..."):
57
+ answer = gemini_generate(gemini_prompt)
58
+ st.success(answer)
59
 
60
  if __name__ == "__main__":
61
  main()