Skip to main content

Local RAG pipeline runner

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

Insight Vault

Python 3.12 License: MIT PyPI - Version GitHub CI

Insight Vault is a local, privacy-focused library for building LLM-based applications. It allows you to store, search, and summarize text completely offline.

With Insight Vault, you can:

  • Search your local knowledge base.
  • Chat with your documents interactively.
  • Summarize large sets of information into concise outputs.

All data stays on your machine, with no external API calls required.

For more details see the documentation.

🚀 Features

  • Local Inference — Uses LLAMA for local LLM inference.
  • Local Embeddings — Embeddings are created using SentenceTransformers.
  • Privacy-first RAG — Store and query documents locally with ChromaDB.
  • Interactive CLI — Intuitive CLI interface for searching, managing, and summarizing.

📦 Dependencies

The following dependencies are required to run Insight Vault:

  • Ollama — For local LLM inference.
  • ChromaDB — Local document storage and vector database.
  • SentenceTransformers — Embeddings for better document search and query matching.

🔥 Installation

To install Insight Vault, you can use the following command:

pip install insightvault

⚙️ Usage

Insight Vault can be used via a simple CLI interface or as a Python library.

If you want to use the chat or summarize commands, you need to make sure that Ollama is running first.

CLI

Adding Documents

insightvault manage add-file <path_to_document>

This command will add a file from the specified path to the local document database. You can also directly add text. The manage command is also used to list all documents, and to delete all documents.

Searching Documents

insightvault search "Explain RAG pipelines"

This will search your indexed documents for the query “Explain RAG pipelines” and return the most relevant results.

Chat

insightvault chat "Explain RAG pipelines"

This uses RAG which means it takes in a natural language query and returns a response in natural language based on the most relevant documents you have indexed.

Summarizing Documents

insightvault summarize "Explain RAG pipelines"

Summarizes the text you provide. The flag --file can be used to summarize a file.

Library

Insightvault provides three apps as part of the library:

  • RAGApp — For RAG pipelines.
  • SearchApp — For searching indexed documents.
  • SummarizerApp — For summarizing text.

For example, to use the SummarizerApp, you can do the following:

from insightvault import SummarizerApp

app = SummarizerApp()
await app.summarize("This is a loooong test")

See the API Documentation for more information.

🛠️ Development

If you want to contribute to Insight Vault or run it locally for development, follow these steps.

  1. Clone the Repository
git clone https://github.com/daved01/insightvault.git
cd insightvault
  1. Install Development Dependencies
pip install -e ".[dev]"

This installs all required libraries for development, testing, and quality checks.

  1. Run Tests
pytest tests

This runs all the unit and integration tests to ensure everything is working properly.

  1. Run Quality Checks

We use ruff, mypy, and pre-commit hooks to ensure high code quality.

# Type checking with mypy
mypy insightvault

# Linting and formatting with ruff
ruff check . --fix
ruff format .

Pre-commit Hooks

To automatically check for secrets, format code, and run linters before every commit, set up pre-commit hooks as follows:

pre-commit install

This will install the hooks and run them automatically before each commit.


📤 Publishing

To publish a new version of Insight Vault to PyPI:

  1. Update the version in pyproject.toml.
  2. Build the package:
python -m build
  1. Publish the package:
twine upload dist/*

💡 Contributing

We welcome contributions of all kinds. Whether it’s bug fixes, new features, or improving the documentation. Please open an issue or submit a pull request.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

insightvault-0.0.3.tar.gz (29.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

insightvault-0.0.3-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

File details

Details for the file insightvault-0.0.3.tar.gz.

File metadata

  • Download URL: insightvault-0.0.3.tar.gz
  • Upload date:
  • Size: 29.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for insightvault-0.0.3.tar.gz
Algorithm Hash digest
SHA256 10d50468f7d588695f2963b42677ead86c4eaeabf822697919654538a7acc142
MD5 1b4abeb7affa9e7036287564532b369d
BLAKE2b-256 79ea750aa21e0bd90e1ada5a6860d8cc2175c4844db652bcaac9e37e21d34855

See more details on using hashes here.

File details

Details for the file insightvault-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: insightvault-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 18.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for insightvault-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 be80d1dc199fb00e4e8445e7a45ec644b6f7544c2a1effeb8f87467dad46fa64
MD5 4ea4577563af7c11ff5c2bb0333a1eb6
BLAKE2b-256 1cc17d88ada2620236d017fc1ccdb73d906709d0872a9b3d1a8c68bcc8b690cb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page