Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ For a detailed, hands-on introduction to the project, please see our quickstart
| **Snowflake Horizon Catalog [ FMCG ]** | [`quickstart_fmcg_snowflake.ipynb`](notebooks/quickstart_fmcg_snowflake.ipynb) | Snowflake Notebook Only |
| **Native Snowflake with Cortex Analyst [ Tech Manufacturing ]** | [`quickstart_native_snowflake.ipynb`](notebooks/quickstart_native_snowflake.ipynb) | [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Intugle/data-tools/blob/main/notebooks/quickstart_native_snowflake.ipynb) |
| **Native Databricks with AI/BI Genie [ Tech Manufacturing ]** | [`quickstart_native_databricks.ipynb`](notebooks/quickstart_native_databricks.ipynb) | [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Intugle/data-tools/blob/main/notebooks/quickstart_native_databricks.ipynb) |
| **Streamlit App** | [`quickstart_streamlit.ipynb`](notebooks/quickstart_streamlit.ipynb) | [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Intugle/data-tools/blob/main/notebooks/quickstart_streamlit.ipynb) |

These datasets will take you through the following steps:

Expand Down Expand Up @@ -290,11 +291,13 @@ You can launch the Streamlit application using the `intugle-mcp` command or `uvx
```bash
intugle-streamlit
# Or using uvx
uvx --from intugle intugle-streamlit
uvx --from intugle[streamlit] intugle-streamlit
```

Open the URL provided in your terminal (usually `http://localhost:8501`) to access the application. For more details, refer to the [Streamlit App documentation](https://intugle.github.io/data-tools/docs/streamlit-app).

To run the app in a cloud environment like Google Colab, please refer to our [Streamlit quickstart notebook](notebooks/quickstart_streamlit.ipynb).

## Community

