RazorpayDvar

Architecture

Two ways to connect. Nothing leaves by default.

Same harness either way. Only the hook moves.

Option A

Beside Ray's calls, inside Razorpay's network

An SDK in Ray's service records every call. Ray's providers stay as they are.

Razorpay network

Ray service

The Dvar SDK wraps its calls

Redactor

PII → tokens, before storage

Collector and eval store

Traces, gold, rubric, gates

Model providers

Today's, plus open models on Dvar

Option B

Ray calls the gateway

Change the base URL. The gateway routes each step to the model the evals chose, in your network or Dvar Cloud.

Razorpay network (or Dvar Cloud, if you choose it)

Ray service

base_url = …/w/ray-settlements/v1

Dvar gateway (Go)

Routes per workflow; keys never stored; fails open

Redactor → collector → eval store

Same as option A

Model providers

Frontier and open models, per the route

Stays in your network

Raw chats, tool results, the eval store, provider keys.

Redaction

Before anything is stored. Stored traces never hold a name, phone, email or account number.

What leaves

Nothing by default. Calls go to Ray's providers, or to Dvar's open models if routed.

In this demo

A TypeScript copy of the gateway runs in this app; every benchmark call went through it. Production uses Dvar's Go gateway.