Client SDKs
Python SDK
The promptfloe package — sync and async clients, native iterators over streaming events, full type hints. Works on CPython 3.9+ and PyPy.
#Install
pip install promptfloe#Basic usage
main.py
import os
from promptfloe import PromptFloe
client = PromptFloe(api_key=os.environ["PROMPTFLOE_API_KEY"])
# One-shot
app = client.apps.generate(prompt="A pricing page for a CRM SaaS")
print(app.preview_url)
# Streaming
for ev in client.apps.generate_stream(prompt="landing page"):
print(ev.type)#Async client
async_main.py
import asyncio, os
from promptfloe import AsyncPromptFloe
async def main():
client = AsyncPromptFloe(api_key=os.environ["PROMPTFLOE_API_KEY"])
app = await client.apps.generate(prompt="pricing page")
print(app.preview_url)
async for ev in client.apps.generate_stream(prompt="landing"):
print(ev.type)
asyncio.run(main())#Types and dataclasses
Response shapes are typed with typing + dataclasses. Use your IDE's autocomplete or import the types directly:
python
from promptfloe import (
App, GenerateAppRequest, AppEvent,
Skill, SkillRunResult, SkillRunEvent,
CustomSkill, WorkspaceContext,
PromptFloeError, PromptFloeAPIError, PromptFloeRateLimitError,
)#Error handling
python
from promptfloe import PromptFloeAPIError, PromptFloeRateLimitError
import time
try:
client.apps.generate(prompt="...")
except PromptFloeRateLimitError as e:
time.sleep(e.retry_after)
except PromptFloeAPIError as e:
print(e.code, e.message, e.request_id)#Where to go next
PromptFloe developer docs