Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| def render_sidebar(): | |
| """ | |
| Sidebar with all controls for the research companion app. | |
| Returns: | |
| - query (str): The user's main research query. | |
| - num_results (int): Max number of papers to show. | |
| - theme (str): 'Light' or 'Dark'. | |
| - search_clicked (bool): Did user click Search? | |
| - gemini_prompt (str): Optional Gemini Q&A question. | |
| - mcp_codegen_prompt (str): Prompt for code generation. | |
| - codegen_clicked (bool): Did user click Generate Code? | |
| """ | |
| st.sidebar.title("π MCP Research Companion") | |
| query = st.sidebar.text_input( | |
| label="Enter your research topic:", | |
| value="", | |
| placeholder="e.g. CRISPR delivery" | |
| ) | |
| num_results = st.sidebar.slider( | |
| label="Max papers to display", | |
| min_value=1, | |
| max_value=20, | |
| value=5 | |
| ) | |
| theme = st.sidebar.selectbox( | |
| label="Theme", | |
| options=["Light", "Dark"], | |
| index=0 | |
| ) | |
| gemini_prompt = st.sidebar.text_input( | |
| label="π‘ Ask Gemini (about anything!):", | |
| value="", | |
| placeholder="e.g. Summarize the latest CRISPR techniques" | |
| ) | |
| # New: MCP server codegen | |
| st.sidebar.markdown("---") | |
| st.sidebar.subheader("π οΈ MCP Server Codegen (Gemini)") | |
| mcp_codegen_prompt = st.sidebar.text_area( | |
| label="Describe the MCP server you want (plain English):", | |
| value="", | |
| placeholder="e.g. Write a Python MCP server for OpenWeatherMap with get_current_weather tool." | |
| ) | |
| codegen_clicked = st.sidebar.button("Generate MCP Code") | |
| search_clicked = st.sidebar.button("Search") | |
| return query, num_results, theme, search_clicked, gemini_prompt, mcp_codegen_prompt, codegen_clicked | |