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.2.tar.gz (117.1 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.2-py3-none-any.whl (136.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: vrin-1.3.2.tar.gz
  • Upload date:
  • Size: 117.1 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.2.tar.gz
Algorithm Hash digest
SHA256 a4c18473bd3048d1b642dbb4519a838a375370bff0d857c3e494ec7e5d09cce4
MD5 08d64e84ab6b89daad44b4b94b1c7c0f
BLAKE2b-256 0d592e8634d2bf7de844adc27950742d71076d0a10a16ade9d0784a795a4c966

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vrin-1.3.2-py3-none-any.whl
  • Upload date:
  • Size: 136.2 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9133e4eace203f74c8f5e4b205929f02323be6d20a4a3a36e85f49b0911a9230
MD5 48b74140b4a0c8b2f06456668e671a3f
BLAKE2b-256 1bbcbe149463c66b77e1418ee7c747b560dfe849f09e142b36160045f9a4df8d

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