Skip to main content

Knowledge reasoning infrastructure for AI — structure documents into a temporal knowledge graph, reason across them, and trace every answer to specific facts

Project description

VRIN — Knowledge Reasoning Infrastructure for AI

VRIN structures your documents into a temporal knowledge graph and reasons across them — giving AI answers you can trace to specific facts.

Benchmark VRIN Best Baseline Gap
MultiHop-RAG 95.1% 78.9% (GPT 5.2 w/ same docs) +16.2pp
MuSiQue 28% more accurate HippoRAG 2 (academic SOTA) +10.6 EM
FinQA 71.4% 11.1% (vector-only retrieval) +640%

Installation

pip install vrin

Quick Start

from vrin import VRINClient

client = VRINClient(api_key="vrin_your_api_key")

# Insert knowledge
client.insert("ACME Corp reported $50M revenue in Q4 2025.", title="ACME Financials")

# Query — answers traced to specific facts
result = client.query("What is ACME's revenue?")
print(result["summary"])

Bulk Ingestion with Adaptive Concurrency

Ingest hundreds of documents with automatic concurrency control. The SDK uses Netflix's Gradient2 algorithm to monitor backend latency and adjust parallelism in real time — ramping up when healthy, backing off when congested, retrying failures with exponential backoff, and running a sequential recovery pass for any remaining items. Zero information loss guaranteed.

items = [
    {"content": "Apple reported $416B revenue in FY2025.", "title": "AAPL 10-K"},
    {"content": "Microsoft Cloud surpassed $50B quarterly.", "title": "MSFT Earnings"},
    # ... hundreds more
]

result = client.bulk_insert(items)
print(f"Ingested {result['completed']}/{result['total']} — "
      f"{result['facts_stored']} facts stored")

Streaming

for token in client.query("Summarize Q4 results", stream=True):
    print(token, end="", flush=True)

Query Modes

result = client.query(
    "Compare ACME and Widget Corp revenues",
    response_mode="research",     # "chat" | "thinking" | "research"
    query_depth="research",       # "basic" | "thinking" | "research"
)

File Upload

client.upload_file("report.pdf", save_to_memory=True)

Conversations

client.start_conversation()
r1 = client.continue_conversation("What was ACME's Q4 revenue?")
r2 = client.continue_conversation("How does that compare to Q3?")  # has context
client.end_conversation()

MCP Integration

VRIN exposes an MCP (Model Context Protocol) server so any compatible AI assistant can query your knowledge base — Claude Code, Claude Desktop, Cursor, Windsurf, or custom agents.

Tools exposed: vrin_query_async, vrin_check_job, vrin_search_entities, vrin_get_facts

Enterprise — Your Data Stays in Your Cloud

Enterprise API keys (vrin_ent_*) route all data through your own AWS/Azure account. Your knowledge graph, your vector store, your encryption keys. Data never touches our infrastructure.

from vrin import VRINEnterpriseClient

client = VRINEnterpriseClient(api_key="vrin_ent_your_key")
result = client.query("What is our Q4 revenue?")

Three deployment modes: VRIN Cloud, Hybrid Cloud (your data, our compute), Private VPC (everything in your account).

What Makes VRIN Different

Vector-Only Retrieval VRIN
Answers Similar-looking text chunks Specific facts, traced to sources
Temporal None — returns latest by similarity Bi-temporal versioning: "What was true in Q3?"
Cross-document Concatenates chunks Traverses entity relationships across documents
Numbers LLM interprets from raw text Constraint extraction + validated numerical fields
Aggregation LLM must infer Explicit sum/count with calculation steps
Audit trail Chunk-level at best Fact-level with document, confidence, and provenance

License

MIT License — see LICENSE file for details.


Built by the VRIN Team | vrin.cloud | support@vrin.cloud

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

vrin-1.1.0.tar.gz (113.3 kB view details)

Uploaded Source

Built Distribution

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

vrin-1.1.0-py3-none-any.whl (119.5 kB view details)

Uploaded Python 3

File details

Details for the file vrin-1.1.0.tar.gz.

File metadata

  • Download URL: vrin-1.1.0.tar.gz
  • Upload date:
  • Size: 113.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for vrin-1.1.0.tar.gz
Algorithm Hash digest
SHA256 bca31b2ed568ccbb32cdb733cc17258cbe405487967acc4a737ac9918fc66475
MD5 234b7904f3e2534333b82bd94abd1daf
BLAKE2b-256 83d6451e21351b764b716d114ac14fec5ba87d451ca768a1090e8943c6deda31

See more details on using hashes here.

File details

Details for the file vrin-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: vrin-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 119.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for vrin-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d1b10ee20785241a6c4906efc18d7b1ad4d8bae5edaa3a43aa5abdb3044cf0e1
MD5 695836d034b402e1a483e3981b9a9e82
BLAKE2b-256 18cd1e37981cf6f17c0e91b65c6d4975dc71d325f737be10413a0ba41c48e431

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