peer review
This commit is contained in:
parent
ba6d25679a
commit
f2a7910cc8
2 changed files with 100 additions and 98 deletions
|
|
@ -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}
|
||||
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue