Real-time notification and messaging SDK for Python. WebSocket & HTTP, auth, binary frames, AI, RAG, and workflows.
Project description
DNotifier Python SDK
DNotifier is a real-time notification and messaging SDK for Python 3.9+. It supports WebSocket and HTTP transports, binary streaming, framed packets, an AI pipeline, knowledge-base (RAG) APIs, optional session logging, and multi-step workflows with agents and observability.
Features
- WebSocket and HTTP transport
- Secure authentication handshake
- Real-time messaging (text and binary)
- Large payloads with automatic chunking and reassembly
- AI:
send_ai,fetch_ai_history, semanticsearch - Knowledge base: add, update, get, list, delete, and search documents
- Chat history fetch and delete
- Optional SDK session logging (
logs=True) - Workflows: named agents, sequential pipelines, dashboard observability
- Plan limits from auth (
get_plan_limits)
Installation
pip install dnotifier
Quick start
import asyncio
from dnotifier import DNotifier
async def main():
notifier = DNotifier(
app_id="your-app-id",
secret="your-app-secret",
transport="ws", # or "http"
user_id="user-123",
on_connected=lambda: print("Connected"),
on_message=lambda msg: print(msg.payload.to_json()),
on_disconnected=lambda **kw: print("Disconnected", kw),
)
await notifier.connect()
await notifier.send(
sender_id="user-123",
receiver_id="user-456",
data={"type": "text", "text": "Hello from DNotifier"},
)
await notifier.disconnect()
asyncio.run(main())
Connection options
| Parameter | Type | Description |
|---|---|---|
app_id |
str |
Your DNotifier application id |
secret |
str |
Application secret |
transport |
"ws" | "http" |
WebSocket for realtime; HTTP for RPC-style AI/RAG |
user_id |
str |
End-user or agent id for auth and routing |
logs |
bool |
Enable SDK session logging (default False) |
url |
str |
WebSocket URL override (default production wss://api.dnotifier.com/ecs/ws) |
on_connected |
callable |
Called after successful connect |
on_message |
callable |
Called for each incoming message |
on_disconnected |
callable |
Called on disconnect (code, reason) |
API overview
| Method | Description |
|---|---|
connect() |
Authenticate and open transport |
disconnect() |
Close WebSocket connection |
send(...) |
Send realtime message |
send_binary(...) |
Send binary payload (WebSocket) |
send_ai(...) |
Send to AI pipeline |
fetch_ai_history(...) |
Fetch AI conversation history |
delete_ai_history_message(...) |
Delete one AI history entry |
fetch_chat_history(...) |
Request chat history |
delete_chat_history_message(...) |
Delete one chat message |
search(...) |
Semantic / vector search |
add_document(...) |
Add RAG document |
update_document(...) |
Update RAG document |
delete_document(...) |
Delete RAG document |
list_documents(...) |
List RAG documents |
get_document(...) |
Get RAG document + chunks |
get_plan_limits() |
Plan limits from last auth |
run_workflow(...) |
Run a registered workflow |
Workflows
from dnotifier import DNotifier, Workflow, define_agent
researcher = define_agent(
name="researcher",
run=lambda ctx: ctx.send_ai(message=ctx.input, label="Research"),
)
workflow = Workflow(
name="qa-pipeline",
observability=True,
entry=lambda ctx: ctx.run_agent("researcher"),
)
workflow.register_agent("researcher", researcher)
async def main():
notifier = DNotifier(...)
await notifier.connect()
result = await notifier.run_workflow(workflow=workflow, input_data="What is RAG?")
print(result)
Development
From dnotifier-python-sdk/:
pip install -e ".[dev]"
python -c "from dnotifier import DNotifier; print(DNotifier)"
Publishing (maintainers)
The published PyPI wheel is minified and encrypted so source logic is not shipped in readable form (same approach as the JS and Dart SDKs).
# Prepare minified + PyArmor-encrypted package in publish_dist/
python scripts/minify_for_publish.py
# Bump version, build wheel, upload to PyPI
python scripts/publish_prod.py
License
Proprietary — see LICENSE.
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 dnotifier-1.0.0.tar.gz.
File metadata
- Download URL: dnotifier-1.0.0.tar.gz
- Upload date:
- Size: 14.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e154fc878f7d9ed0e55414af6ef187faefa3140db33317801af10926abc1a96
|
|
| MD5 |
e74b44686ade67f70dcefa6756ec0562
|
|
| BLAKE2b-256 |
6ca7402738f896d46251551c0c2d30b8aa6db55d77aa3f0295f67f722403a88d
|
File details
Details for the file dnotifier-1.0.0-py3-none-any.whl.
File metadata
- Download URL: dnotifier-1.0.0-py3-none-any.whl
- Upload date:
- Size: 21.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01ad61bee8f2c1e463bbca9f87d6fde2975c31e792f7bea7f1d29d6870710d68
|
|
| MD5 |
53bad528c5b6c7fd611dce6fd657400f
|
|
| BLAKE2b-256 |
3b727994225ce14614c63a112ae30aa9d1541241746aff3161d65a83817906d0
|