Substrate Labs

Viveka

Model
Viveka 1.1
Price
From ₹10 per 1,000 decisions

Structured decisions from your app’s data. Send a state and a question. Get a choice, a score or a yes/no probability.

Set a confidence threshold
Act above your threshold and send uncertain cases to a person. Calibration measures how closely confidence matches accuracy: among answers at 80% confidence, about 80% should be right. Check this on your own data.
Structured answers
A choice, a score or a yes/no probability. No free text to parse. The same input produces the same answer with the same model version.
300 ms median response
Measured across 200 live requests. The first request after idle can take several seconds.

Routing, scoring and checks

  • Route support tickets to the right team.
  • Flag urgent or risky messages.
  • Score sentiment, priority or relevance on a scale.
  • Verify that a document or reply meets a rule you provide.
  • Add guardrails that approve, block or escalate an action.

Give each option a clear description and test on examples from your workflow before automating it. Real support messages remain a known gap, especially when routing with bare labels.

Three kinds of question

QuestionAnswer
Pick oneOne of 2 to 16 options, with a probability for each and confidence in the selected answer.
Rate on a scaleA score across ordered levels you define, with probabilities and a legend.
Yes or noThe probability of yes, for a rule or question you provide.

Use the OpenAI SDK

Set the base URL and call client.post with your question and options. Keep your API key on your server.

Python · OpenAI SDK
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.substrates.in/v1",
    api_key=os.environ["VIVEKA_API_KEY"],
)

result = client.post("/decisions", cast_to=object, body={
    "model": "viveka-1.1",
    "state": {"ticket": "I was charged twice this month"},
    "questions": {
        "team": {
            "type": "choice",
            "instructions": "Which team handles this?",
            "criteria": {
                "billing": "payments and refunds",
                "technical": "bugs and crashes",
            },
        },
    },
})
print(result)

Install with pip install openai and set VIVEKA_API_KEY in your server environment. Send up to 16 named questions per call. Chat completions are not served.

Viveka 1.1, measured against 1.0

MeasurementViveka 1.1Viveka 1.0
LocalLLaMA typed-decisions top-1 accuracy57%32%
Median live response time from Mumbai303 ms762 ms

Top-1 accuracy improved on all four measured test sets: Open-Jev test, Open-Jev out-of-distribution, LocalLLaMA and tasksource.

LocalLLaMA: 2,000 test decisions; top-1 is agreement with the highest-probability reference option, rounded from 56.60% and 32.45%. Latency: medians across 200 live requests per version from Mumbai. Results depend on the workload.

Limits

The answer must be in the input you send. Viveka does not supply missing world knowledge, and a confident answer can still be wrong.

Request access