Official Python SDK for Cencori - AI Infrastructure for Production.
pip install cencorifrom cencori import Cencori
cencori = Cencori(api_key="your-api-key")
# Chat
response = cencori.ai.chat(
messages=[{"role": "user", "content": "Hello!"}]
)
print(response.content)
# Embeddings
embedding = cencori.ai.embeddings(
input="Hello world",
model="text-embedding-3-small"
)
print(len(embedding.embeddings[0]))All methods have async counterparts:
import asyncio
from cencori import Cencori
async def main():
cencori = Cencori()
# Async chat
response = await cencori.ai.async_chat(
messages=[{"role": "user", "content": "Hello!"}]
)
print(response.content)
asyncio.run(main())for chunk in cencori.ai.chat_stream(
messages=[{"role": "user", "content": "Tell me a story"}],
model="gpt-4o"
):
print(chunk.delta, end="", flush=True)from cencori.types import CreateProjectParams
# List projects
projects = cencori.projects.list(org_slug="my-org")
# Create project
project = cencori.projects.create(
org_slug="my-org",
params=CreateProjectParams(name="New Project")
)from cencori.types import CreateAPIKeyParams
# Create API key
key = cencori.api_keys.create(
project_id="proj_123",
params=CreateAPIKeyParams(name="Dev Key", environment="dev")
)
print(f"Secret Key: {key.key}") # Only shown once!
# Get key stats
stats = cencori.api_keys.get_stats(project_id="proj_123", key_id=key.id)# Get usage metrics for last 24 hours
metrics = cencori.metrics.get(period="24h")
print(f"Total Requests: {metrics.requests.total}")
print(f"Total Cost: ${metrics.cost.total_usd}")from cencori import (
Cencori,
AuthenticationError,
RateLimitError,
SafetyError
)
try:
response = cencori.ai.chat(messages=[...])
except AuthenticationError:
print("Invalid API key")
except RateLimitError:
print("Too many requests")
except SafetyError as e:
print(f"Content blocked: {e.reasons}")| Provider | Models |
|---|---|
| OpenAI | gpt-4o, gpt-4-turbo, gpt-3.5-turbo |
| Anthropic | claude-3-opus, claude-3-sonnet, claude-3-haiku |
gemini-2.5-flash, gemini-2.0-flash |
MIT © FohnAI