Spaces:
Sleeping
Sleeping
| import langchain_helper as lch # Import custom helper module for LangChain operations | |
| import streamlit as st # Import Streamlit for web app development | |
| # Set up the Streamlit web page title | |
| st.title("Data Structures Problems Generator") | |
| # Define the list of topics for data structure problems | |
| topic_options = [ | |
| "", "Recursion", "Stack", "Queue", "Linked List", "Priority Queue", "Hash Table", "Binary Tree", "Binary Search Tree", "Graph", "Depth-First Search", "Breadth-First Search" | |
| ] | |
| # Create a sidebar selection box in Streamlit for choosing a topic | |
| topic = st.sidebar.selectbox( | |
| "Choose a Topic for the Problem", | |
| topic_options) | |
| # Define the list of difficulty levels for the problems | |
| difficulty_levels = ["", "Easy", "Medium", "Hard"] | |
| # Create a sidebar selection box in Streamlit for choosing the difficulty level | |
| difficulty = st.sidebar.selectbox( | |
| "Choose a Difficulty Level", | |
| difficulty_levels) | |
| # Create buttons in the sidebar for submitting a problem request and for solving a problem | |
| submit_button = st.sidebar.button("Submit") | |
| solve_button = st.sidebar.button("Solve") | |
| # Handle the event when the 'Submit' button is clicked | |
| if submit_button and topic and difficulty: | |
| # Generate a data structure problem using the selected topic and difficulty | |
| response = lch.generate_DS_problem( | |
| topic=topic, difficulty=difficulty) | |
| # Store the generated problem in a variable | |
| lch.coding_problem = response["coding_problem"] | |
| # Display the generated problem on the web page | |
| st.subheader("Coding problem: ") | |
| st.markdown(lch.coding_problem) | |
| # Handle the event when the 'Solve' button is clicked | |
| if solve_button and lch.coding_problem: | |
| # Generate a solution for the stored coding problem | |
| solution = lch.generate_DS_solution(lch.coding_problem) | |
| # Extract the solution from the response | |
| solution = solution["coding_problem_solution"] | |
| # Display both the problem and its solution on the web page | |
| st.subheader("Coding problem: ") | |
| st.markdown(lch.coding_problem) | |
| st.subheader("Solution: ") | |
| st.markdown(solution) |