Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| def CreatePage(): | |
| st.header("Define Your Custom Query") | |
| if "data" not in st.session_state or st.session_state["data"] is None: | |
| st.warning("Please upload data first! Use the 'Upload Data' section to upload your data.") | |
| else: | |
| column = st.selectbox( | |
| "Select entity column", | |
| st.session_state["data"].columns, | |
| help="Select the column that contains the entities for which you want to define queries." | |
| ) | |
| st.markdown(""" | |
| <style> | |
| div[data-baseweb="select"] div[data-id="select"] {{ | |
| background-color: #f0f8ff; | |
| }} | |
| </style> | |
| """, unsafe_allow_html=True) | |
| st.subheader("Define Fields to Extract") | |
| num_fields = st.number_input( | |
| "Number of fields to extract", | |
| min_value=1, | |
| value=1, | |
| step=1, | |
| help="Specify how many fields you want to extract from each entity." | |
| ) | |
| fields = [] | |
| for i in range(num_fields): | |
| field = st.text_input( | |
| f"Field {i+1} name", | |
| key=f"field_{i}", | |
| placeholder=f"Enter field name for {i+1}", | |
| help="Name the field you want to extract from the entity." | |
| ) | |
| if field: | |
| fields.append(field) | |
| if fields: | |
| st.subheader("Query Template") | |
| query_template = st.text_area( | |
| "Enter query template (Use '{entity}' to represent each entity)", | |
| value=f"Find the {', '.join(fields)} for {{entity}}", | |
| help="You can use {entity} as a placeholder to represent each entity in the query." | |
| ) | |
| if "{entity}" in query_template: | |
| example_entity = str(st.session_state["data"][column].iloc[0]) | |
| example_query = query_template.replace("{entity}", example_entity) | |
| st.write("### Example Query Preview") | |
| st.code(example_query) | |
| if st.button("Save Query Configuration"): | |
| if not fields: | |
| st.error("Please define at least one field to extract.") | |
| elif not query_template: | |
| st.error("Please enter a query template.") | |
| else: | |
| st.session_state["column_selection"] = column | |
| st.session_state["query_template"] = query_template | |
| st.session_state["extraction_fields"] = fields | |
| st.success("Query configuration saved successfully!") | |