VisvoAI Docs

Installation

Installing visvoai-ai and visvoai-core, and picking your provider extras

The two packages are independent. Install only what you need.

visvoai-ai

Base install is light — the provider SDKs are extras, so you only pull the dependency tree of the provider you actually call:

pip install "visvoai-ai[gemini]"      # langchain-google-genai + google-genai
pip install "visvoai-ai[anthropic]"   # anthropic + langchain-anthropic
pip install "visvoai-ai[openai]"      # openai + langchain-openai (also covers every
                                       # OpenAI-compatible endpoint: Together, Groq,
                                       # OpenRouter, vLLM, LM Studio, llama.cpp servers)
pip install "visvoai-ai[all]"         # every extra above

An OpenAI-compatible provider (anything reached via OpenAICompatProvider) needs no dedicated extra beyond [openai] — it rides langchain-openai with a different base_url and API key. See Providers & the model registry.

visvoai-core

pip install visvoai-core

This pulls only langgraph and langchain-core — no provider SDKs, no datastore client, no web framework. visvoai-core takes any LangChain BaseChatModel you already have; pairing it with visvoai-ai is a choice, not a requirement.

Environment variables

visvoai-ai resolves API keys from the environment by default (override with api_key= at call time):

ProviderEnvironment variable
geminiGEMINI_API_KEY
anthropicANTHROPIC_API_KEY
openaiOPENAI_API_KEY
togetherTOGETHER_API_KEY
groqGROQ_API_KEY
openrouterOPENROUTER_API_KEY

Any other OpenAI-compatible provider (vLLM, LM Studio, a models.dev-sourced provider, …) needs an explicit api_key= and base_url=, or a key_env carried by a catalog-sourced deployment — see Providers & the model registry.

visvoai-core needs no environment variables of its own — it has no I/O boundary beyond the model and tools you give it.

Verifying the install

Listing the model registry works with no API key — it's pure in-package data:

from visvoai.ai import list_deployments, Capability

for d in list_deployments(Capability.CHAT)[:5]:
    print(d.id, d.display_name, d.input_cost_per_million)

Building and invoking a model needs the matching key set. See Cost, usage & thinking levels for the registry in depth, or jump straight to the agent loop for visvoai-core.

On this page