Python SDK for Bleu AI workflow execution
Project description
Bleu AI Python SDK
A Python client library for interacting with Bleu AI workflows.
Installation
pip install bleuai
Quick Start
import asyncio
from bleuai import BleuAI
async def main():
# Initialize the client with your API key
client = BleuAI(api_key="your-api-key-here")
# Run a workflow and wait for completion
result = await client.run_workflow(
workflow_id="your-workflow-uuid",
inputs={
"prompt": "Generate an image of a sunset over mountains"
}
)
# Check if successful
if result.is_completed:
print("Workflow completed successfully!")
print(f"Outputs: {result.outputs}")
else:
print(f"Workflow failed: {result.error}")
# Close the client
await client.close()
# Run the async function
asyncio.run(main())
Example
See example.py for a complete working example:
export BLEU_API_KEY="your-api-key"
python example.py
Usage
Basic Usage
The SDK provides a simple interface to run Bleu AI workflows:
from bleuai import BleuAI
# Create client
client = BleuAI(api_key="your-api-key")
# Run workflow (async)
result = await client.run_workflow(
workflow_id="workflow-uuid",
inputs={"key": "value"}
)
Synchronous Usage
For non-async environments, use the synchronous wrapper:
from bleuai import BleuAI
client = BleuAI(api_key="your-api-key")
# This creates an event loop internally
result = client.run_workflow_sync(
workflow_id="workflow-uuid",
inputs={"key": "value"}
)
Context Manager
The client can be used as an async context manager:
async with BleuAI(api_key="your-api-key") as client:
result = await client.run_workflow(
workflow_id="workflow-uuid",
inputs={"prompt": "Hello, world!"}
)
Handling Results
The WorkflowResult object provides convenient access to outputs:
result = await client.run_workflow(workflow_id="...", inputs={...})
# Check status
if result.is_completed:
# Get all outputs
all_outputs = result.outputs
# Get output from specific node
node_output = result.get_output(node_id="node-123")
# Get outputs by type
images = result.get_output(output_type="image")
elif result.is_failed:
print(f"Error: {result.error}")
Error Handling
The SDK provides specific exception types for different error scenarios:
from bleuai import (
BleuAI,
AuthenticationError,
WorkflowNotFoundError,
InsufficientCreditsError,
WorkflowExecutionError
)
try:
client = BleuAI(api_key="your-api-key")
result = await client.run_workflow(
workflow_id="workflow-uuid",
inputs={"prompt": "Generate something"}
)
except AuthenticationError:
print("Invalid API key")
except WorkflowNotFoundError:
print("Workflow not found or no access")
except InsufficientCreditsError:
print("Not enough credits to run workflow")
except WorkflowExecutionError as e:
print(f"Workflow execution failed: {e}")
Timeout Configuration
You can configure the timeout for workflow execution:
# Wait up to 10 minutes for completion
result = await client.run_workflow(
workflow_id="workflow-uuid",
inputs={...},
timeout=600.0 # seconds
)
Fire and Forget
To start a workflow without waiting for completion:
# Start workflow and return immediately
result = await client.run_workflow(
workflow_id="workflow-uuid",
inputs={...},
wait_for_completion=False
)
print(f"Workflow started with job ID: {result.job_id}")
API Reference
BleuAI
Main client class for interacting with Bleu AI.
Constructor
BleuAI(
api_key: str,
base_url: str = "https://api.buildbleu.com",
supabase_url: str = "...",
supabase_anon_key: str = "..."
)
Methods
async run_workflow(workflow_id, inputs, wait_for_completion, timeout)- Run a workflowrun_workflow_sync(workflow_id, inputs, timeout)- Synchronous workflow executionasync close()- Close the client connection
WorkflowResult
Result object returned from workflow execution.
Attributes
job_id: str- Unique job identifierstatus: WorkflowStatus- Current status (PENDING, RUNNING, COMPLETED, FAILED)outputs: Optional[Dict]- Workflow outputs (when completed)error: Optional[str]- Error message (when failed)
Methods
is_completed: bool- Check if workflow completed successfullyis_failed: bool- Check if workflow failedget_output(node_id, output_type)- Get specific outputs
Requirements
- Python 3.7+
- httpx
- supabase
- realtime
License
MIT
Support
For support, please contact contact@buildbleu.com or visit https://buildbleu.com
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 bleuai-0.1.0.tar.gz.
File metadata
- Download URL: bleuai-0.1.0.tar.gz
- Upload date:
- Size: 10.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
08bdad034641fe9e90068f7b80c6e7db19e7abee2a904d9409ad1c043d994145
|
|
| MD5 |
a060c9a9d1977e7f1ed79e2d4729b654
|
|
| BLAKE2b-256 |
52be34528ed1819c6185dfd29fd6ec6e0b55b1e8b5f2ad98789b3dda0577d997
|
File details
Details for the file bleuai-0.1.0-py3-none-any.whl.
File metadata
- Download URL: bleuai-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d478f34c90d2c12c609e01321b2a71450ac3daf9d4b085b9bc3c6c3cb7ef82c
|
|
| MD5 |
2d0d6ebd01a3feae20d32944aef4c296
|
|
| BLAKE2b-256 |
169376d12c1d484ad515a99352f055ba370173f9661defa3c6a1b39f1a102ea8
|