WovenSnips
WovenSnips is a lightweight, free, and open-source implementation of Retrieval-Augmented Generation (RAG) using the Straico API. It provides a simple and clean Graphical User Interface (GUI) for users to load corpora to perform RAG-based explorations of the corpus, mediating the interactions through various language models.
Features ๐
- ๐ Load and process corpora for exploration and context retrieval using Retrieval-Augmented Generation (RAG).
- ๐ค Choose from a wide selection of LLMs provided by Straico.
- ๐ชถ Designed lightweight to run on devices without a dedicated GPU.
- ๐พ Save and load vector stores for efficient reuse of processed corpora.
- ๐ Support for various file formats (.pdf, .txt, .md, .csv).
- ๐ฌ Minimal, user-friendly interface for clutter-free, focused engagement with the loaded corpus.
- ๐ Local server option to programmatically interact with other applications and scripts.
- ๐ Dark and light theme options.
Usage ๐ป
- Download the latest release from the Releases page.
- Set up WovenSnips on the local device using the installer (currently available only for Windows).
- Point and click to launch the application.
- Set the Straico API Key from Settings โ Set API Key. Existing Straico users can find their API Key from the platformโs settings page. New users may choose to create a Straico account using this referral link.
- Select the preferred model to interact with from Settings โ Select Model.
- Load the collection of files to be used as source material for RAG from File โ Load Corpus โ Select Corpus Directory, or load a previously saved vector store from File โ Load Vector Store.
- Start interacting with the corpus through the main interface.
- Save the loaded corpus as a vector store for future reuse from File โ Save Vector Store to avoid reprocessing large corpora.
- Enable the local server from Settings โ Local Server to allow programmatic interaction.
Third-Party Libraries and Services ๐ ๏ธ
WovenSnips is built using Python 3.11.9 and relies on several modules from the Python Standard Library and the following third-party libraries and services:
- Straico API for language model integration,
- PySide6 for the graphical user interface,
- PyTorch, NumPy, Langchain, Langchain Community, Langchain Hugging Face, and FAISS-CPU for RAG implementation,
- Pydantic for data validation,
- pdfplumber for processing PDFs,
- MessagePack for vector store serialisation,
- Requests for API communication,
- Roboto Font for UI typography,
- PyInstaller for creating standalone executables, and
- Inno Setup for compiling and packaging the installer.
License ๐
This project is licensed under the BSD 3-Clause License. Please see the LICENSE file for details.
Disclaimer ๐ฃ
This tool is provided as-is, without any warranties. Users are responsible for ensuring that their use of this implementation complies with Straicoโs terms and conditions.
Acknowledgements ๐ค๐พ
WovenSnips has benefitted significantly from the assistance of Anthropicโs Claude 3.5 Sonnet with all the heavy lifting associated with coding, Rileyโs addition of local server capability, and the overwhelming warmth and support from the Straico community.