Skip to main content

🚀 UltraRAG - Complete Unified Package

The ONLY RAG package you need!

✅ Revolutionary RAG engine
✅ Built-in Ollama integration
✅ Built-in FastAPI + Swagger UI
✅ ONE command to start!
✅ Zero configuration needed!


🎯 Quick Start (2 Commands!)

Step 1: Install

pip install ultrarag[server]

Step 2: Start Server

ultrarag serve --ollama-host localhost --ollama-model llama3.2

Open Swagger UI:

http://localhost:8000/docs

🎉 DONE! RAG chatbot ready!


📚 Three Ways to Use

Method 1: Web Server (with Swagger UI)

# Start server
ultrarag serve --ollama-host localhost --ollama-model llama3.2

# Open browser → http://localhost:8000/docs
# Upload documents, ask questions via Swagger!

Method 2: Python Code (Simple)

from ultrarag import RAG

# Create RAG
rag = RAG()

# Add document
rag.add("Python is a programming language created by Guido van Rossum.")

# Ask question
answer = rag.ask("Who created Python?")
print(answer)
# Output: "Python is a programming language created by Guido van Rossum."

Method 3: Python Code (with Ollama)

from ultrarag import RAG, OllamaLLM

# Initialize Ollama
llm = OllamaLLM(host="localhost", port=11434, model="llama3.2")

# Create RAG
rag = RAG()

# Add document
rag.add("Python is used for AI, web development, and data science.")

# Get context
query = "What is Python used for?"
query_analysis = rag.query_processor.analyze(query)
chunks = rag.retriever.retrieve(rag.chunks, query_analysis, top_k=3)
context = " ".join([c.text for c in chunks])

# Generate with LLM
prompt = f"Based on: {context}\n\nQuestion: {query}\n\nAnswer:"
answer = llm.generate(prompt)
print(answer)

🎯 Complete Example (CLI Server)

Prerequisites

# Install Ollama
curl -fsSL https://ollama.com/install.sh | sh

# Start Ollama
ollama serve

# Pull model (in another terminal)
ollama pull llama3.2

Install UltraRAG

pip install ultrarag[server]

Start Server

ultrarag serve --ollama-host localhost --ollama-model llama3.2

Output:

🚀 Starting UltraRAG Server...
📡 Ollama: localhost:11434
🤖 Model: llama3.2
📚 Swagger UI: http://localhost:8000/docs

Use Swagger UI

  1. Open: http://localhost:8000/docs

  2. Upload document:

    • Click POST /upload
    • Choose file
    • Execute
  3. Ask question:

    • Click POST /query
    • Enter:
      {
        "question": "Your question?",
        "use_llm": true
      }
      
    • Execute
  4. Get answer! ✅


🔧 Configuration Options

Server Command

ultrarag serve \
  --ollama-host localhost \      # Ollama IP
  --ollama-port 11434 \          # Ollama port
  --ollama-model llama3.2 \      # Model name
  --port 8000                     # Server port

Different Ollama Machine

ultrarag serve --ollama-host 192.168.1.100 --ollama-model llama3.2

📊 API Endpoints

Endpoint Method Description
/docs GET Swagger UI
/upload POST Upload file
/upload-text POST Upload text
/query POST Ask question
/stats GET Statistics
/clear DELETE Clear documents

💻 Python API

Basic Usage

from ultrarag import RAG

rag = RAG()
rag.add("document text...")
answer = rag.ask("question?")

With Ollama

from ultrarag import RAG, OllamaLLM

llm = OllamaLLM(host="localhost", model="llama3.2")
rag = RAG()

# Test Ollama
if llm.test():
    print("✅ Ollama connected")
else:
    print("❌ Ollama not available")

# Add documents
rag.add("Your documents...")

# Generate answer
chunks = rag.retriever.retrieve(rag.chunks, query_analysis, top_k=3)
context = " ".join([c.text for c in chunks])
answer = llm.generate(f"Context: {context}\n\nQuestion: {question}")

Advanced Usage

# Custom configuration
rag = RAG(
    min_chunk_completeness=0.85,
    min_grounding_score=0.85
)

# Add with metadata
rag.add("text...", metadata={"source": "doc1.pdf"})

# Detailed response
response = rag.ask("question?", explain=True)
print(f"Answer: {response.answer}")
print(f"Confidence: {response.confidence}")
print(f"Grounding: {response.grounding_score}")
print(f"Verdict: {response.metadata['verdict']}")

# Statistics
stats = rag.get_stats()
print(f"Total chunks: {stats['total_chunks']}")

🎯 Installation Options

Minimal (RAG only)

pip install ultrarag

Use in Python code only (no web server)

Full (RAG + Web Server)

pip install ultrarag[server]

Includes FastAPI + Swagger UI

From Source

git clone https://github.com/kumar123ips/ultrarag
cd ultrarag
pip install -e .[server]

🔥 Features

Revolutionary RAG Components

✅ AtomicChunk - Guaranteed completeness (ICS ≥ 0.75)
✅ QueryDNA - Multi-dimensional query analysis
✅ AdaptiveRetriever - Intent-based retrieval
✅ ProvenAnswer - Mathematical validation
✅ Zero Dependencies - Core package is pure Python!

Built-in Integrations

✅ Ollama - Local LLM support
✅ FastAPI - Production web server
✅ Swagger UI - Interactive API docs
✅ CLI - One command to start!


📝 License

MIT License - see LICENSE


👤 Author

Abhishek Kumar
Email: ipsabhi420@gmail.com
GitHub: @kumar123ips


🎉 Success!

The ONLY RAG package you need!

pip install ultrarag[server]
ultrarag serve --ollama-model llama3.2

That's it! 🚀


Made with ❤️ by Abhishek Kumar

Metadata

Release files for ultrarag 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ultrarag 1.0.0
File Size Uploaded
ultrarag-1.0.0.tar.gz 10.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ultrarag 1.0.0
File Interpreter ABI Platform
ultrarag-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 20.5 kB

Release files / ultrarag-1.0.0.tar.gz

Download URL ultrarag-1.0.0.tar.gz
Size 10.2 kB
Tags Source
SHA-256 checksum
How to use checksums
0af3e0d6007efa265e449be13f53bf3b84c8e19dacaad5c747dfae6cf0b5b5ca
BLAKE2b-256 checksum
How to use checksums
c4e46461e0c67e5790cc9077a9b74b668f802dd1205281c48cff88365d600252
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.2

Release files / ultrarag-1.0.0-py3-none-any.whl

Download URL ultrarag-1.0.0-py3-none-any.whl
Size 10.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4337c89cebeb81c9a23c405c1fbbf9c1e2ebdb11c0e70c06b5767fe6c8ea1cb6
BLAKE2b-256 checksum
How to use checksums
314f8ecaafbf94b01fddc89cc15b1829173bae3eec0665ae78ca64bf2203bf60
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.2

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page