Skip to main content

TryAii

Embedding-based AI model router. Understands your prompt semantically and routes to the best model based on benchmarks, cost, speed, and quality.

from tryaii import DREClient, Router

router = Router()
result = router.route("Write a Python function to merge sorted arrays")

print(result.best_model)     # "gpt-5.2"
print(result.best_reasoning) # "Quality: 0.94 on [HumanEval (93%), SWE-bench (87%)]"

client = DREClient(api_key="sk-or-...")
response = client.chat("Write a quicksort implementation")
print(response.content)

Install

pip install tryaii

The base install includes local embeddings via sentence-transformers - no API keys needed.

Optional extras for provider integrations:

pip install tryaii[openrouter]  # Route & call models via OpenRouter (adds httpx)
pip install tryaii[openai]      # Use OpenAI embeddings instead of local (adds openai)
pip install tryaii[redis]       # Redis client for planned distributed cache (not yet implemented)
pip install tryaii[all]         # All optional integrations

Quick Start

from tryaii import Router, Priorities

router = Router()

# Route with default balanced priorities
result = router.route("Explain quantum entanglement simply")
print(result.best_model)

# Quality-first (ignore cost)
result = router.route(
    "Debug this memory leak in my Node.js app",
    priorities=Priorities(quality=5, cost=1, speed=2),
)

# Budget mode
result = router.route(
    "Summarize this email",
    priorities=Priorities.budget(),
)

CLI

Installing the package adds a tryaii command (same surface as the Node SDK). It opens with an animated blue→red banner, then runs your command. The banner prints to stderr and auto-suppresses when output is piped, so --json stays clean.

tryaii route "Write a Python function to merge sorted arrays" --quality=5 --cost=1
tryaii eval prompts.json --output results/my-run --quality=5 --cost=1 --speed=1
tryaii models --provider anthropic        # add --json for machine-readable output
tryaii benchmarks --json
tryaii setup                               # download the embedding model + warm centroids
tryaii cachelint request.json              # pre-flight prompt-cache analysis (warn-only)
Command Key options
route "<prompt>" --quality/--cost/--speed <1-5> (default 3), --top-k <n>
eval <input.json> -o/--output <dir>, --max-price <usd>, --output-tokens <n>, --budget-mode strict|fit-output
cachelint <input.json | -> --json, raw-text mode via --provider <name> + --model <name>; exact OpenAI/xAI counts need pip install tryaii[cachelint]

The cachelint engine also runs inside the clients: pass cache_lint="warn" to DREClient/AsyncDREClient/OpenRouterIntegration (or set TRYAII_CACHE_LINT=warn) to lint every outgoing chat request and verify cache predictions against the response usage — warn-only and fail-open.

| models | --provider <name>, --json | | benchmarks | --json | | setup / regenerate | --model <name> |

Global flags: --no-banner (or TRYAII_NO_BANNER=1), NO_COLOR=1, -v/--verbose, -V/--version. All flags work in any position and match the npm CLI.

Eval over a dataset

# Balanced run into a named folder
tryaii eval prompts.json --output results/my-run --quality=5 --cost=1 --speed=1

# Budget-aware: --max-price is the total budget for the whole dataset
tryaii eval prompts.json --output results/budget --max-price=0.10 --output-tokens=2000
tryaii eval prompts.json --output results/budget-fit --max-price=0.10 --output-tokens=2000 --budget-mode=fit-output

The input can be an array of strings or objects with prompt, optional id, and optional category. In budgeted eval, quality/cost/speed priority flags are ignored: price is the hard constraint, and the optimizer maximizes model quality within that price. --budget-mode=fit-output lowers the fixed output token estimate when the requested length cannot fit the total budget. The command writes results.jsonl, summary.json, and index.html.

OpenRouter Integration

from tryaii import Router
from tryaii.integrations import OpenRouterIntegration

router = Router()
openrouter = OpenRouterIntegration(router, api_key="sk-or-...")

response = openrouter.chat("Write a quicksort implementation")
print(response.model_used)  # Auto-selected best model
print(response.content)     # Actual response

OpenAI Embeddings

from tryaii import Router
from tryaii.embeddings import OpenAIEmbeddingProvider

router = Router(
    embedding_provider=OpenAIEmbeddingProvider(),
)

result = router.route("Summarize this architecture decision")
print(result.best_model)

Install the OpenAI client first:

pip install tryaii[openai]

License

Apache 2.0

Metadata

Release files for tryaii 0.5.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tryaii 0.5.1
File Size Uploaded
tryaii-0.5.1.tar.gz 240.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tryaii 0.5.1
File Interpreter ABI Platform
tryaii-0.5.1-py3-none-any.whl Python 3 none any Details

Total release size: 471.3 kB

Release files / tryaii-0.5.1.tar.gz

Download URL tryaii-0.5.1.tar.gz
Size 240.2 kB
Tags Source
SHA-256 checksum
How to use checksums
84fc59a96daaa730945062fd06d34fa2ff8a3744efbcfe3c1594c1438a738954
BLAKE2b-256 checksum
How to use checksums
d524175d05e598e521ef575509a6f5111be94430b91982ad94f5f763459e0832
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / tryaii-0.5.1-py3-none-any.whl

Download URL tryaii-0.5.1-py3-none-any.whl
Size 231.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f3c3c573641b2ba7856ac99b5cae5b52a4da3e1ce206771243db59abe35ee907
BLAKE2b-256 checksum
How to use checksums
7591a58066ee384673886f79cc3e0a08c847427a6dda63c3dd8cd2f0b4544c67
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release history Release notifications | RSS feed

0.7.1

2 release files

0.7.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

This release

0.5.1 This release

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page