mirror of
https://github.com/run-llama/observability-blog-code.git
synced 2026-07-01 21:54:01 -04:00
26 lines
940 B
Python
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())
|
|
|
|
|
|
|