mirror of
https://github.com/run-llama/llama_deploy.git
synced 2026-08-24 21:01:26 -04:00
[PR #260] [MERGED] Implement event streaming from workflows #359
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/run-llama/llama_deploy/pull/260
Author: @logan-markewich
Created: 9/18/2024
Status: ✅ Merged
Merged: 9/24/2024
Merged by: @logan-markewich
Base:
main← Head:logan/implement_event_streaming📝 Commits (10+)
2890ac3add streaminge6d4b97merge maincffe433fix tests2ada6c7merge main02e4471update version in publish releasec973658add e2e testsffa9d37use poetry as an entry point913cd90fix some issues in cicd26d0f91improve process for spinning up message queuec1b9a53don't use poetry run?📊 Changes
27 files changed (+1058 additions, -271 deletions)
View changed files
➕
.github/workflows/e2e_test.yml(+36 -0)📝
.github/workflows/publish_release.yml(+1 -1)📝
.pre-commit-config.yaml(+1 -1)📝
README.md(+38 -2)📝
docs/docs/module_guides/workflow/deployment.md(+82 -11)➕
e2e_tests/README.md(+9 -0)➕
e2e_tests/basic_streaming/launch_core.py(+14 -0)➕
e2e_tests/basic_streaming/launch_workflow.py(+81 -0)➕
e2e_tests/basic_streaming/run.sh(+25 -0)➕
e2e_tests/basic_streaming/test_run_client.py(+82 -0)➕
e2e_tests/basic_workflow/launch_core.py(+14 -0)➕
e2e_tests/basic_workflow/launch_workflow.py(+40 -0)➕
e2e_tests/basic_workflow/run.sh(+25 -0)➕
e2e_tests/basic_workflow/test_run_client.py(+85 -0)➕
e2e_tests/run_all_e2e_tests.sh(+11 -0)📝
llama_deploy/client/async_client.py(+49 -4)📝
llama_deploy/client/sync_client.py(+52 -3)📝
llama_deploy/control_plane/server.py(+103 -4)📝
llama_deploy/deploy/deploy.py(+8 -3)📝
llama_deploy/orchestrators/simple.py(+1 -0)...and 7 more files
📄 Description
This PR adds the ability to
a) expose streaming events from a workflow
b) client code to pass these events in a helpful way to the user. Since we can only put serialized items over the wire, we need to json.dumps the pydantic object. On the client side, I added some logic to at least pass it back to the user as a loaded dict, so that they can rehydrate on their end
I also added some new e2e tests for the CICD, so that we have some assurance that things still work in PRs :)
What this PR does NOT do
Things I don't like
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.