Files
observability-blog-code/scripts/run_workflow.py
T
Clelia (Astra) Bertelli ad1d6e34f0 first commit
2025-11-17 14:47:26 +01:00

26 lines
940 B
Python

import asyncio
import httpx
from financial_classifier.events import InputDocumentEvent, ProgressEvent
from workflows.client import WorkflowClient
async def run_workflow():
httpx_client = httpx.AsyncClient(base_url="http://127.0.0.1:8000/deployments/financial-classifier")
wf_client = WorkflowClient(httpx_client=httpx_client)
data = await wf_client.run_workflow_nowait(workflow_name="classify-and-extract", start_event=InputDocumentEvent(path="financial_document.pdf"))
async for event in wf_client.get_workflow_events(data.handler_id):
ev = event.load_event()
if isinstance(ev, ProgressEvent):
print(ev.message)
result = None
while result is None:
handler_data = await wf_client.get_result(data.handler_id)
result = handler_data.result
await asyncio.sleep(0.1)
print(f"Final result:\n{result}")
if __name__ == "__main__":
asyncio.run(run_workflow())