Typed builder for Dograh voice-AI workflows
Project description
dograh-sdk
Typed builder for Dograh voice-AI workflows. Fetches the node-spec catalog from
the Dograh backend at session start, validates every call against it at the
call site, and produces ReactFlowDTO-compatible JSON.
Install
pip install dograh-sdk
For local development against a checked-out monorepo:
pip install -e sdk/python/
Usage
from dograh_sdk import DograhClient, Workflow
with DograhClient(base_url="http://localhost:8000", api_key="...") as client:
wf = Workflow(client=client, name="loan_qualification")
start = wf.add(
type="startCall",
name="greeting",
prompt="You are Sarah from Acme Loans. Greet the caller warmly.",
greeting_type="text",
greeting="Hi {{first_name}}, this is Sarah.",
)
qualify = wf.add(
type="agentNode",
name="qualify",
prompt="Ask about loan amount and timeline.",
)
done = wf.add(type="endCall", name="done", prompt="Thank the caller.")
wf.edge(start, qualify, label="interested", condition="Caller expressed interest.")
wf.edge(qualify, done, label="done", condition="Qualification complete.")
client.save_workflow(workflow_id=123, workflow=wf)
What gets validated at the call site
The SDK fetches the spec for each node type via get_node_type and raises
ValidationError immediately when:
- an unknown field is passed (catches typos)
- a required field is missing or empty
- a scalar type is wrong (e.g., string for a boolean)
- an
optionsvalue isn't in the allowed list
When a spec carries an llm_hint, the hint is appended to the error message so
an LLM agent can self-correct on retry:
tool_uuids: expected tool_refs, got str
Hint: List of tool UUIDs from `list_tools`.
Server-side Pydantic validators run on save and surface anything the SDK lets through (compound invariants, cross-field rules).
Environment
DOGRAH_API_URL=http://localhost:8000 # default
DOGRAH_API_KEY=sk-... # sent as X-API-Key
License
BSD 2-Clause — 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 dograh_sdk-0.1.0.tar.gz.
File metadata
- Download URL: dograh_sdk-0.1.0.tar.gz
- Upload date:
- Size: 17.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5628abeed4fba3e180ceb75e4ef985283cce9c1c3ca86ec9799f7527c080a649
|
|
| MD5 |
714e4183120a38ce3e899ee5677158d7
|
|
| BLAKE2b-256 |
01fa0f0f6df314fc1f1a887cf88891be4a914c62efbb10aa96fcae161eff82e4
|
File details
Details for the file dograh_sdk-0.1.0-py3-none-any.whl.
File metadata
- Download URL: dograh_sdk-0.1.0-py3-none-any.whl
- Upload date:
- Size: 26.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6be2fdfeaf14c169e8194f88a2f3f0f7a222266bded229c13c8dfb77cbf5037b
|
|
| MD5 |
b4261100a27b42d95fa3de22ceea1418
|
|
| BLAKE2b-256 |
68529060701cfaeb5d7782b8dc6d69f242daef87ccea55a1c4cb02de2fabc026
|