Swirl is open source software that simultaneously searches multiple content sources and returns AI ranked results.
Start Searching · Slack · Key Features · Contribute · Documentation · Connectors
Swirl is open source software that simultaneously searches multiple content sources and returns AI ranked results. Prompt your choice of Generative AI using the top N results to get answers incorporating your own data.
Swirl can connect to:
- Databases (SQL, NoSQL, Google BigQuery)
- Public data services (Google Programmable Search Engines, ArXiv.org, etc.)
- Enterprise sources (Microsoft 365, Jira, Miro, etc.)
And generate insights with AI and LLMs like ChatGPT. Start discovering and generating the answers you need based on your data.
Swirl is as simple as ABC: (a) Download YML, (b) Start in Docker, (c) Search with Swirl. From there, add credentials to preloaded SearchProviders to get results from more sources.
Swirl with ChatGPT as a configured AI Model.
Note We need your help 🙏. Help us create more examples of things you can or want to do with Swirl. Join our Slack Community to discuss and learn more. We'd be very happy to help you contribute 🤗!
Swirl adapts and distributes user queries to anything with a search API - search engines, databases, noSQL engines, cloud/SaaS services, data siloes, etc. and uses Large Language Models to re-rank the unified results without extracting or indexing anything.
➕ For Enterprise Support on Connectors Contact the Swirl Team at: [email protected]
🚀 Help Us Expand! Want to see a new connector? Contribute by adding a connector and join our growing community of contributors.
-
To run Swirl in Docker, you must have the latest Docker app for MacOS, Linux, or Windows installed and running locally.
-
Windows users must also install and configure either the WSL 2 or the Hyper-V backend, as outlined in the System Requirements for installing Docker Desktop on Windows.
Warning Make sure the Docker app is running before proceeding!
- Download the YML file: https://raw.githubusercontent.com/swirlai/swirl-search/main/docker-compose.yaml
curl https://raw.githubusercontent.com/swirlai/swirl-search/main/docker-compose.yaml -o docker-compose.yaml
- Optional: To enable Swirl's Real-Time Retrieval Augmented Generation (RAG) in Docker, run the following commands from the Console using a valid OpenAI API key:
export MSAL_CB_PORT=8000
export MSAL_HOST=localhost
export OPENAI_API_KEY=‘<your-OpenAI-API-key>’
🔑 Check out OpenAI's YouTube video if you don't have an OpenAI API Key.
- 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:
-
Open this URL with a browser: http://localhost:8000 (or http://localhost:8000/galaxy)
-
If the search page appears, click
Log Out
at the top, right. The Swirl login page will appear. -
Enter the username
admin
and passwordpassword
, then clickLogin
. -
Enter a search in the search box and press the
Search
button. Ranked results appear in just a few seconds:
- To view the raw JSON, open http://localhost:8000/swirl/search/
The most recent Search object will be displayed at the top. Click on the result_url
link to view the full JSON Response.
Warning The Docker version of Swirl does not retain any data or configuration when shut down!
🔑 Swirl includes five (5) 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.
-
Check out the details of our latest release!
-
Head over to the Quick Start Guide and install Swirl locally!
✦ | Feature |
---|---|
📌 | Microsoft 365 integration and OAUTH2 support |
🔍 | SearchProvider configurations for all included Connectors. They can be organized with the active, default and tags properties. |
✏️ | Adaptation of the query for each provider such as rewriting NOT term to -term , removing NOTted terms from providers that don't support NOT, and passing down the AND, + and OR operators. |
⏳ | Synchronous or asynchronous search federation via APIs |
🛎️ | Optional subscribe feature to continuously monitor any search for new results |
🛠️ | Pipelining of Processor stages for real-time adaptation and transformation of queries, responses and results |
🗄️ | Results stored in SQLite3 or PostgreSQL for post-processing, consumption and/or analytics |
➡️ | Built-in Query Transformation support, including re-writing and replacement |
📖 | Matching on word stems and handling of stopwords via NLTK |
🚫 | Duplicate detection on field or by configurable Cosine Similarity threshold |
🔄 | Re-ranking of unified results using Cosine Vector Similarity based on spaCy's large language model and NLTK |
🎚️ | Result mixers order results by relevancy, date or round-robin (stack) format, with optional filtering of just new items in subscribe mode |
📄 | Page through all results requested, re-run, re-score and update searches using URLs provided with each result set |
📁 | Sample data sets for use with SQLite3 and PostgreSQL |
✒️ | Optional spell correction using TextBlob |
⌛ | Optional search/result expiration service to limit storage use |
🔌 | Easily extensible Connector and Mixer objects |
Do you have a brilliant idea or improvement for Swirl? We're all ears, and thrilled you're here to help!
🔗 Get Started in 3 Easy Steps:
- Connect with Fellow Enthusiasts - Jump into the Swirl Slack Community and share your ideas. You'll find a welcoming group of Swirl enthusiasts and team members eager to assist and collaborate.
- Branch It Out - Always branch off from the
develop
branch with a descriptive name that encapsulates your idea or fix. - Start Your Contribution - Ready to get your hands dirty? Make sure all contributions come through a GitHub pull request. We roughly follow the Gitflow branching model, so all changes destined for the next release should be made to the
develop
branch.
📚 First time contributing on GitHub? No worries, the GitHub documentation has you covered with a great guide on contributing to projects.
💡 Every contribution, big or small, makes a difference. Join us in shaping the future of Swirl!
For information about Swirl as a managed service, please contact us!
Overview | Quick Start | User Guide | Admin Guide | M365 Guide | Developer Guide | Developer Reference | AI Guide
At Swirl, every user matters to us. Whether you're a beginner finding your way or an expert with feedback, we're here to support, listen, and help. Don't hesitate to reach out to us.
-
🎉 Join the Conversation: Dive into our vibrant Swirl Community on Slack - it's where all the magic happens!
-
📧 Direct Support: For any questions, suggestions, or even a simple hello, drop us an email at [email protected]. We cherish every message and promise to get back to you promptly!
-
💼 Request A Connector (Enterprise Support) Want to see a new connector quickly and fast. Contact the Swirl Team at: [email protected]
Remember, you're part of our family now. 🌍💙