Spaces:
Running
Running
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 | |