peer review

This commit is contained in:
April M 2025-11-21 12:25:17 -08:00
parent ba6d25679a
commit f2a7910cc8
2 changed files with 100 additions and 98 deletions

View file

@ -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).
</TabItem>
</Tabs>
<PartialOnboarding />
## Close the OpenRAG TUI
## Exit the OpenRAG TUI
To close the OpenRAG TUI, press <kbd>q</kbd>.
The OpenRAG containers will continue to be served until the containers are stopped.
To exit the OpenRAG TUI, press <kbd>q</kbd>.
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}

View file

@ -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 <kbd>q</kbd>.
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 <Icon name="Plus" aria-hidden="true"/> **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 <Icon name="Plus" aria-hidden="true"/> **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.
<Tabs>
<TabItem value="python" label="Python">
<Tabs>
<TabItem value="python" label="Python">
```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}")
```
</TabItem>
<TabItem value="typescript" label="TypeScript">
</TabItem>
<TabItem value="typescript" label="TypeScript">
```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));
```
</TabItem>
<TabItem value="curl" label="curl">
</TabItem>
<TabItem value="curl" label="curl">
```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!"
}'
```
</TabItem>
</Tabs>
</TabItem>
</Tabs>
4. Copy your preferred snippet (Python, TypeScript, or curl), and then run it: