Python SDK

Official Python SDK for Tenzro Cloud. Supports Python 3.10+ with both sync and async clients.

Installation

pip install tenzro
# or
poetry add tenzro
# or
uv add tenzro

Quick Start

from tenzro import Tenzro
import os
tenzro = Tenzro(api_key=os.environ["TENZRO_API_KEY"])
# AI chat completion
response = tenzro.ai.chat(
model="gemini-2.5-flash",
messages=[
{"role": "user", "content": "Hello!"},
],
)
print(response.choices[0].message.content)

Async Client

from tenzro import AsyncTenzro
import asyncio
async def main():
tenzro = AsyncTenzro(api_key=os.environ["TENZRO_API_KEY"])
response = await tenzro.ai.chat(
model="gemini-2.5-flash",
messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)
await tenzro.close()
asyncio.run(main())

Vector Database

# Create vector database
db = tenzro.vec.create(
project_id="project-id",
db_name="embeddings",
dimension=1536,
)
# Insert vectors
tenzro.vec.upsert(
db_id=db.vec_db_id,
vectors=[
{
"id": "doc-1",
"vector": embedding,
"metadata": {"title": "Document 1"},
},
],
)
# Search vectors
results = tenzro.vec.search(
db_id=db.vec_db_id,
vector=query_embedding,
top_k=10,
)

Key-Value Store

# Set value with TTL
tenzro.kev.set(
db_id=kev_db_id,
key="session:123",
value=user_data,
ttl=3600, # 1 hour
)
# Get value
session = tenzro.kev.get_value(db_id=kev_db_id, key="session:123")
# Delete value
tenzro.kev.delete_key(db_id=kev_db_id, key="session:123")

AI Agents

# Create agent
agent = tenzro.agents.create(
project_id="project-id",
agent_name="assistant",
system_prompt="You are a helpful assistant.",
ai_model="gemini-2.5-flash",
)
# Chat with agent
response = tenzro.agents.chat(
agent_id=agent.agent_id,
message="Hello!",
conversation_id="conv-123",
)
print(response.response)

Streaming

# Stream AI responses
stream = tenzro.ai.stream(
model="gemini-2.5-flash",
messages=[{"role": "user", "content": "Write a story"}],
)
for chunk in stream:
print(chunk.text, end="", flush=True)

Error Handling

from tenzro import APIError, AuthenticationError, RateLimitError
try:
tenzro.ai.chat(model="gemini-2.5-flash", messages=[])
except AuthenticationError:
print("Invalid API key")
except RateLimitError as e:
print(f"Rate limited, retry after: {e.retry_after}")
except APIError as e:
print(f"API error {e.status_code}: {e.message}")

Context Manager

# Automatically close client
with Tenzro(api_key=api_key) as tenzro:
response = tenzro.ai.chat(
model="gemini-2.5-flash",
messages=[{"role": "user", "content": "Hello!"}],
)
# Async context manager
async with AsyncTenzro(api_key=api_key) as tenzro:
response = await tenzro.ai.chat(
model="gemini-2.5-flash",
messages=[{"role": "user", "content": "Hello!"}],
)

Available Services

ServiceDescription
tenzro.aiAI inference (chat, embeddings, multi-modal)
tenzro.agentsAI agent orchestration with tools and memory
tenzro.vecVector database for embeddings and similarity search
tenzro.kevKey-value store for sessions, cache, and state
tenzro.dataPostgreSQL databases for structured data
tenzro.graphGraph database for relationships and traversals
tenzro.filesObject storage for files and media
tenzro.workflowsVisual workflow execution
tenzro.hubModel hub for browsing and downloading models
tenzro.enclavesSecure enclaves for sensitive data
tenzro.securityCryptographic operations and key management

Related