Official Python SDK for the CognitivessAI API (OpenAI- and Anthropic-compatible).
Project description
cognitivess — Python SDK
Official Python SDK for the CognitivessAI API. The platform is OpenAI- and Anthropic-compatible, so this SDK gives you both ergonomics in one package, talking to model Cognitivess-1.
pip install cognitivess
- Sync and async clients (
Cognitivess/AsyncCognitivess) - Streaming (SSE) for chat, messages and responses
- Structured Outputs (
response_format) pass-through - Typed exceptions, retries with backoff, timeout control
- Zero heavy deps — only
httpx
Setup
Generate an API key in your CognitivessAI dashboard (looks like
ssh-ed25519 AAAA...). It's shown only once. Then either pass it explicitly or
export it:
export COGNITIVESS_API_KEY="ssh-ed25519 AAAA..."
Quickstart
OpenAI style — chat completions
from cognitivess import Cognitivess
cog = Cognitivess() # reads COGNITIVESS_API_KEY
resp = cog.chat.completions.create(
model="Cognitivess-1",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello, how are you?"},
],
max_tokens=128,
temperature=0.7,
)
print(resp.choices[0].message.content)
Anthropic style — messages
msg = cog.messages.create(
model="Cognitivess-1",
max_tokens=128,
system="You are a helpful assistant.",
messages=[{"role": "user", "content": "Hello!"}],
)
print(msg.content[0].text)
Streaming
# sync
for chunk in cog.chat.completions.create(
model="Cognitivess-1",
messages=[{"role": "user", "content": "Count to 5."}],
max_tokens=64,
stream=True,
):
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)
# async
import asyncio
from cognitivess import AsyncCognitivess
async def main():
async with AsyncCognitivess() as cog:
async for chunk in cog.chat.completions.create(
model="Cognitivess-1",
messages=[{"role": "user", "content": "Count to 5."}],
max_tokens=64,
stream=True,
):
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)
asyncio.run(main())
Structured Outputs
resp = cog.chat.completions.create(
model="Cognitivess-1",
messages=[{"role": "user", "content": "I spent $120 on dinner and $45 on supplies."}],
max_tokens=512,
temperature=0.1,
response_format={
"type": "json_schema",
"json_schema": {
"name": "expenses",
"strict": True,
"schema": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {"type": "string"},
"amount": {"type": "number"},
},
"required": ["description", "amount"],
"additionalProperties": False,
},
},
"total": {"type": "number"},
},
"required": ["items", "total"],
"additionalProperties": False,
},
},
},
)
print(resp.choices[0].message.content) # JSON string
Responses API
r = cog.responses.create(
model="Cognitivess-1",
input="Say hi in one word.",
max_output_tokens=16,
)
print(r.output_text)
List models
print(cog.models.list().data[0].id)
Configuration
cog = Cognitivess(
api_key="...", # optional, defaults to COGNITIVESS_API_KEY
base_url="https://api.cognitivess.com/v1", # override for self-hosted/dev
timeout=60.0, # seconds
max_retries=2, # retries on 429/5xx/conn errors, with backoff
default_headers={"X-Tag": "prod"}, # merged into every request
)
Error handling
from cognitivess import AuthenticationError, RateLimitError, APIStatusError, APITimeoutError
try:
cog.chat.completions.create(model="Cognitivess-1", messages=[...], max_tokens=64)
except AuthenticationError as e: # 401 — bad/revoked key
print("auth:", e.message, e.status_code)
except RateLimitError as e: # 429 — rate limit / credits
print("rate:", e.message)
except APITimeoutError: # timeout
...
except APIStatusError as e: # any other non-2xx
print("status:", e.status_code, e.message)
Notes
- This package is the SDK library. The
cognitivessCLI (installed viacurl | sh) is a separate tool; installing this SDK does not register acognitivessconsole command, so the two coexist without conflict. base_urlalready includes/v1. The SDK calls/chat/completions,/messages,/models,/responsesrelative to it. For self-hosted/dev, point it at e.g.http://localhost:8000/v1.- Responses objects are attribute-accessible (
resp.choices[0].message.content) via a light wrapper — no Pydantic dependency.
License
MIT
Project details
Release history Release notifications | RSS feed
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 cognitivess-0.1.0.tar.gz.
File metadata
- Download URL: cognitivess-0.1.0.tar.gz
- Upload date:
- Size: 12.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
630b1f581db25eb1b49e5a03cf56f9b882ec8cacf568d33200773c4f3310fb69
|
|
| MD5 |
0ade336acdc63e645eee038046c97439
|
|
| BLAKE2b-256 |
7a6dfe842d7a0804b2733045624ee85d208831b85838712e8d590b269db2b2fe
|
File details
Details for the file cognitivess-0.1.0-py3-none-any.whl.
File metadata
- Download URL: cognitivess-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ae8192ab3ea0a6fe778295e2fb28e52919a0ca498f6278bdca313fbf48d066ad
|
|
| MD5 |
9538745a852f04c9a4e5cbdeb7ceb32b
|
|
| BLAKE2b-256 |
f52be7ef4847e80801557532c1d253b6afe058ecd26099e1ba3f07a8aef431d7
|