/swirl-search

Swirl queries anything with an API then uses Large Language Models to re-rank the unified results without copying any data! Includes zero-code configs for Apache Solr, ChatGPT, Elastic Search, AWS OpenSearch, PostgreSQL, Google BigQuery, Generic HTTP/S, Google PSE, NLResearch.com, Miro, Microsoft 365, HubSpot, Atlassian, YouTrack, GitHub & more!

Primary LanguagePythonApache License 2.0Apache-2.0

Swirl Metasearch

Swirl

Open Source Search Platform for Federated Search with LLMs and GPT ⚡

License: Apache 2.0 GitHub Release Docker Build Tests

Built with spaCy Slack

Swirl 🌌 is an open source search platform to seamlessly connect databases, warehouses, search providers, and data siloes. Dive deep, unveil hidden insights, and navigate your data effortlessly. Whether you're a startup or a large enterprise, Swirl is tailored for you.

Use Swirl to search within your data 🔍. Swirl connects with Large Language Models GPT to provide insights and answers from your own data source. Enabling you to perform Retrieval Augmented Generation (RAG) on your own data.

Swirl is built in Python along with Django. Swirl is intended for use by anyone who wants to solve multi-silo search problems without moving, re-indexing or re-permissioning sensitive information.


How Swirl Works

Swirl adapts and distributes user queries to anything with a search API - search engines, databases, noSQL engines, cloud/SaaS services, etc. - and uses AI (Large Language Models) to re-rank the unified results without extracting or indexing anything. It includes OAuth2 support for Microsoft 365 alongside integration with enterprise services such as Atlassian Jira and Confluence, JetBrains YouTrack, HubSpot and more.

Using the Galaxy UI, knowledge workers can systematically review the best results from all configured services including Apache Solr, ChatGPT, Elastic, OpenSearch, PostgreSQL, Google BigQuery, plus generic HTTP/GET/POST with configurations for premium services like Google's Programmable Search Engine, Miro and Northern Light Research.

Metasearch diagram

Built on the Python/Django stack, Swirl is intended for use by anyone who wants to solve multi-silo search problems without moving, re-indexing or re-permissioning sensitive information.


Try Swirl Now In Docker

Prerequisites

Start Swirl in Docker

⚠️ Make sure the Docker app is running before proceeding!

curl https://raw.githubusercontent.com/swirlai/swirl-search/main/docker-compose.yaml -o docker-compose.yaml
  • In MacOS or Linux, run the following command from the Console:
docker-compose pull && docker-compose up
  • In Windows, run the following command from PowerShell:
docker compose up

After a few minutes the following or similar should appear:

ssdtest-app-1  | Command successful!
ssdtest-app-1  | __S_W_I_R_L__2_._5_._1________________________________________________________
ssdtest-app-1  |
ssdtest-app-1  | Warning: logs directory does not exist, creating it
ssdtest-app-1  | Start: redis -> redis-server ./redis.conf ... Ok, pid: 28
ssdtest-app-1  | Start: celery-worker -> celery -A swirl_server worker --loglevel INFO ... Ok, pid: 34
ssdtest-app-1  | Start: celery-beats -> celery -A swirl_server beat --scheduler django_celery_beat.schedulers:DatabaseScheduler ... Ok, pid: 45
ssdtest-app-1  | Updating .swirl... Ok
ssdtest-app-1  |
ssdtest-app-1  |   PID TTY          TIME CMD
ssdtest-app-1  |    28 ?        00:00:00 redis-server
ssdtest-app-1  |    34 ?        00:00:02 celery
ssdtest-app-1  |    45 ?        00:00:02 celery
ssdtest-app-1  |
ssdtest-app-1  | Command successful!
ssdtest-app-1  | 2023-08-29 13:16:11,070 INFO     Starting server at tcp:port=8000:interface=0.0.0.0
ssdtest-app-1  | 2023-08-29 13:16:11,074 INFO     HTTP/2 support not enabled (install the http2 and tls Twisted extras)
ssdtest-app-1  | 2023-08-29 13:16:11,075 INFO     Configuring endpoint tcp:port=8000:interface=0.0.0.0
ssdtest-app-1  | 2023-08-29 13:16:11,079 INFO     Listening on TCP address 0.0.0.0:8000

If the search page appears, click Log Out at the top, right. The Swirl login page will appear:

Swirl Login

  • Enter the username admin and password password, then click Login.

  • Enter a search in the search box and press the Search button. Ranked results appear in just a few seconds:

Swirl Results No M365

The most recent Search object will be displayed at the top. Click on the result_url link to view the full JSON Response.

Notes

⚠️ The Docker version of Swirl does not retain any data or configuration when shut down!

🔑 Swirl includes four (4) Google Programmable Search Engines (PSEs) to get you up and running right away. The credentials for these are shared with the Swirl Community.

🔑 Using Swirl with Microsoft 365 requires installation and approval by an authorized company Administrator. For more information, please review the M365 Guide or contact us.

Next Steps


Key Features


Contributing to Swirl

Have an idea for a new feature, connector bug fix, or enhancement to Swirl? Great, we'd 💖 love to see it!

Join our Slack community to discuss the changes you are trying to propose. The community and team members would love to help you contribute to Swirl.

Note: Create a branch off of develop branch with a name that describes the change you're working on. We accept PRs to the develop branch so that the main branch remains stable.

To ensure a proper code review, all contributions to the project must go through a GitHub pull request. We follow a rough approximation of the Gitflow branching model. Changes for the next release go on the develop branch.

For more general information about contributing to projects on Github, visit the GitHub documentation.


Try Swirl Cloud

For information about Swirl as a managed service, please contact us!


Documentation

Home | Quick Start | User Guide | Admin Guide | M365 Guide | Developer Guide | Developer Reference


Support

Do you have any questions or doubts. Reach us on the below links: