Skip to main content

LLM-Rivotril

Português

A lightweight Python framework to reduce LLM hallucinations, enforce guardrails, manage stateful memory, and monitor performance through a local web dashboard.

Features

  • Guardrails — Block disallowed keywords, enforce allowed topics, limit output size, and validate JSON schemas on outputs.
  • Semantic Guardrails (optional) — Match prompts against allowed topics using dense embeddings instead of exact keywords.
  • Moderation Guardrail — Flag adversarial/unsafe content via OpenAI's moderation endpoint.
  • Stateful Memory — Sliding-window conversation store to prevent context drift, with optional automatic disk persistence.
  • Anti-Hallucination Verifier — Pluggable grounding checks, including keyword overlap, citation markers, and embedding-based faithfulness.
  • Resilience — Built-in rate limiting, retry with backoff, and circuit breaker for LLM calls.
  • Token-Saving Controls (optional) — Semantic (similarity-based) response cache, token-budget-aware memory trimming, and LLM-summarized history compaction.
  • Telemetry & Dashboard — Built-in FastAPI dashboard with live request logs, token usage, latency, and success rate; optional per-token auth.
  • Benchmark / Red-Team Evaluator — Labeled suite to measure guardrail and verifier accuracy without API costs.
  • CLI — Launch the dashboard with a single command.
  • Type-Safe Responses — Optional Pydantic response models via instructor, including streamed structured output.
  • Async API — run_async() for non-blocking execution.
  • Multi-Provider — OpenAI-compatible servers (Ollama, vLLM, ...), plus native Anthropic, Cohere, Gemini, Azure OpenAI, and AWS Bedrock adapters.
  • Vector-Store Retrievers (optional) — pgvector, Qdrant, Weaviate, and Pinecone adapters for RAG beyond in-memory scale.
  • Framework Integrations (optional) — Drop-in adapters for CrewAI, AG2/AutoGen, LangChain/LangGraph, and Google ADK, so guardrails/PII/RAG/observability apply inside those frameworks too.

Installation

pip install llmrivotril

For semantic (embedding-based) guardrails and verifiers:

pip install llmrivotril[semantic]

For local development:

git clone https://github.com/ailake-io/llmrivotril.git
cd llmrivotril
pip install -e ".[dev,semantic]"

This installs test, lint, type-check, and packaging tools (pytest, ruff, mypy, build, twine) plus every optional runtime dependency (all providers, RAG loaders, vector stores, Redis, framework integrations).

Quick Start

import os
from llmrivotril import RivotrilAgent, Guardrail
from llmrivotril.verifier import KeywordOverlapVerifier

agent = RivotrilAgent(
    model="gpt-4o-mini",
    api_key=os.getenv("OPENAI_API_KEY"),
    guardrails=[
        Guardrail(
            name="safe-content",
            allowed_topics=["AI safety", "machine learning"],
            disallowed_keywords=["password", "secret"],
            max_tokens=500,
        )
    ],
    verifier=KeywordOverlapVerifier(threshold=0.1),
)

response = agent.run("Explain what a guardrail is in AI safety.")
print(response)

Documentation

  • Providers — OpenAI-compatible servers, Anthropic, Cohere, Gemini, Azure OpenAI, AWS Bedrock.
  • Guardrails & Safety — Semantic guardrails, moderation, PII redaction, token budget.
  • RAG — Local pipeline, vector-store retrievers (pgvector/Qdrant/Weaviate/Pinecone), grounding verification.
  • Framework Integrations — CrewAI, AG2/AutoGen, LangChain/LangGraph, Google ADK adapters, and multi-agent setup notes.
  • Async, Streaming & Function Calling
  • Reliability — Resilience, response caching (including semantic cache), memory token budget & summarization, schema-repair fallback.
  • Observability — Metrics persistence, local dashboard, benchmark, cost tracking.
  • Configuration — Config files, environment variables, plugins, project scaffolding.
  • Releasing — Build validation, TestPyPI, and the PyPI release workflow.

Interactive Demo

Run a complete walkthrough with mock LLM responses (no API key, no cost):

python examples/demo.py --mock --dashboard

Then open http://127.0.0.1:8767 to watch the dashboard update live.

Comparison: With vs. Without llmrivotril

See the same scenarios side-by-side:

python examples/comparison.py --mock

The comparison highlights how plain LLM calls return harmful or hallucinated answers that are only caught manually afterwards, while llmrivotril blocks them at runtime and records structured telemetry.

Project Structure

llmrivotril/
├── src/llmrivotril/
│   ├── agent.py              # RivotrilAgent orchestrator (sync + async)
│   ├── config.py             # Environment-variable and file configuration loader
│   ├── guardrails.py         # Input/output guardrails
│   ├── moderation.py         # OpenAI moderation-endpoint guardrail
│   ├── memory.py             # Conversation memory store
│   ├── verifier.py           # Hallucination / grounding checks
│   ├── providers.py          # OpenAI / Azure / Anthropic / Cohere / Gemini / Bedrock adapters
│   ├── rag/                  # RAG loaders, chunkers, retrievers, vector stores, and pipeline
│   ├── integrations/         # CrewAI / AG2 / LangChain / Google ADK adapters
│   ├── resilience.py         # Rate limiter, retry, and circuit breaker
│   ├── semantic.py           # Optional embedding-based guardrails/verifiers
│   ├── metrics.py            # Telemetry collector
│   ├── server.py             # FastAPI dashboard
│   ├── cli.py                # Click CLI
│   ├── exceptions.py         # Custom exceptions
│   ├── templates/
│   │   └── dashboard.html    # Dashboard UI template
│   └── static/
│       └── tailwind.min.js   # Bundled Tailwind CSS for offline dashboard
├── tests/
├── examples/
└── docs/

Development

Run lint, type checks, and tests:

pip install -e ".[dev,semantic]"
ruff check src tests examples scripts
ruff format --check src tests examples scripts
mypy src
pytest -v

Slow integration tests (e.g. loading sentence-transformers models) are skipped by default. Run them with:

pytest -v --run-slow

For a reproducible provider/integration environment, apply the versions validated locally before installing the desired extras:

python -m pip install -c .github/constraints-runtime.txt \
  -e ".[integrations,providers,semantic,qdrant]"

CI/CD

CI

The GitHub Actions workflow runs linting, type checking, tests, and package builds on Python 3.10–3.13.

License

MIT License — see LICENSE.

Metadata

Release files for llmrivotril 0.1.2

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

Source distribution (sdist)

Source distribution for llmrivotril 0.1.2
File Size Uploaded
llmrivotril-0.1.2.tar.gz 282.3 kB Details

Built distribution (wheel)

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

Total release size: 496.6 kB

Release files / llmrivotril-0.1.2.tar.gz

Download URL llmrivotril-0.1.2.tar.gz
Size 282.3 kB
Tags Source
SHA-256 checksum
How to use checksums
2ea612ccf61fd42c3d0a205019980e55236422b7bcf889170da4b504b02186b5
BLAKE2b-256 checksum
How to use checksums
8c62abc5621e7e07d6ba8ff908f6de1d5738bd1925e40a70adb7a4af2848ac6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / llmrivotril-0.1.2-py3-none-any.whl

Download URL llmrivotril-0.1.2-py3-none-any.whl
Size 214.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ec6206f976e4c69d67bcae58bb1727f75eecd10d06fe130d9a4a7d9dcd5b8400
BLAKE2b-256 checksum
How to use checksums
f7cef2dcacd5938abf81b6f634cdd059def462e3d86e6a4cb3481c82a33822dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release history Release notifications | RSS feed

0.1.4

2 release files

0.1.3

2 release files

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

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