anva — Python SDK
Install with pip install "anva[ws]==0.6.0".
The REST client uses the standard library. Realtime uses websockets' sync API.
import os
from anva import Anva, AnvaError
client = Anva(os.environ["ANVA_KEY"])
capabilities = client.capabilities()
session = client.create_session(
preset_id="YOUR_PRESET_ID", service_mode="byo_llm")
# Attach session["embed_url"] in your browser.
try:
with client.connect(session["session_id"]) as stream:
stream.wait_live() # the viewer's embed is connected
for event in stream:
if event["type"] == "turn.request":
turn_id = event["payload"]["turn_id"]
# Replace the immediate sample with your cancellable LLM worker.
stream.turn_delta(turn_id, "Hello from your application.")
stream.turn_done(turn_id)
finally:
client.end_session(session["session_id"])
Use one reader per connection; perform slow LLM work in a separate cancellable
worker so it can react to turn.cancel. send_message is user input, not
verbatim assistant speech. AnvaError includes status, code, message,
and details. Realtime command failures remain structured events.
create_session(speech_input="off") suits hosts that transcribe the user
themselves (push-to-talk); say / say_delta / say_done speak lines of your
own (speed= sets a line's rate); update_session(id, system_prompt=...) and
update_prompt on a connection change a managed session's instructions
mid-call; create_session(..., idempotency_key=...) makes a retried create
return the first session; connect(id, controls=False) leaves out the face
stream; lipsync() and connect_lipsync() reach the Enterprise Lipsync API.
All five service modes are supported as request values, subject to deployment
capabilities. PCM methods accept bytes, bytearray or byte-oriented memoryview:
24kHz signed16 little-endian mono, maximum 24,000 bytes per chunk. Read the
repository README for sample offsets, backpressure and real playback requirements.
Metadata
Release files for anva 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| anva-0.6.0.tar.gz | 11.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| anva-0.6.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.2 kB
Release files / anva-0.6.0.tar.gz
| Download URL | anva-0.6.0.tar.gz |
|---|---|
| Size | 11.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
835fc0f5e2b12c0508233e251a5ef17bd32e96df717b677040b95066a7a91989
|
|
BLAKE2b-256 checksum How to use checksums |
1dccb66b746255bfafac5dfa04d6215d986d0d762e5541c559c378cd32d42781
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / anva-0.6.0-py3-none-any.whl
| Download URL | anva-0.6.0-py3-none-any.whl |
|---|---|
| Size | 10.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a269443d5abcd7ad051196a2ba354ec90d5b98ad8fc1f2c67a61c4b16b63d9b8
|
|
BLAKE2b-256 checksum How to use checksums |
79e93f5e682291f37bb855f35767873311c83b4b80a4145c3a900cfd81b14444
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Security for anva 0.6.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.