Skip to content

Many small changes post documentation party READY FOR MERGE #1544

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 12, 2025
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
74 changes: 2 additions & 72 deletions docs/AI-Connect.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,11 @@ Add the license provided by SWIRL to the installation’s `.env` file in the fol
SWIRL_LICENSE={"owner": "<owner-name>", "expiration": "<expiration-date>", "key": "<public-key>"}
```

If the license is invalid, a message will appear in `logs/django.log`. Please [contact support](mailto:support@swirlaiconnect.com) if this happens.
If the license is invalid, a message will appear in `logs/django.log`. Please [contact support](#support) for assistance.

## Database

For Proof of Value (POV) testing, SWIRL AI Search, Enterprise Edition can use SQLite3.
Please [contact support](#support) for assistance with this configuration.
For Proof of Value (POV) testing, SWIRL AI Search, Enterprise Edition can use SQLite3. [Contact support](#support) for assistance with this configuration.

For production environments, SWIRL recommends **PostgreSQL**.

Expand All @@ -55,37 +54,6 @@ DATABASES = {
}
```

For more details, refer to the [Admin Guide - Configuring Django](./Admin-Guide#configuring-django).

## OpenID Connect

To enable OpenID Connect for authentication and auto-provisioning, update the following variables in the instance’s `.env` file:

```
OIDC_RP_CLIENT_ID=''
OIDC_RP_CLIENT_SECRET=''
OIDC_OP_AUTHORIZATION_ENDPOINT=''
OIDC_OP_TOKEN_ENDPOINT=''
OIDC_OP_USER_ENDPOINT=''
OIDC_RP_SIGN_ALGO=''
OIDC_OP_JWKS_ENDPOINT=''
LOGIN_REDIRECT_URL=''
LOGOUT_REDIRECT_URL=''
OIDC_USERNAME_ALGO=''
OIDC_STORE_ACCESS_TOKEN=''
OIDC_STORE_ID_TOKEN=''
OIDC_AUTHENTICATION_CALLBACK_URL=''
```

## Connecting to Microsoft IDP

For Microsoft Identity Provider (IDP) authentication, set the following **OS environment variables** (do not place these in `.env`):

```
export MSAL_CB_PORT=8000
export MSAL_HOST=localhost
```

## Connecting to M365

To connect SWIRL to your **Microsoft 365 (M365) tenant**, follow the instructions in the [Microsoft 365 Guide](./M365-Guide).
Expand Down Expand Up @@ -120,44 +88,6 @@ To manage authenticators, go to: [http://localhost:8000/swirl/aiproviders](http:
| `should_expire` | Boolean; determines if tokens need refreshing (default: `True`) |
| `use_basic_auth` | Boolean; enables basic authentication instead of SSO |

## Microsoft 365 Authentication

SWIRL includes a preconfigured **Microsoft Authenticator**:

```
{
"idp": "Microsoft",
"name": "Microsoft",
"active": false,
"callback_path": "/swirl/callback/microsoft-callback",
"client_id": "<your-client-id>",
"client_secret": "<your-client-secret>",
"app_uri": "http://localhost:8000",
"auth_uri": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize",
"token_uri": "https://login.microsoftonline.com/common/oauth2/v2.0/token",
"user_data_url": "https://graph.microsoft.com/v1.0/me",
"user_data_params": {
"$select": "displayName,mail,userPrincipalName"
},
"user_data_headers": {
"Authorization": "Bearer {access_token}"
},
"user_data_method": "GET",
"initiate_auth_code_flow_params": {},
"exchange_code_params": {},
"is_code_challenge": true,
"scopes": "User.Read Mail.Read Files.Read.All Calendars.Read Sites.Read.All Chat.Read offline_access",
"should_expire": true,
"use_basic_auth": true
}
```

**Activating the Microsoft Authenticator**

To enable Microsoft authentication, register a **new SWIRL app** in **Azure**. Refer to the [M365 Guide](./M365-Guide) for detailed setup instructions.

## Other Authenticators

For authentication with **Elastic, OpenSearch, CAS2, Salesforce, ServiceNow, Okta, Auth0, Ping Federate**, and other systems, please [contact support](#support).

# Connecting to Generative AI (GAI) and Large Language Models (LLMs)
Expand Down
5 changes: 4 additions & 1 deletion docs/Admin-Guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -611,6 +611,9 @@ DATABASES = {
}
```

{: .warning }
The following sections apply **only** to SWIRL Community Edition. For Enterprise Edition instructions view the [AI Connect Guide](AI-Connect#postgresql-configuration).

## Configuring PostgreSQL as the Database Backend

1. **Install PostgreSQL** (if not already installed).
Expand All @@ -621,7 +624,7 @@ DATABASES = {
pip install psycopg2
```

4. **Uncomment the PostgreSQL connector** in these files:
4. **If you are using**Uncomment the PostgreSQL connector** in these files:

**`swirl/connectors/__init__.py`**
```shell
Expand Down
42 changes: 42 additions & 0 deletions docs/M365-Guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,48 @@ Edit the `static/api/config/default` file:
}
```

{: .warning }
The following section applies to **SWIRL Enterprise Edition only**.
Community Edition users may skip to the next section.

## Activate the Authenticator

SWIRL includes a preconfigured **Microsoft Authenticator**, here: <http://localhost:8000/swirl/authenticators/Microsoft/>

* Update the `client-id`
* Update the `client-secret`
* Change the `app_uri` to the address of the server where SWIRL is installed

```
{
"idp": "Microsoft",
"name": "Microsoft",
"active": false,
"callback_path": "/swirl/callback/microsoft-callback",
"client_id": "<client-id>",
"client_secret": "<client-secret>",
"app_uri": "http://localhost:8000",
"auth_uri": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize",
"token_uri": "https://login.microsoftonline.com/common/oauth2/v2.0/token",
"user_data_url": "https://graph.microsoft.com/v1.0/me",
"user_data_params": {
"$select": "displayName,mail,userPrincipalName"
},
"user_data_headers": {
"Authorization": "Bearer {access_token}"
},
"user_data_method": "GET",
"initiate_auth_code_flow_params": {},
"exchange_code_params": {},
"is_code_challenge": true,
"scopes": "User.Read Mail.Read Files.Read.All Calendars.Read Sites.Read.All Chat.Read offline_access",
"should_expire": true,
"use_basic_auth": true
}
```

Click the `PUT` button to save the Authenticator.

## Restart SWIRL

```shell
Expand Down
26 changes: 7 additions & 19 deletions docs/Quick-Start-Enterprise.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,9 @@ Ensure Docker is running before proceeding!

## Downloading SWIRL Enterprise Files

1. Locate the email from `hello@swirlaiconnect.com` with the subject **"Try SWIRL Enterprise"**.
1. Locate the email with the subject **"Try SWIRL Enterprise"**.
2. The email contains three attachments:
- `Try SWIRL Enterprise with Docker.pdf`
- A PDF with detailed instructions
- `docker-compose.yaml`
- `env.license`
3. **Save** `docker-compose.yaml` to a folder on the target server.
Expand Down Expand Up @@ -87,6 +87,10 @@ Once complete, the output should look like this:
- **Username:** `admin`
- **Password:** `password`

{: .warning }
If you receive a warning about the password being compromised, follow these steps:
[Change the super user password](./Admin-Guide#changing-the-super-user-password)

5. Enter a search term and press `Search`. The ranked results should appear:

![SWIRL Results No M365](images/swirl_40_results.png)
Expand Down Expand Up @@ -127,19 +131,10 @@ To use **Generate AI Insights** (RAG) or **AI Search Assistant**, at least one A

7. To access **SWIRL AI Search Assistant**, visit: [http://localhost:8000/galaxy/chat](http://localhost:8000/galaxy/chat)

8. Ask a question, such as:
- *"What sources do I have access to?"*

9. Conduct a search and verify that **RAG results** appear:
8. Ask a question, such as "Tell me about SWIRL AI Connect?"

![SWIRL Assistant Conversation with RAG Result](images/swirl_40_enterprise_assistant_rag.png)

## Security Notice

SWIRL ships with a default **admin/password** login. **If using Google Chrome, a security warning may appear.**

To change the password, follow these steps: [Admin Guide - Changing Password](./Admin-Guide#changing-a-users-password)

## Stopping SWIRL

To stop SWIRL, use one of these methods:
Expand All @@ -162,13 +157,6 @@ These methods **preserve** the SWIRL database. If you don't need to save data, p

## Optional Steps

- Click **Select Items** to modify documents used for RAG.
- View raw JSON results at:
- [http://localhost:8000/swirl/search/](http://localhost:8000/swirl/search/)
- Click `result_url` to view the full JSON response.

![SWIRL JSON response](images/swirl_results_mixed_1.png)

- Manage SWIRL via **Galaxy UI**:
- Click the profile avatar (top-right corner).
- Click **Manage SWIRL** ([http://localhost:8000/swirl/](http://localhost:8000/swirl/)).
Expand Down
26 changes: 17 additions & 9 deletions docs/User-Guide-Enterprise.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ Please [contact SWIRL](mailto:hello@swirlaiconnect.com) for access to SWIRL Ente

---

{: .highlight }
If you're looking for SWIRL AI Connect and AI Co-Pilot, you're in the right place.
Those products have been renamed...

# Glossary

The following terms are used when referring to **SWIRL Enterprise** products.
Expand Down Expand Up @@ -72,12 +76,11 @@ The SWIRL login page will show a button for SSO login.

![SWIRL Assistant with user logged in via SSO](images/swirl_40_chat_start.png)

{: .warning }
If you encounter an error, please [contact support](mailto:support@swirlaiconnect.com) or your local system administrator.
# Verifying Connectivity

# Verifying Login
Click the **profile icon** (top-right) to verify your connection to individual sources, which may vary depending on your SSO configuration.

Click the **profile icon** (top-right) to verify login. Use the **toggle switches** to connect or disconnect as needed.
Use the **toggle switches** to connect or disconnect from any source, as needed.

![SWIRL Assistant with user logged in to Microsoft, not to Box](images/swirl_40_chat_profile.png)

Expand Down Expand Up @@ -108,7 +111,7 @@ Other supported query languages include:
- **OpenSearch Query DSL**
- **Solr syntax**

{: .warning }
{: .highlight }
For assistance with specific query languages, please [contact SWIRL](mailto:support@swirlaiconnect.com).

# Human Language Support
Expand Down Expand Up @@ -141,10 +144,12 @@ Sometimes, Assistant **won't find results**. Don't be alarmed! Try the following
![SWIRL Assistant correcting a spelling error](images/swirl_40_chat_try_different_query.png)

{: .warning }
If querying in **SQL** or other structured query languages, **you may need to adjust the query**:
When querying with **SQL** or other structured query languages, **some models may require occasional correction**:

![SWIRL Assistant having SQL corrected by user](images/swirl_40_chat_correct_query.png)

Please [contact support](#support) for assistance using the Assistant with any advanced query language.

# Ending a Conversation

To **end a conversation**, click the **SWIRL logo** at the top of the page. This starts a **new conversation**.
Expand Down Expand Up @@ -179,15 +184,18 @@ Alternatively, from the **Assistant page**, click the **profile button**, then c
Starting in **SWIRL Enterprise 4.0**, SWIRL introduces a **confidence-based relevancy ranking model**. The **confidence score** ranges from **0 (not relevant) to 1.0 (extremely relevant)** and is **comparable across queries**.

### How Confidence Scores Work:
- **AI Insights use only results** above a configurable minimum confidence score.
- The score **factors in**:

The score **factors in**:
- **Number of matched query terms**
- **Term importance**
- **Contextual relevancy**
- **Contextual similarity between the query and the results**
- **The source-reported rank**
- **Other advanced ranking factors**

You can still **sort by relevancy** using the **`VIEW BY:`** dropdown.

**AI Insights use only results** above a configurable minimum confidence score.

## Customizing Prompts

**SWIRL AI Search (Enterprise Edition)** allows authorized users to **select a specific prompt** when generating AI Insights.
Expand Down