Skip to main content

Local RAG pipeline for fixing LLM hallucinations using high-precision documentation indexing.

Project description

logo

Python 3.11+ PyPI Tests

A local RAG pipeline for reducing hallucinations in LLMs by indexing technical documentation and research papers. Built for personal use on local hardware, shared here in case others find it useful. Web UI is built with Streamlit, with high level of configurability for the pipeline.

What It Does

Indexes technical documentation and research papers into vector databases, then uses retrieval-augmented generation to ground LLM responses in source material. Uses hierarchical node parsing with auto-merging retrieval and cross-encoder reranking to balance accuracy and context window constraints.

Quick Start

Install the tool via PyPI. But before you do, I advise you prep the environment because of large volume of dependencies (use Python 3.11+):

python -m venv venv
source venv/bin/activate  # or .\venv\Scripts\activate(.ps1) on Windows CMD/PowerShell

Or via conda:

conda create -n tensor-truth python=3.11
conda activate tensor-truth

If using CUDA, make sure to first install the appropriate PyTorch version from pytorch.org. I used torch 2.9 and CUDA 12.8 in environments with CUDA.

If not, just install tensor-truth via pip, which includes CPU-only PyTorch.

pip install tensor-truth

Make sure ollama is installed and set up. Start the server:

ollama serve

Run the app:

tensor-truth

On first launch, pre-built indexes will auto-download from Google Drive (takes a few minutes). Also a small qwen2.5:0.5b will be pulled automatically for assigning automatic titles to chats.

Index Downloads

Pre-built indexes download automatically on startup. Note that Google Drive has rate limits, so if it refuses to download, try manually from indexes.tar.

Extract to ./indexes in the project root.

For details on the contents of this archive, see config/api.json and config/papers.json. These are my curated lists of useful libraries and research papers. Feel free to fork and set up your own indexes. See below instructions on how to build the indexes.

Requirements

Tested on:

  • MacBook M1 Max (32GB unified memory)
  • Desktop with RTX 3090 Ti (24GB VRAM)

Minimum recommended: 16GB RAM, Python 3.11+. GPU optional but significantly faster.

Recommended Models

Any Ollama model works, but these are tested:

General Purpose:

ollama pull deepseek-r1:8b     # Balanced
ollama pull deepseek-r1:14b    # High quality
ollama pull deepseek-r1:32b    # Best quality (24GB+)

Code/Technical Docs:

ollama pull deepseek-coder-v2:16b
ollama pull deepseek-coder-v2

DeepSeek-R1 models include chain-of-thought reasoning. Coder-V2 variants are optimized for technical content and work particularly well with programming documentation.

Building Your Own Indexes

Pre-built indexes cover common libraries, but you can create custom knowledge bases:

Scrape Documentation:

tensor-truth-docs --list          # Show available libraries
tensor-truth-docs pytorch         # Scrape PyTorch docs

Fetch Research Papers:

tensor-truth-papers --config ./config/papers.json --category your_category --ids 2301.12345
tensor-truth-papers --rebuild your_category

Build Vector Index:

tensor-truth-build --modules module_name

Configuration

This system is configured for personal research workflows with these assumptions:

  • ChromaDB for vector storage (persistent, single-process)
  • HuggingFace sentence-transformers for embeddings
  • BGE cross-encoder models for reranking
  • Ollama for local LLM inference
  • All processing runs locally

If you need different chunking strategies or retrieval parameters, you'll need to modify the source files. The current setup is tuned for technical documentation and research papers.

License

MIT License - see LICENSE for details.

Built for personal use but released publicly. Provided as-is with no warranty.

Disclaimer & Content Ownership

1. Software License: The source code of tensor-truth is licensed under the MIT License. This covers the logic, UI, and retrieval pipelines created for this project.

2. Third-Party Content: This tool is designed to fetch and index publicly available technical documentation, research papers (via ArXiv), and educational textbooks.

  • I do not own the rights to the indexed content. All PDF files, textbooks, and research papers fetched by this tool remain the intellectual property of their respective authors and publishers.
  • Source Links: The configuration files (config/papers.json, etc.) point exclusively to official sources, author-hosted pages, or open-access repositories (like ArXiv).
  • Usage: This tool is intended for personal, non-commercial research and educational use.

3. Takedown Request: If you are an author or copyright holder of any material referenced in the default configurations or included in the pre-built indexes and wish for it to be removed, please open an issue or contact me at ljubobratovic.relja@gmail.com, and the specific references/data will be removed immediately.

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

tensor_truth-0.1.5.tar.gz (178.9 kB view details)

Uploaded Source

Built Distribution

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

tensor_truth-0.1.5-py3-none-any.whl (182.1 kB view details)

Uploaded Python 3

File details

Details for the file tensor_truth-0.1.5.tar.gz.

File metadata

  • Download URL: tensor_truth-0.1.5.tar.gz
  • Upload date:
  • Size: 178.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for tensor_truth-0.1.5.tar.gz
Algorithm Hash digest
SHA256 9938718f3758f6e6cff2eef48adca5183aa185e70e636726fb9b9b3d856e15aa
MD5 3bacbf0f1ac49f1ec41ae8c78f052466
BLAKE2b-256 ae71f519f11be43ee807138223384d902e618e98b682cc19ffa114cc5a6ffd71

See more details on using hashes here.

File details

Details for the file tensor_truth-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: tensor_truth-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 182.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for tensor_truth-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 235646cf743b341be85fd0d484e41a862f0bbfd07a1c5bb693bc429c57987eb9
MD5 c4c6803fd04b6f18eeb962e79a65d013
BLAKE2b-256 771c6532c42eb304c4a780804f6893bf5a4a155b054feb49d8570f695d69a147

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