Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import graphviz | |
| from io import BytesIO | |
| # Function to create a process flow diagram | |
| def create_flow_diagram(process_name): | |
| diagram = graphviz.Digraph(format="png") | |
| diagram.attr(rankdir="LR") | |
| # Example of a simple flow | |
| diagram.node("Start", "Start") | |
| diagram.node("Process", process_name) | |
| diagram.node("End", "End") | |
| # Add edges | |
| diagram.edge("Start", "Process") | |
| diagram.edge("Process", "End") | |
| return diagram | |
| # Function to generate explanation | |
| def generate_explanation(process_name): | |
| explanation = ( | |
| f"The process named '{process_name}' begins with the initiation phase (Start), " | |
| f"then transitions through the core processing stage (Process), " | |
| f"and finally concludes in the termination phase (End). This flow ensures clarity and simplicity in execution." | |
| ) | |
| return explanation | |
| # Streamlit App | |
| def main(): | |
| st.title("Process Flow Diagram & Explanation Generator") | |
| # Input for the process name | |
| process_name = st.text_input("Enter the name of the process:", "Example Process") | |
| if process_name: | |
| # Display process flow diagram | |
| st.subheader("Process Flow Diagram") | |
| diagram = create_flow_diagram(process_name) | |
| diagram_data = diagram.pipe() | |
| # Display Diagram | |
| st.image(BytesIO(diagram_data), format="PNG") | |
| # Display explanation | |
| st.subheader("Process Explanation") | |
| explanation = generate_explanation(process_name) | |
| st.write(explanation) | |
| # Provide download options | |
| st.download_button( | |
| label="Download Diagram as PNG", | |
| data=diagram_data, | |
| file_name=f"{process_name}_flow_diagram.png", | |
| mime="image/png" | |
| ) | |
| if __name__ == "__main__": | |
| main() | |