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

The reasoning engine for AI that needs to be right.

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.3.1.tar.gz (116.9 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.3.1-py3-none-any.whl (135.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for vrin-1.3.1.tar.gz
Algorithm Hash digest
SHA256 64b6b5ac702ee3e6b6d74a0b8371c0d4453f2982a84a24ed4fa18b639f6e48b4
MD5 36f35eb56be38ddb489e1c06707beb42
BLAKE2b-256 50a1e153a49a7dd9a672da1aabe28ed4e659435111f3b50c66431fa5b86d7856

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vrin-1.3.1-py3-none-any.whl
  • Upload date:
  • Size: 135.9 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.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2b679be8908cd6e087599bf6e8dca1d102d68c4a1027621c17bbf9bba5a3f78f
MD5 eaacec674a0162db459b3c6028c1d1ba
BLAKE2b-256 7d6685fd1851a48f8ae2f5c4b9cc516ff055d14182674c88f35329a473343210

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