Join our community to ask questions, share your projects, and connect with other users.
Expand Down
1 change: 1 addition & 0 deletions docsite/docs/examples.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ For a detailed, hands-on introduction to the project, please see our quickstart
| **Snowflake Horizon Catalog [ FMCG ]** | [`quickstart_fmcg_snowflake.ipynb`](https://github.com/Intugle/data-tools/blob/main/notebooks/quickstart_fmcg_snowflake.ipynb) | Snowflake Notebook Only |
| **Native Snowflake with Cortex Analyst [ Tech Manufacturing ]** | [`quickstart_native_snowflake.ipynb`](https://github.com/Intugle/data-tools/blob/main/notebooks/quickstart_native_snowflake.ipynb) | [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Intugle/data-tools/blob/main/notebooks/quickstart_native_snowflake.ipynb) |
| **Native Databricks with AI/BI Genie [ Tech Manufacturing ]** | [`quickstart_native_databricks.ipynb`](https://github.com/Intugle/data-tools/blob/main/notebooks/quickstart_native_databricks.ipynb) | [![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Intugle/data-tools/blob/main/notebooks/quickstart_native_databricks.ipynb) |
| **Streamlit App** | [`quickstart_streamlit.ipynb`](https://github.com/Intugle/data-tools/blob/main/notebooks/quickstart_streamlit.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Intugle/data-tools/blob/main/notebooks/quickstart_streamlit.ipynb) |

These datasets will take you through the following steps:

Expand Down
8 changes: 7 additions & 1 deletion docsite/docs/streamlit-app.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ You can launch the Streamlit application using the `intugle-streamlit` command o
```bash
intugle-streamlit
# Or using uvx
uvx --from intugle intugle-streamlit
uvx --from intugle[streamlit] intugle-streamlit
```

Open the URL provided in your terminal (usually `http://localhost:8501`) to access the application.
Expand All @@ -64,3 +64,9 @@ The application guides you through a simple, multi-step process, which is tracke
4. **Build Semantic Model**: After preparing your data, click **"Create Semantic Model"**. You will be prompted to provide a "domain" (e.g., *Healthcare*, *Manufacturing*) to give the LLM context. The app will then profile the data and generate a business glossary for each table.
5. **Predict Links**: Once profiling is complete, click **"Run Link Prediction"** to discover the relationships between your datasets.
6. **Explore & Download**: View the results as an interactive graph or a detailed table. You can download the underlying YAML configuration files from the sidebar at any time.

## Running on Google Colab

To run the Streamlit app in a cloud environment like Google Colab, which requires exposing the server via a public URL, please refer to our quickstart notebook:

- [**Streamlit Quickstart Notebook**](https://github.com/Intugle/data-tools/blob/main/notebooks/quickstart_streamlit.ipynb)
126 changes: 126 additions & 0 deletions notebooks/quickstart_streamlit.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "5a6f5a26",
"metadata": {},
"source": [
"# Running the Intugle Streamlit App on Google Colab\n",
"\n",
"This notebook guides you through the process of running the Intugle semantic model builder, which is a Streamlit application, directly within a Google Colab environment.\n",
"\n",
"Since Colab provides a containerized environment, we cannot directly access the web server started by Streamlit. To solve this, we will use `ngrok`, a tool that creates a secure public URL (a \"tunnel\") to the Streamlit application running inside our Colab instance.\n",
"\n",
"**Steps:**\n",
"\n",
"1. **Install** the required Python packages.\n",
"2. **Configure and run `ngrok`** to expose the Streamlit app.\n",
"3. **Shut down** the tunnel when you are finished."
]
},
{
"cell_type": "markdown",
"id": "c20194c1",
"metadata": {},
"source": [
"## 1. Install Dependencies\n",
"\n",
"First, we need to install the `intugle` library. We use the `[streamlit]` extra, which ensures that Streamlit and all other necessary dependencies for the web app are installed at the same time."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b26de4ff",
"metadata": {},
"outputs": [],
"source": [
"!pip install intugle[streamlit]"
]
},
{
"cell_type": "markdown",
"id": "df8720f3",
"metadata": {},
"source": [
"## 2. Configure and Run the Streamlit App\n",
"\n",
"Next, we will start the Intugle Streamlit app and expose it to the web using `ngrok`.\n",
"\n",
"**Important:** You need a free `ngrok` authentication token for this step.\n",
"\n",
"1. Go to the [ngrok Dashboard](https://dashboard.ngrok.com/get-started/your-authtoken) and sign up for a free account.\n",
"2. Copy your authentication token.\n",
"3. Paste the token into the `PYNGROK_TOKEN` variable in the code block below, replacing `<your-key>`.\n",
"\n",
"The script will then:\n",
"1. Set your `ngrok` auth token.\n",
"2. Start the Intugle Streamlit server in the background on its default port (`8501`).\n",
"3. Create a secure public URL that tunnels traffic to the Streamlit server.\n",
"\n",
"Once you run the cell, click the public URL that is printed to access the application in your browser.\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "4564ff48",
"metadata": {},
"outputs": [],
"source": [
"from pyngrok import ngrok\n",
"\n",
"# TODO: Replace <your-key> with your actual ngrok authentication token.\n",
"# You can get a free token from https://dashboard.ngrok.com/get-started/your-authtoken\n",
"PYNGROK_TOKEN = \"<your-key>\"\n",
"\n",
"# Set authentication token\n",
"ngrok.set_auth_token(PYNGROK_TOKEN)\n",
"\n",
"# Start the Intugle Streamlit server in the background on port 8501\n",
"# The `nohup` command ensures it keeps running, and `&` runs it as a background process.\n",
"!nohup intugle-streamlit &\n",
"\n",
"# Start an ngrok tunnel to expose the Streamlit server\n",
"# This connects to the default Streamlit port (8501)\n",
"ngrok_tunnel = ngrok.connect(addr='8501', proto='http', bind_tls=True)\n",
"\n",
"# Print the public URL to access the app\n",
"print(' * Tunnel URL:', ngrok_tunnel.public_url)"
]
},
{
"cell_type": "markdown",
"id": "808123d4",
"metadata": {},
"source": [
"## 3. Shut Down the Tunnel\n",
"\n",
"When you are finished using the application, it is good practice to close the `ngrok` tunnel to release the resources. The following script will find all active tunnels and disconnect them.\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "4fb8abf7",
"metadata": {},
"outputs": [],
"source": [
"# Close all active tunnels\n",
"from pyngrok import ngrok\n",
"\n",
"active_tunnels = ngrok.get_tunnels()\n",
"for tunnel in active_tunnels:\n",
" ngrok.disconnect(tunnel.public_url)\n",
" print(f\"Closed tunnel: {tunnel.public_url}\")\n"
]
}
],
"metadata": {
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
10 changes: 1 addition & 9 deletions src/intugle/streamlit_app/.streamlit/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,4 @@ primaryColor = "#8B5CF6"
backgroundColor = "#ffffff"
secondaryBackgroundColor = "#F7F5FF"
textColor = "#111827"
font = "sans serif"

[smtp]
host = "smtp.gmail.com"
port = 465
username = "hello@intugle.ai"
password = "1234"
from_email = "hello@intugle.ai"
from_name = "Intugle Bot"
font = "sans serif"