Spaces:
Build error
Build error
Download src/streamlit_app.py from PaulHouston/Streamlit: direct link, hf CLI and curl.
- Browser
- Download file 3.77 kB
-
https://huggingface.co/spaces/PaulHouston/Streamlit/resolve/main/src/streamlit_app.py
- Command line
-
hf download hf://spaces/PaulHouston/Streamlit/src/streamlit_app.py
-
curl -L -o streamlit_app.py https://huggingface.co/spaces/PaulHouston/Streamlit/resolve/main/src/streamlit_app.py
3.77 kB
| import altair as alt | |
| import numpy as np | |
| import pandas as pd | |
| import streamlit as st | |
| import streamlit.components.v1 as components # For embedding custom HTML | |
| from generate_knowledge_graph import generate_knowledge_graph | |
| # Set up Streamlit page configuration | |
| st.set_page_config( | |
| page_icon=None, | |
| layout="wide", # Use wide layout for better graph display | |
| initial_sidebar_state="auto", | |
| menu_items=None | |
| ) | |
| # Set the title of the app | |
| st.title("Knowledge Graph From Text") | |
| # Sidebar section for user input method | |
| st.sidebar.title("Input document") | |
| input_method = st.sidebar.radio( | |
| "Choose an input method:", | |
| ["Upload txt", "Input text"], # Options for uploading a file or manually inputting text | |
| ) | |
| # Case 1: User chooses to upload a .txt file | |
| if input_method == "Upload txt": | |
| # File uploader widget in the sidebar | |
| uploaded_file = st.sidebar.file_uploader(label="Upload file", type=["txt"]) | |
| if uploaded_file is not None: | |
| # Read the uploaded file content and decode it as UTF-8 text | |
| text = uploaded_file.read().decode("utf-8") | |
| # Button to generate the knowledge graph | |
| if st.sidebar.button("Generate Knowledge Graph"): | |
| with st.spinner("Generating knowledge graph..."): | |
| # Call the function to generate the graph from the text | |
| net = generate_knowledge_graph(text) | |
| st.success("Knowledge graph generated successfully!") | |
| print("hello world") | |
| # Save the graph to an HTML file | |
| output_file = "knowledge_graph.html" | |
| net.save_graph(output_file) | |
| # Open the HTML file and display it within the Streamlit app | |
| HtmlFile = open(output_file, 'r', encoding='utf-8') | |
| components.html(HtmlFile.read(), height=1000) | |
| # Case 2: User chooses to directly input text | |
| else: | |
| # Text area for manual input | |
| text = st.sidebar.text_area("Input text", height=300) | |
| if text: # Check if the text area is not empty | |
| if st.sidebar.button("Generate Knowledge Graph"): | |
| with st.spinner("Generating knowledge graph..."): | |
| # Call the function to generate the graph from the input text | |
| net = generate_knowledge_graph(text) | |
| st.success("Knowledge graph generated successfully!") | |
| # Save the graph to an HTML file | |
| output_file = "knowledge_graph.html" | |
| net.save_graph(output_file) | |
| # Open the HTML file and display it within the Streamlit app | |
| HtmlFile = open(output_file, 'r', encoding='utf-8') | |
| components.html(HtmlFile.read(), height=1000) | |
| """ | |
| # Welcome to Streamlit! | |
| Edit `/streamlit_app.py` to customize this app to your heart's desire :heart:. | |
| If you have any questions, checkout our [documentation](https://docs.streamlit.io) and [community | |
| forums](https://discuss.streamlit.io). | |
| In the meantime, below is an example of what you can do with just a few lines of code: | |
| """ | |
| num_points = st.slider("Number of points in spiral", 1, 10000, 1100) | |
| num_turns = st.slider("Number of turns in spiral", 1, 300, 31) | |
| indices = np.linspace(0, 1, num_points) | |
| theta = 2 * np.pi * num_turns * indices | |
| radius = indices | |
| x = radius * np.cos(theta) | |
| y = radius * np.sin(theta) | |
| df = pd.DataFrame({ | |
| "x": x, | |
| "y": y, | |
| "idx": indices, | |
| "rand": np.random.randn(num_points), | |
| }) | |
| st.altair_chart(alt.Chart(df, height=700, width=700) | |
| .mark_point(filled=True) | |
| .encode( | |
| x=alt.X("x", axis=None), | |
| y=alt.Y("y", axis=None), | |
| color=alt.Color("idx", legend=None, scale=alt.Scale()), | |
| size=alt.Size("rand", legend=None, scale=alt.Scale(range=[1, 150])), | |
| )) | |