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) |