From f2a7910cc8f9871c01e1e1c6b131ea93f0db3d5f Mon Sep 17 00:00:00 2001
From: April M <36110273+aimurphy@users.noreply.github.com>
Date: Fri, 21 Nov 2025 12:25:17 -0800
Subject: [PATCH] peer review
---
docs/docs/get-started/install.mdx | 13 +-
docs/docs/get-started/quickstart.mdx | 185 ++++++++++++++-------------
2 files changed, 100 insertions(+), 98 deletions(-)
diff --git a/docs/docs/get-started/install.mdx b/docs/docs/get-started/install.mdx
index 4ee634bc..19f5d06d 100644
--- a/docs/docs/get-started/install.mdx
+++ b/docs/docs/get-started/install.mdx
@@ -226,22 +226,23 @@ If the TUI detects OAuth credentials, it enforces the **Advanced Setup** path.
This connection enables real-time document synchronization with external services.
Supported webhook endpoints:
- Google Drive: `/connectors/google_drive/webhook`
- - OneDrive: `/connectors/onedrive/webhook`
+ - OneDrive: `/connectors/onedrive/webhook`
- SharePoint: `/connectors/sharepoint/webhook`
-
+
10. Continue with [Application Onboarding](#application-onboarding).
-## Close the OpenRAG TUI
+## Exit the OpenRAG TUI
-To close the OpenRAG TUI, press q.
-The OpenRAG containers will continue to be served until the containers are stopped.
+To exit the OpenRAG TUI, press q.
+The OpenRAG containers continue to run until they are stopped.
For more information, see [Manage OpenRAG containers with the TUI ](#tui-container-management).
-To start the TUI again, run `uv run openrag`.
+To relaunch the TUI, run `uv run openrag`.
+If you installed OpenRAG with `uvx`, run `uvx openrag`.
## Manage OpenRAG containers with the TUI {#tui-container-management}
diff --git a/docs/docs/get-started/quickstart.mdx b/docs/docs/get-started/quickstart.mdx
index 694becaa..40f011f5 100644
--- a/docs/docs/get-started/quickstart.mdx
+++ b/docs/docs/get-started/quickstart.mdx
@@ -19,10 +19,10 @@ For this quickstart, install OpenRAG with the automatic installer script and bas
1. Create a directory to store the OpenRAG configuration files, and then change to that directory:
- ```bash
- mkdir openrag-workspace
- cd openrag-workspace
- ```
+ ```bash
+ mkdir openrag-workspace
+ cd openrag-workspace
+ ```
2. [Download the OpenRAG install script](https://docs.openr.ag/files/run_openrag_with_prereqs.sh), move it to your OpenRAG directory, and then run it:
@@ -37,26 +37,27 @@ For this quickstart, install OpenRAG with the automatic installer script and bas
3. Select **Basic Setup**.
-4. Click **Generate Passwords** to automatically generate OpenRAG passwords.
+4. Create passwords for your OpenRAG installation's OpenSearch and Langflow services. You can click **Generate Passwords** to automatically generate passwords.
-5. Click **Start All Services**, and then wait while the startup process pulls and runs the necessary container images.
-This can take a few minutes.
-Proceed when you see the following messages in the TUI:
+ The OpenSearch password is required. The Langflow admin password is optional.
+ If you don't generate a Langflow admin password, Langflow runs in [autologin mode](https://docs.langflow.org/api-keys-and-authentication#langflow-auto-login) with no password required.
- ```bash
- Services started successfully
- Command completed successfully
- ```
+ Your passwords are saved in the `.env` file that is used to start OpenRAG.
+ You can find this file in your OpenRAG installation directory.
-6. To open the OpenRAG application, navigate to the TUI main menu, and then click **Open App**.
+5. Click **Save Configuration**, and then click **Start All Services**.
+
+ Wait a few minutes while the startup process pulls and runs the necessary container images.
+ Proceed when you see the following messages in the terminal user interface (TUI):
+
+ ```bash
+ Services started successfully
+ Command completed successfully
+ ```
+
+6. To open the OpenRAG application, go to the TUI main menu, and then click **Open App**.
Alternatively, in your browser, navigate to `localhost:3000`.
- :::tip
- To quit OpenRAG, go to the TUI main menu, and then press q.
-
- To restart OpenRAG, run `uvx openrag`.
- :::
-
7. Select the **OpenAI** model provider, enter your OpenAI API key, and then click **Complete**.
For this quickstart, you can use the default options for the model settings.
@@ -140,98 +141,98 @@ You can send and receive requests with the Langflow API using Python, TypeScript
2. Create a [Langflow API key](https://docs.langflow.org/api-keys-and-authentication), which is a user-specific token required to send requests to the Langflow server.
This key doesn't grant access to OpenRAG.
- 1. In the Langflow visual editor, click your user icon in the header, and then select **Settings**.
- 2. Click **Langflow API Keys**, and then click **Add New**.
- 3. Name your key, and then click **Create API Key**.
- 4. Copy the API key and store it securely.
- 5. Exit the Langflow **Settings** page to return to the visual editor.
+ 1. In the Langflow visual editor, click your user icon in the header, and then select **Settings**.
+ 2. Click **Langflow API Keys**, and then click **Add New**.
+ 3. Name your key, and then click **Create API Key**.
+ 4. Copy the API key and store it securely.
+ 5. Exit the Langflow **Settings** page to return to the visual editor.
3. Click **Share**, and then select **API access** to get pregenerated code snippets that call the Langflow API and run the flow.
- These code snippets construct API requests with your Langflow server URL (`LANGFLOW_SERVER_ADDRESS`), the flow to run (`FLOW_ID`), required headers (`LANGFLOW_API_KEY`, `Content-Type`), and a payload containing the required inputs to run the flow, including a default chat input message.
+ These code snippets construct API requests with your Langflow server URL (`LANGFLOW_SERVER_ADDRESS`), the flow to run (`FLOW_ID`), required headers (`LANGFLOW_API_KEY`, `Content-Type`), and a payload containing the required inputs to run the flow, including a default chat input message.
- In production, you might modify the inputs to suit your application logic. For example, you might replace the default chat input message with dynamic user input.
+ In production, you might modify the inputs to suit your application logic. For example, you might replace the default chat input message with dynamic user input.
-
-
+
+
- ```python
- import requests
- import os
- import uuid
+ ```python
+ import requests
+ import os
+ import uuid
- api_key = 'LANGFLOW_API_KEY'
- url = "http://LANGFLOW_SERVER_ADDRESS/api/v1/run/FLOW_ID" # The complete API endpoint URL for this flow
+ api_key = 'LANGFLOW_API_KEY'
+ url = "http://LANGFLOW_SERVER_ADDRESS/api/v1/run/FLOW_ID" # The complete API endpoint URL for this flow
- # Request payload configuration
- payload = {
- "output_type": "chat",
- "input_type": "chat",
- "input_value": "hello world!"
- }
- payload["session_id"] = str(uuid.uuid4())
+ # Request payload configuration
+ payload = {
+ "output_type": "chat",
+ "input_type": "chat",
+ "input_value": "hello world!"
+ }
+ payload["session_id"] = str(uuid.uuid4())
- headers = {"x-api-key": api_key}
+ headers = {"x-api-key": api_key}
- try:
- # Send API request
- response = requests.request("POST", url, json=payload, headers=headers)
- response.raise_for_status() # Raise exception for bad status codes
+ try:
+ # Send API request
+ response = requests.request("POST", url, json=payload, headers=headers)
+ response.raise_for_status() # Raise exception for bad status codes
- # Print response
- print(response.text)
+ # Print response
+ print(response.text)
- except requests.exceptions.RequestException as e:
- print(f"Error making API request: {e}")
- except ValueError as e:
- print(f"Error parsing response: {e}")
- ```
+ except requests.exceptions.RequestException as e:
+ print(f"Error making API request: {e}")
+ except ValueError as e:
+ print(f"Error parsing response: {e}")
+ ```
-
-
+
+
- ```typescript
- const crypto = require('crypto');
- const apiKey = 'LANGFLOW_API_KEY';
- const payload = {
- "output_type": "chat",
- "input_type": "chat",
- "input_value": "hello world!"
- };
- payload.session_id = crypto.randomUUID();
+ ```typescript
+ const crypto = require('crypto');
+ const apiKey = 'LANGFLOW_API_KEY';
+ const payload = {
+ "output_type": "chat",
+ "input_type": "chat",
+ "input_value": "hello world!"
+ };
+ payload.session_id = crypto.randomUUID();
- const options = {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- "x-api-key": apiKey
- },
- body: JSON.stringify(payload)
- };
+ const options = {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ "x-api-key": apiKey
+ },
+ body: JSON.stringify(payload)
+ };
- fetch('http://LANGFLOW_SERVER_ADDRESS/api/v1/run/FLOW_ID', options)
- .then(response => response.json())
- .then(response => console.warn(response))
- .catch(err => console.error(err));
- ```
+ fetch('http://LANGFLOW_SERVER_ADDRESS/api/v1/run/FLOW_ID', options)
+ .then(response => response.json())
+ .then(response => console.warn(response))
+ .catch(err => console.error(err));
+ ```
-
-
+
+
- ```bash
- curl --request POST \
- --url 'http://LANGFLOW_SERVER_ADDRESS/api/v1/run/FLOW_ID?stream=false' \
- --header 'Content-Type: application/json' \
- --header "x-api-key: LANGFLOW_API_KEY" \
- --data '{
- "output_type": "chat",
- "input_type": "chat",
- "input_value": "hello world!"
- }'
- ```
+ ```bash
+ curl --request POST \
+ --url 'http://LANGFLOW_SERVER_ADDRESS/api/v1/run/FLOW_ID?stream=false' \
+ --header 'Content-Type: application/json' \
+ --header "x-api-key: LANGFLOW_API_KEY" \
+ --data '{
+ "output_type": "chat",
+ "input_type": "chat",
+ "input_value": "hello world!"
+ }'
+ ```
-
-
+
+
4. Copy your preferred snippet (Python, TypeScript, or curl), and then run it: