visvoai-ai
One line to any model — with the model facts included. (VisvoAI™)
Every provider has its own SDK, its own model names, its own pricing page,
and its own spelling of "reasoning" — and your app ends up hardcoding all of
it. visvoai-ai is the antidote: a streaming, LangChain-compatible chat
model for whichever provider you name, plus the thing most facades skip —
a live model registry that knows each model's pricing, context window,
capabilities, and reasoning ("thinking") levels, so your app can choose and
meter models, not just call them.
You say "anthropic:claude-sonnet-4-5", you get a working model — and you
can ask it what it costs, how big its context is, and what it can do, before
you spend a cent. No agent framework, no datastore, no web layer. Build a
model, get out of the way.
It's a real LangChain model — the ecosystem works
build_chat_model returns a genuine LangChain BaseChatModel, so the
patterns you already know apply unchanged: .with_structured_output(Schema)
for JSON-schema-validated responses, timeout=/config for call limits,
multimodal message parts for vision-capable models, and drop-in use anywhere
LangChain or LangGraph expects a model.
Install
Base install is light; pull only the provider you use:
pip install "visvoai-ai[gemini]" # Google Gemini
pip install "visvoai-ai[anthropic]" # Anthropic Claude
pip install "visvoai-ai[openai]" # OpenAI + any OpenAI-compatible endpoint
pip install "visvoai-ai[all]" # everything
OpenAI-compatible providers (Together, Groq, OpenRouter, vLLM, …) ride the
[openai] extra — an API key and a base_url is all they need.
One line to a model
from visvoai.ai import build_chat_model
model = build_chat_model("gemini:gemini-2.5-flash") # a streaming BaseChatModel
model = build_chat_model("gemini:gemini-2.5-flash", level="high") # with thinking
for chunk in model.stream("Explain attention in one sentence."):
print(chunk.content, end="")
API keys resolve from the matching environment variable (GEMINI_API_KEY,
ANTHROPIC_API_KEY, OPENAI_API_KEY, …); pass api_key= to override.
The registry: choose and meter, not just call
from visvoai.ai import list_deployments, Capability, cost_of, usage_from
for d in list_deployments(Capability.CHAT):
print(d.id, d.display_name, d.input_cost_per_million, d.context_window,
d.supports_thinking, [l.value for l in d.thinking_levels])
# after a call:
u = usage_from(response) # {'input': …, 'output': …, 'total': …}
usd = cost_of("gemini:gemini-2.5-flash", u["input"], u["output"])
The catalog is a curated baked set plus the models.dev catalog for providers you have keys for — so new models appear without a package upgrade, and a keyless install still shows a sane curated list.
Thinking levels, normalized
Every provider spells reasoning differently (budgets, effort strings, on/off).
visvoai-ai normalizes them to one scale — off · low · medium · high — and
translates per provider, with each model's supported levels declared in the
registry. build_chat_model(id, level="medium") does the right thing
everywhere.
Also in the box
run_search(...)/fetch_url(...)— provider-grounded web search and URL fetch behind one seam (used by agent tools; no SDK leakage into your code).Providerbase class — add a provider family by subclassing; onlybuild_chat_model()andnormalize_content()are core, both optional.- Deterministic deployment identity (
provider:modelcodec) — stable ids you can store, route on, and bill against.
Who uses it
visvoai-core (agent runtime) and
visvoai-cli (a terminal coding
agent whose model picker is this registry, live) — plus a hosted platform on
the same seam. If you only need "call one model I already chose," a raw SDK is
fine; this earns its keep the moment you support choice — multiple
providers, visible costs, or reasoning controls.
Examples
Runnable, live-verified examples in examples/ — one-line
model access, registry choose-and-meter (keyless), OpenAI-compatible
endpoints and custom providers.
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file visvoai_ai-0.4.0.tar.gz.
File metadata
- Download URL: visvoai_ai-0.4.0.tar.gz
- Upload date:
- Size: 250.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7e1a53d730b90b06e5420fd6f7eeb76bdb6cdba497e8f7de4d90f88c764681f
|
|
| MD5 |
20c7e8fb19b3111d3f62e7881d7a7805
|
|
| BLAKE2b-256 |
a133c62408ab10c71e564b7d5bffa9ab47bd9109acb9c58a25269e48f19c3a96
|
Provenance
The following attestation bundles were made for visvoai_ai-0.4.0.tar.gz:
Publisher:
publish.yml on VisvoAI/visvoai
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
visvoai_ai-0.4.0.tar.gz -
Subject digest:
e7e1a53d730b90b06e5420fd6f7eeb76bdb6cdba497e8f7de4d90f88c764681f - Sigstore transparency entry: 2492050382
- Sigstore integration time:
-
Permalink:
VisvoAI/visvoai@9cf71de0660a8a8e86a6a9c2866771e33a335458 -
Branch / Tag:
refs/tags/visvoai-ai-v0.4.0 - Owner: https://github.com/VisvoAI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9cf71de0660a8a8e86a6a9c2866771e33a335458 -
Trigger Event:
release
-
Statement type:
File details
Details for the file visvoai_ai-0.4.0-py3-none-any.whl.
File metadata
- Download URL: visvoai_ai-0.4.0-py3-none-any.whl
- Upload date:
- Size: 242.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6d392f40ffd9815bba2295a9265818c111aed48b9a8eacd0dc3800c951493bc
|
|
| MD5 |
3b7d652ad36a4e3366865c3c1b882aca
|
|
| BLAKE2b-256 |
ce694149f0cbc534015ae7ca7a233521e289b117854e6dcb636941024fc97120
|
Provenance
The following attestation bundles were made for visvoai_ai-0.4.0-py3-none-any.whl:
Publisher:
publish.yml on VisvoAI/visvoai
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
visvoai_ai-0.4.0-py3-none-any.whl -
Subject digest:
b6d392f40ffd9815bba2295a9265818c111aed48b9a8eacd0dc3800c951493bc - Sigstore transparency entry: 2492050719
- Sigstore integration time:
-
Permalink:
VisvoAI/visvoai@9cf71de0660a8a8e86a6a9c2866771e33a335458 -
Branch / Tag:
refs/tags/visvoai-ai-v0.4.0 - Owner: https://github.com/VisvoAI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9cf71de0660a8a8e86a6a9c2866771e33a335458 -
Trigger Event:
release
-
Statement type: