flowcept 0.9.9__tar.gz → 0.9.11__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. {flowcept-0.9.9 → flowcept-0.9.11}/.gitignore +1 -0
  2. {flowcept-0.9.9 → flowcept-0.9.11}/Makefile +1 -0
  3. {flowcept-0.9.9 → flowcept-0.9.11}/PKG-INFO +3 -2
  4. {flowcept-0.9.9 → flowcept-0.9.11}/README.md +1 -1
  5. {flowcept-0.9.9 → flowcept-0.9.11}/docs/api-reference.rst +19 -21
  6. {flowcept-0.9.9 → flowcept-0.9.11}/docs/architecture.rst +4 -6
  7. {flowcept-0.9.9 → flowcept-0.9.11}/docs/conf.py +5 -1
  8. flowcept-0.9.11/docs/img/PROV-AGENT.svg +226 -0
  9. flowcept-0.9.11/docs/large_data.rst +20 -0
  10. {flowcept-0.9.9 → flowcept-0.9.11}/docs/prov_capture.rst +269 -99
  11. {flowcept-0.9.9 → flowcept-0.9.11}/docs/prov_query.rst +76 -61
  12. {flowcept-0.9.9 → flowcept-0.9.11}/docs/prov_storage.rst +86 -1
  13. {flowcept-0.9.9 → flowcept-0.9.11}/docs/quick_start.rst +12 -16
  14. flowcept-0.9.11/docs/schemas.rst +51 -0
  15. {flowcept-0.9.9 → flowcept-0.9.11}/docs/setup.rst +130 -16
  16. {flowcept-0.9.9 → flowcept-0.9.11}/examples/llm_complex/llm_dataprep.py +0 -2
  17. flowcept-0.9.11/examples/llm_tutorial/README.md +232 -0
  18. flowcept-0.9.11/examples/llm_tutorial/analysis.ipynb +610 -0
  19. flowcept-0.9.11/examples/llm_tutorial/llm_dataprep.py +267 -0
  20. flowcept-0.9.11/examples/llm_tutorial/llm_model.py +280 -0
  21. flowcept-0.9.11/examples/llm_tutorial/llm_train_campaign.py +241 -0
  22. {flowcept-0.9.9 → flowcept-0.9.11}/examples/start_here.py +4 -4
  23. {flowcept-0.9.9 → flowcept-0.9.11}/pyproject.toml +1 -1
  24. {flowcept-0.9.9 → flowcept-0.9.11}/resources/sample_settings.yaml +6 -3
  25. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/__init__.py +7 -1
  26. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/agents/gui/agent_gui.py +4 -3
  27. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/agents/tools/general_tools.py +0 -19
  28. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/cli.py +83 -4
  29. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/commons/daos/mq_dao/mq_dao_base.py +10 -17
  30. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/commons/utils.py +19 -1
  31. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/commons/vocabulary.py +20 -0
  32. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/configs.py +22 -13
  33. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowcept_api/flowcept_controller.py +152 -18
  34. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowceptor/adapters/base_interceptor.py +2 -1
  35. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/instrumentation/flowcept_loop.py +4 -3
  36. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/version.py +1 -1
  37. {flowcept-0.9.9 → flowcept-0.9.11}/tests/adapters/test_file_observer.py +2 -2
  38. {flowcept-0.9.9 → flowcept-0.9.11}/tests/instrumentation_tests/flowcept_task_decorator_test.py +5 -1
  39. flowcept-0.9.9/docs/schemas.rst +0 -11
  40. {flowcept-0.9.9 → flowcept-0.9.11}/.github/workflows/checks.yml +0 -0
  41. {flowcept-0.9.9 → flowcept-0.9.11}/.github/workflows/create-release-n-publish.yml +0 -0
  42. {flowcept-0.9.9 → flowcept-0.9.11}/.github/workflows/run-llm-tests.yml +0 -0
  43. {flowcept-0.9.9 → flowcept-0.9.11}/.github/workflows/run-tests-all-dbs.yml +0 -0
  44. {flowcept-0.9.9 → flowcept-0.9.11}/.github/workflows/run-tests-in-container.yml +0 -0
  45. {flowcept-0.9.9 → flowcept-0.9.11}/.github/workflows/run-tests-kafka.yml +0 -0
  46. {flowcept-0.9.9 → flowcept-0.9.11}/.github/workflows/run-tests-py313.yml +0 -0
  47. {flowcept-0.9.9 → flowcept-0.9.11}/.github/workflows/run-tests-simple.yml +0 -0
  48. {flowcept-0.9.9 → flowcept-0.9.11}/.github/workflows/run-tests.yml +0 -0
  49. {flowcept-0.9.9 → flowcept-0.9.11}/.github/workflows/run_examples.sh +0 -0
  50. {flowcept-0.9.9 → flowcept-0.9.11}/.github/workflows/version_bumper.py +0 -0
  51. {flowcept-0.9.9 → flowcept-0.9.11}/.readthedocs.yaml +0 -0
  52. {flowcept-0.9.9 → flowcept-0.9.11}/CONTRIBUTING.md +0 -0
  53. {flowcept-0.9.9 → flowcept-0.9.11}/LICENSE +0 -0
  54. {flowcept-0.9.9 → flowcept-0.9.11}/deployment/Dockerfile +0 -0
  55. {flowcept-0.9.9 → flowcept-0.9.11}/deployment/compose-grafana.yml +0 -0
  56. {flowcept-0.9.9 → flowcept-0.9.11}/deployment/compose-kafka.yml +0 -0
  57. {flowcept-0.9.9 → flowcept-0.9.11}/deployment/compose-mofka.yml +0 -0
  58. {flowcept-0.9.9 → flowcept-0.9.11}/deployment/compose-mongo.yml +0 -0
  59. {flowcept-0.9.9 → flowcept-0.9.11}/deployment/compose.yml +0 -0
  60. {flowcept-0.9.9 → flowcept-0.9.11}/docs/cli-reference.rst +0 -0
  61. {flowcept-0.9.9 → flowcept-0.9.11}/docs/contributing.rst +0 -0
  62. {flowcept-0.9.9 → flowcept-0.9.11}/docs/img/architecture-diagram.png +0 -0
  63. {flowcept-0.9.9 → flowcept-0.9.11}/docs/img/flowcept-logo-dark.png +0 -0
  64. {flowcept-0.9.9 → flowcept-0.9.11}/docs/img/flowcept-logo.png +0 -0
  65. {flowcept-0.9.9 → flowcept-0.9.11}/docs/index.rst +0 -0
  66. {flowcept-0.9.9 → flowcept-0.9.11}/docs/task_schema.rst +0 -0
  67. {flowcept-0.9.9 → flowcept-0.9.11}/docs/telemetry_capture.rst +0 -0
  68. {flowcept-0.9.9 → flowcept-0.9.11}/docs/workflow_schema.rst +0 -0
  69. {flowcept-0.9.9 → flowcept-0.9.11}/examples/agents/a2a/README.md +0 -0
  70. {flowcept-0.9.9 → flowcept-0.9.11}/examples/agents/a2a/agent1.py +0 -0
  71. {flowcept-0.9.9 → flowcept-0.9.11}/examples/agents/a2a/agent2.py +0 -0
  72. {flowcept-0.9.9 → flowcept-0.9.11}/examples/agents/aec_agent_context_manager.py +0 -0
  73. {flowcept-0.9.9 → flowcept-0.9.11}/examples/agents/aec_agent_mock.py +0 -0
  74. {flowcept-0.9.9 → flowcept-0.9.11}/examples/agents/aec_prompts.py +0 -0
  75. {flowcept-0.9.9 → flowcept-0.9.11}/examples/agents/opt_driver_mock.py +0 -0
  76. {flowcept-0.9.9 → flowcept-0.9.11}/examples/consumers/ping_pong_example.py +0 -0
  77. {flowcept-0.9.9 → flowcept-0.9.11}/examples/consumers/simple_consumer.py +0 -0
  78. {flowcept-0.9.9 → flowcept-0.9.11}/examples/consumers/simple_publisher.py +0 -0
  79. {flowcept-0.9.9 → flowcept-0.9.11}/examples/convergence_loop_example.py +0 -0
  80. {flowcept-0.9.9 → flowcept-0.9.11}/examples/dask_example.py +0 -0
  81. {flowcept-0.9.9 → flowcept-0.9.11}/examples/distributed_consumer_example.py +0 -0
  82. {flowcept-0.9.9 → flowcept-0.9.11}/examples/instrumented_loop_example.py +0 -0
  83. {flowcept-0.9.9 → flowcept-0.9.11}/examples/instrumented_simple_example.py +0 -0
  84. {flowcept-0.9.9 → flowcept-0.9.11}/examples/llm_complex/README.md +0 -0
  85. {flowcept-0.9.9 → flowcept-0.9.11}/examples/llm_complex/custom_provenance_id_mapping.yaml +0 -0
  86. {flowcept-0.9.9 → flowcept-0.9.11}/examples/llm_complex/llm_main_example.py +0 -0
  87. {flowcept-0.9.9 → flowcept-0.9.11}/examples/llm_complex/llm_model.py +0 -0
  88. {flowcept-0.9.9 → flowcept-0.9.11}/examples/llm_complex/llm_test_runner.py +0 -0
  89. {flowcept-0.9.9 → flowcept-0.9.11}/examples/mlflow_example.py +0 -0
  90. {flowcept-0.9.9 → flowcept-0.9.11}/examples/mqtt_example.py +0 -0
  91. {flowcept-0.9.9 → flowcept-0.9.11}/examples/single_layer_perceptron_example.py +0 -0
  92. {flowcept-0.9.9 → flowcept-0.9.11}/examples/tensorboard_example.py +0 -0
  93. {flowcept-0.9.9 → flowcept-0.9.11}/examples/unmanaged/main.py +0 -0
  94. {flowcept-0.9.9 → flowcept-0.9.11}/examples/unmanaged/simple_task.py +0 -0
  95. {flowcept-0.9.9 → flowcept-0.9.11}/notebooks/analytics.ipynb +0 -0
  96. {flowcept-0.9.9 → flowcept-0.9.11}/notebooks/dask.ipynb +0 -0
  97. {flowcept-0.9.9 → flowcept-0.9.11}/notebooks/dask_from_CLI.ipynb +0 -0
  98. {flowcept-0.9.9 → flowcept-0.9.11}/notebooks/mlflow.ipynb +0 -0
  99. {flowcept-0.9.9 → flowcept-0.9.11}/notebooks/reset_dask_nb_exec_counts.py +0 -0
  100. {flowcept-0.9.9 → flowcept-0.9.11}/notebooks/tensorboard.ipynb +0 -0
  101. {flowcept-0.9.9 → flowcept-0.9.11}/resources/mofka/bedrock_setup.sh +0 -0
  102. {flowcept-0.9.9 → flowcept-0.9.11}/resources/mofka/consumer.py +0 -0
  103. {flowcept-0.9.9 → flowcept-0.9.11}/resources/mofka/mofka-requirements.yaml +0 -0
  104. {flowcept-0.9.9 → flowcept-0.9.11}/resources/mofka/mofka_config.json +0 -0
  105. {flowcept-0.9.9 → flowcept-0.9.11}/resources/simple_redis_consumer.py +0 -0
  106. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/agents/__init__.py +0 -0
  107. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/agents/agent_client.py +0 -0
  108. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/agents/agents_utils.py +0 -0
  109. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/agents/dynamic_schema_tracker.py +0 -0
  110. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/agents/flowcept_agent.py +0 -0
  111. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/agents/flowcept_ctx_manager.py +0 -0
  112. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/agents/gui/__init__.py +0 -0
  113. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/agents/gui/audio_utils.py +0 -0
  114. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/agents/gui/gui_utils.py +0 -0
  115. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/agents/llms/__init__.py +0 -0
  116. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/agents/llms/claude_gcp.py +0 -0
  117. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/agents/llms/gemini25.py +0 -0
  118. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/agents/prompts/__init__.py +0 -0
  119. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/agents/prompts/general_prompts.py +0 -0
  120. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/agents/prompts/in_memory_query_prompts.py +0 -0
  121. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/agents/tools/__init__.py +0 -0
  122. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/agents/tools/in_memory_queries/__init__.py +0 -0
  123. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/agents/tools/in_memory_queries/in_memory_queries_tools.py +0 -0
  124. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/agents/tools/in_memory_queries/pandas_agent_utils.py +0 -0
  125. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/analytics/__init__.py +0 -0
  126. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/analytics/analytics_utils.py +0 -0
  127. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/analytics/data_augmentation.py +0 -0
  128. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/analytics/plot.py +0 -0
  129. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/commons/__init__.py +0 -0
  130. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/commons/autoflush_buffer.py +0 -0
  131. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/commons/daos/__init__.py +0 -0
  132. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/commons/daos/docdb_dao/__init__.py +0 -0
  133. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/commons/daos/docdb_dao/docdb_dao_base.py +0 -0
  134. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/commons/daos/docdb_dao/lmdb_dao.py +0 -0
  135. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/commons/daos/docdb_dao/mongodb_dao.py +0 -0
  136. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/commons/daos/keyvalue_dao.py +0 -0
  137. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/commons/daos/mq_dao/__init__.py +0 -0
  138. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/commons/daos/mq_dao/mq_dao_kafka.py +0 -0
  139. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/commons/daos/mq_dao/mq_dao_mofka.py +0 -0
  140. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/commons/daos/mq_dao/mq_dao_redis.py +0 -0
  141. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/commons/daos/redis_conn.py +0 -0
  142. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/commons/flowcept_dataclasses/__init__.py +0 -0
  143. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/commons/flowcept_dataclasses/base_settings_dataclasses.py +0 -0
  144. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/commons/flowcept_dataclasses/task_object.py +0 -0
  145. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/commons/flowcept_dataclasses/telemetry.py +0 -0
  146. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/commons/flowcept_dataclasses/workflow_object.py +0 -0
  147. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/commons/flowcept_logger.py +0 -0
  148. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/commons/query_utils.py +0 -0
  149. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/commons/settings_factory.py +0 -0
  150. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/commons/task_data_preprocess.py +0 -0
  151. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowcept_api/__init__.py +0 -0
  152. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowcept_api/db_api.py +0 -0
  153. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowcept_api/task_query_api.py +0 -0
  154. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowcept_webserver/__init__.py +0 -0
  155. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowcept_webserver/app.py +0 -0
  156. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowcept_webserver/resources/__init__.py +0 -0
  157. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowcept_webserver/resources/query_rsrc.py +0 -0
  158. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowcept_webserver/resources/task_messages_rsrc.py +0 -0
  159. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowceptor/__init__.py +0 -0
  160. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowceptor/adapters/__init__.py +0 -0
  161. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowceptor/adapters/brokers/__init__.py +0 -0
  162. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowceptor/adapters/brokers/mqtt_interceptor.py +0 -0
  163. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowceptor/adapters/dask/__init__.py +0 -0
  164. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowceptor/adapters/dask/dask_dataclasses.py +0 -0
  165. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowceptor/adapters/dask/dask_interceptor.py +0 -0
  166. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowceptor/adapters/dask/dask_plugins.py +0 -0
  167. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowceptor/adapters/instrumentation_interceptor.py +0 -0
  168. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowceptor/adapters/interceptor_state_manager.py +0 -0
  169. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowceptor/adapters/mlflow/__init__.py +0 -0
  170. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowceptor/adapters/mlflow/interception_event_handler.py +0 -0
  171. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowceptor/adapters/mlflow/mlflow_dao.py +0 -0
  172. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowceptor/adapters/mlflow/mlflow_dataclasses.py +0 -0
  173. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowceptor/adapters/mlflow/mlflow_interceptor.py +0 -0
  174. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowceptor/adapters/tensorboard/__init__.py +0 -0
  175. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowceptor/adapters/tensorboard/tensorboard_dataclasses.py +0 -0
  176. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowceptor/adapters/tensorboard/tensorboard_interceptor.py +0 -0
  177. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowceptor/consumers/__init__.py +0 -0
  178. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowceptor/consumers/agent/__init__.py +0 -0
  179. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowceptor/consumers/agent/base_agent_context_manager.py +0 -0
  180. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowceptor/consumers/base_consumer.py +0 -0
  181. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowceptor/consumers/consumer_utils.py +0 -0
  182. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowceptor/consumers/document_inserter.py +0 -0
  183. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/flowceptor/telemetry_capture.py +0 -0
  184. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/instrumentation/__init__.py +0 -0
  185. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/instrumentation/flowcept_agent_task.py +0 -0
  186. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/instrumentation/flowcept_decorator.py +0 -0
  187. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/instrumentation/flowcept_task.py +0 -0
  188. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/instrumentation/flowcept_torch.py +0 -0
  189. {flowcept-0.9.9 → flowcept-0.9.11}/src/flowcept/instrumentation/task_capture.py +0 -0
  190. {flowcept-0.9.9 → flowcept-0.9.11}/tests/__init__.py +0 -0
  191. {flowcept-0.9.9 → flowcept-0.9.11}/tests/adapters/__init__.py +0 -0
  192. {flowcept-0.9.9 → flowcept-0.9.11}/tests/adapters/dask_test_utils.py +0 -0
  193. {flowcept-0.9.9 → flowcept-0.9.11}/tests/adapters/test_broker.py +0 -0
  194. {flowcept-0.9.9 → flowcept-0.9.11}/tests/adapters/test_dask.py +0 -0
  195. {flowcept-0.9.9 → flowcept-0.9.11}/tests/adapters/test_dask_with_context_mgmt.py +0 -0
  196. {flowcept-0.9.9 → flowcept-0.9.11}/tests/adapters/test_mlflow.py +0 -0
  197. {flowcept-0.9.9 → flowcept-0.9.11}/tests/adapters/test_tensorboard.py +0 -0
  198. {flowcept-0.9.9 → flowcept-0.9.11}/tests/api/__init__.py +0 -0
  199. {flowcept-0.9.9 → flowcept-0.9.11}/tests/api/db_api_test.py +0 -0
  200. {flowcept-0.9.9 → flowcept-0.9.11}/tests/api/flowcept_api_test.py +0 -0
  201. {flowcept-0.9.9 → flowcept-0.9.11}/tests/api/sample_data.json +0 -0
  202. {flowcept-0.9.9 → flowcept-0.9.11}/tests/api/sample_data_with_telemetry_and_rai.json +0 -0
  203. {flowcept-0.9.9 → flowcept-0.9.11}/tests/api/task_query_api_test.py +0 -0
  204. {flowcept-0.9.9 → flowcept-0.9.11}/tests/doc_db_inserter/__init__.py +0 -0
  205. {flowcept-0.9.9 → flowcept-0.9.11}/tests/doc_db_inserter/doc_db_inserter_test.py +0 -0
  206. {flowcept-0.9.9 → flowcept-0.9.11}/tests/instrumentation_tests/__init__.py +0 -0
  207. {flowcept-0.9.9 → flowcept-0.9.11}/tests/instrumentation_tests/flowcept_explicit_tasks.py +0 -0
  208. {flowcept-0.9.9 → flowcept-0.9.11}/tests/instrumentation_tests/flowcept_loop_test.py +0 -0
  209. {flowcept-0.9.9 → flowcept-0.9.11}/tests/instrumentation_tests/ml_tests/__init__.py +0 -0
  210. {flowcept-0.9.9 → flowcept-0.9.11}/tests/instrumentation_tests/ml_tests/dl_trainer.py +0 -0
  211. {flowcept-0.9.9 → flowcept-0.9.11}/tests/instrumentation_tests/ml_tests/ml_decorator_dask_test.py +0 -0
  212. {flowcept-0.9.9 → flowcept-0.9.11}/tests/instrumentation_tests/ml_tests/ml_decorator_test.py +0 -0
  213. {flowcept-0.9.9 → flowcept-0.9.11}/tests/misc_tests/__init__.py +0 -0
  214. {flowcept-0.9.9 → flowcept-0.9.11}/tests/misc_tests/log_test.py +0 -0
  215. {flowcept-0.9.9 → flowcept-0.9.11}/tests/misc_tests/singleton_test.py +0 -0
  216. {flowcept-0.9.9 → flowcept-0.9.11}/tests/misc_tests/telemetry_test.py +0 -0
@@ -10,6 +10,7 @@
10
10
  **/*tensorboard_events*
11
11
  **/*.DS_Store*
12
12
  **/*.log
13
+ **/*.jsonl
13
14
  **/*.pth
14
15
  **/*ipynb_checkpoints*
15
16
  **/*flowcept_lmdb
@@ -45,6 +45,7 @@ clean:
45
45
  @find . -type d -name "*output_data*" -exec sh -c 'rm -rf "$$@" 2>/dev/null || true' sh {} +
46
46
  @find . -type f -name "*nohup*" -exec sh -c 'rm -f "$$@" 2>/dev/null || true' sh {} +
47
47
  @sh -c 'sphinx-build -M clean docs docs/_build > /dev/null 2>&1 || true'
48
+ @sh -c 'rm -f docs/generated/* 2>/dev/null || true'
48
49
 
49
50
  # Build the HTML documentation using Sphinx
50
51
  .PHONY: docs
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flowcept
3
- Version: 0.9.9
3
+ Version: 0.9.11
4
4
  Summary: Capture and query workflow provenance data using data observability
5
5
  Author: Oak Ridge National Laboratory
6
6
  License-Expression: MIT
@@ -56,6 +56,7 @@ Requires-Dist: tensorflow; extra == 'all'
56
56
  Requires-Dist: tomli; extra == 'all'
57
57
  Requires-Dist: watchdog; extra == 'all'
58
58
  Provides-Extra: analytics
59
+ Requires-Dist: matplotlib; extra == 'analytics'
59
60
  Requires-Dist: plotly; extra == 'analytics'
60
61
  Requires-Dist: scipy; extra == 'analytics'
61
62
  Requires-Dist: seaborn; extra == 'analytics'
@@ -219,7 +220,7 @@ def main():
219
220
  if __name__ == "__main__":
220
221
  main()
221
222
 
222
- prov_messages = Flowcept.read_messages_file()
223
+ prov_messages = Flowcept.read_buffer_file()
223
224
  assert len(prov_messages) == 2
224
225
  print(json.dumps(prov_messages, indent=2))
225
226
  ```
@@ -71,7 +71,7 @@ def main():
71
71
  if __name__ == "__main__":
72
72
  main()
73
73
 
74
- prov_messages = Flowcept.read_messages_file()
74
+ prov_messages = Flowcept.read_buffer_file()
75
75
  assert len(prov_messages) == 2
76
76
  print(json.dumps(prov_messages, indent=2))
77
77
  ```
@@ -1,27 +1,17 @@
1
1
  API Reference
2
2
  =============
3
3
 
4
- .. autosummary::
5
- :toctree: generated/
6
- :recursive:
7
-
8
- flowcept.Flowcept
9
- flowcept.flowcept_api.db_api.DBAPI
10
- flowcept.TaskObject
11
- flowcept.WorkflowObject
12
- flowcept.FlowceptTask
13
- flowcept.FlowceptLoop
14
- flowcept.FlowceptLightweightLoop
15
4
 
16
5
  Main Flowcept Object
17
6
  --------------------
18
7
 
8
+ See also: `Flowcept object <https://flowcept.readthedocs.io/en/latest/prov_capture.html>`_ in provenance capture methods.
9
+
19
10
  .. autoclass:: flowcept.Flowcept
20
11
  :members:
21
12
  :special-members: __init__
22
13
  :exclude-members: __weakref__, __dict__, __module__
23
-
24
-
14
+ :noindex:
25
15
 
26
16
  Flowcept.db: Querying the Database
27
17
  ----------------------------------
@@ -49,18 +39,20 @@ Typical usage:
49
39
  :members:
50
40
  :undoc-members:
51
41
  :show-inheritance:
52
-
42
+ :noindex:
53
43
 
54
44
  Main Message Objects
55
45
  ---------------------
56
46
 
57
47
  .. autoclass:: flowcept.TaskObject
58
48
  :members:
49
+ :noindex:
59
50
 
60
51
  .. autoclass:: flowcept.WorkflowObject
61
52
  :members:
53
+ :noindex:
62
54
 
63
- FlowceptTask object
55
+ FlowceptTask
64
56
  -------------------
65
57
 
66
58
  .. autoclass:: flowcept.FlowceptTask
@@ -68,22 +60,28 @@ FlowceptTask object
68
60
  :special-members: __init__
69
61
  :undoc-members:
70
62
  :show-inheritance:
63
+ :noindex:
71
64
 
72
- FlowceptLoop object
65
+ FlowceptLoop
73
66
  -------------------
74
67
 
75
- .. autoclass:: flowcept.FlowceptLoop
68
+ Can be imported via ``from flowcept import FlowceptLoop``
69
+
70
+ .. autoclass:: flowcept.instrumentation.flowcept_loop.FlowceptLoop
76
71
  :members:
77
72
  :special-members: __init__
78
73
  :undoc-members:
79
74
  :show-inheritance:
75
+ :noindex:
80
76
 
81
-
82
- FlowceptLightweightLoop object
77
+ FlowceptLightweightLoop
83
78
  ------------------------------
84
79
 
85
- .. autoclass:: flowcept.FlowceptLightweightLoop
80
+ Can be imported via ``from flowcept import FlowceptLightweightLoop``
81
+
82
+ .. autoclass:: flowcept.instrumentation.flowcept_loop.FlowceptLightweightLoop
86
83
  :members:
87
84
  :special-members: __init__
88
85
  :undoc-members:
89
- :show-inheritance:
86
+ :show-inheritance:
87
+ :noindex:
@@ -8,9 +8,7 @@ Flowcept Architecture
8
8
  Overview
9
9
  --------
10
10
 
11
- Rather than designing a new provenance system from scratch, Flowcept builds on a **reference architecture**
12
- (Figure below) that follows established distributed design principles and is extensible to support
13
- LLM-based provenance agents.
11
+ Flowcept follows established distributed design principles and is extensible to support multiple MQs as backends, multiple database models (e.g., Document, Relational, Graph), and LLM-based agents.
14
12
  This provides a flexible, loosely coupled framework that scales from small centralized workflows
15
13
  to large HPC workflows across the **Edge–Cloud–HPC (ECH)** continuum.
16
14
 
@@ -19,8 +17,6 @@ to large HPC workflows across the **Edge–Cloud–HPC (ECH)** continuum.
19
17
  :align: center
20
18
  :width: 100%
21
19
 
22
- Reference architecture for distributed workflow provenance with a provenance AI agent.
23
-
24
20
  Capture Mechanisms
25
21
  ------------------
26
22
 
@@ -59,7 +55,7 @@ They can store provenance into different backends, depending on performance and
59
55
 
60
56
  - **MongoDB** → efficient bulk writes and flexible aggregation queries.
61
57
  - **LMDB** → lightweight key–value store, optimized for high-frequency inserts.
62
- - **Neo4j** → graph database, enabling graph traversal and relationship queries.
58
+ - **Custom** → Other storage mechanisms can be implemented by following Flowcept's Base Consumer class. See `here <https://flowcept.readthedocs.io/en/latest/prov_storage.html#provenance-consumer>`_.
63
59
 
64
60
  Access and Querying
65
61
  -------------------
@@ -70,6 +66,8 @@ Users can access provenance data through multiple interfaces:
70
66
  - **Grafana dashboards** for monitoring and visualization
71
67
  - **Natural language queries** through Flowcept’s LLM-powered agent (introduced in this work)
72
68
 
69
+ See more about `querying <https://flowcept.readthedocs.io/en/latest/prov_query.html>`_.
70
+
73
71
  Deployment Flexibility
74
72
  ----------------------
75
73
 
@@ -13,8 +13,12 @@ author = "Oak Ridge National Lab"
13
13
  # -- General configuration ---------------------------------------------------
14
14
  # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
15
15
 
16
- extensions = ["sphinx.ext.autodoc"]
16
+ extensions = [
17
+ "sphinx.ext.autodoc",
18
+ "sphinx.ext.autosummary",
19
+ ]
17
20
 
21
+ autosummary_generate = True
18
22
  templates_path = ["_templates"]
19
23
  exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
20
24
 
@@ -0,0 +1,226 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="620pt" height="666pt" viewBox="0.00 0.00 619.79 665.60">
2
+ <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 661.6)">
3
+ <title>AIAgentProvenance</title>
4
+ <polygon fill="white" stroke="none" points="-4,4 -4,-661.6 615.79,-661.6 615.79,4 -4,4"/>
5
+ <!-- DataObject -->
6
+ <g id="node1" class="node">
7
+ <title>DataObject</title>
8
+ <ellipse fill="lightyellow" stroke="black" cx="270.92" cy="-373.2" rx="59.34" ry="18"/>
9
+ <text text-anchor="middle" x="270.92" y="-369" font-family="Helvetica,sans-Serif" font-size="14.00">DataObject</text>
10
+ </g>
11
+ <!-- ToolExecution -->
12
+ <g id="node11" class="node">
13
+ <title>ToolExecution</title>
14
+ <polygon fill="lightblue" stroke="black" points="312.83,-302.4 233.01,-302.4 233.01,-266.4 312.83,-266.4 312.83,-302.4"/>
15
+ <text text-anchor="middle" x="272.92" y="-280.2" font-family="Helvetica,sans-Serif" font-size="14.00">AgentTool</text>
16
+ </g>
17
+ <!-- DataObject&#45;&gt;ToolExecution -->
18
+ <g id="edge8" class="edge">
19
+ <title>DataObject-&gt;ToolExecution</title>
20
+ <path fill="none" stroke="black" d="M245,-356.58C232.59,-346.96 221.72,-333.91 228.29,-320.4 230.02,-316.84 232.31,-313.53 234.94,-310.49"/>
21
+ <polygon fill="black" stroke="black" points="237.24,-313.14 241.98,-303.67 232.37,-308.11 237.24,-313.14"/>
22
+ <text text-anchor="middle" x="276.11" y="-324.6" font-family="Times,serif" font-size="14.00">wasGeneratedBy</text>
23
+ </g>
24
+ <!-- AIAgent -->
25
+ <g id="node13" class="node">
26
+ <title>AIAgent</title>
27
+ <polygon fill="orange" stroke="black" points="447.03,-23.56 390.92,-36 334.81,-23.56 356.24,-3.44 425.6,-3.44 447.03,-23.56"/>
28
+ <text text-anchor="middle" x="390.92" y="-13.8" font-family="Helvetica,sans-Serif" font-size="14.00">AIAgent</text>
29
+ </g>
30
+ <!-- DataObject&#45;&gt;AIAgent -->
31
+ <g id="edge9" class="edge">
32
+ <title>DataObject-&gt;AIAgent</title>
33
+ <path fill="none" stroke="black" d="M323.39,-364.52C395.64,-352.44 516.92,-326.1 516.92,-285.4 516.92,-285.4 516.92,-285.4 516.92,-105.8 516.92,-66.68 475.22,-43.85 439.8,-31.5"/>
34
+ <polygon fill="black" stroke="black" points="441.1,-28.24 430.5,-28.47 438.93,-34.9 441.1,-28.24"/>
35
+ <text text-anchor="middle" x="564.35" y="-191.4" font-family="Times,serif" font-size="14.00">wasAttributedTo</text>
36
+ </g>
37
+ <!-- Model -->
38
+ <g id="node2" class="node">
39
+ <title>Model</title>
40
+ <ellipse fill="lightyellow" stroke="black" cx="316.92" cy="-106.8" rx="46.46" ry="18"/>
41
+ <text text-anchor="middle" x="316.92" y="-102.6" font-family="Helvetica,sans-Serif" font-size="14.00">AIModel</text>
42
+ </g>
43
+ <!-- DomainData -->
44
+ <g id="node3" class="node">
45
+ <title>DomainData</title>
46
+ <ellipse fill="lightyellow" stroke="black" cx="188.92" cy="-462" rx="64.71" ry="18"/>
47
+ <text text-anchor="middle" x="188.92" y="-457.8" font-family="Helvetica,sans-Serif" font-size="14.00">DomainData</text>
48
+ </g>
49
+ <!-- DomainData&#45;&gt;DataObject -->
50
+ <g id="edge17" class="edge">
51
+ <title>DomainData-&gt;DataObject</title>
52
+ <path fill="none" stroke="gray" stroke-dasharray="5,2" d="M204.73,-444.26C216.87,-431.42 233.82,-413.48 247.52,-398.97"/>
53
+ <polygon fill="gray" stroke="gray" points="249.8,-401.66 254.12,-391.98 244.71,-396.85 249.8,-401.66"/>
54
+ </g>
55
+ <!-- Task -->
56
+ <g id="node10" class="node">
57
+ <title>Task</title>
58
+ <polygon fill="lightblue" stroke="black" points="328.92,-568.8 274.92,-568.8 274.92,-532.8 328.92,-532.8 328.92,-568.8"/>
59
+ <text text-anchor="middle" x="301.92" y="-546.6" font-family="Helvetica,sans-Serif" font-size="14.00">Task</text>
60
+ </g>
61
+ <!-- DomainData&#45;&gt;Task -->
62
+ <g id="edge11" class="edge">
63
+ <title>DomainData-&gt;Task</title>
64
+ <path fill="none" stroke="black" d="M180.09,-479.95C175.74,-490.89 172.83,-504.89 180.29,-514.8 199.26,-539.99 235.18,-547.94 263.08,-550.06"/>
65
+ <polygon fill="black" stroke="black" points="262.8,-553.55 272.97,-550.57 263.16,-546.56 262.8,-553.55"/>
66
+ <text text-anchor="middle" x="228.11" y="-502.2" font-family="Times,serif" font-size="14.00">wasGeneratedBy</text>
67
+ </g>
68
+ <!-- Telemetry -->
69
+ <g id="node4" class="node">
70
+ <title>Telemetry</title>
71
+ <ellipse fill="lightyellow" stroke="black" cx="522.92" cy="-462" rx="74.36" ry="18"/>
72
+ <text text-anchor="middle" x="522.92" y="-457.8" font-family="Helvetica,sans-Serif" font-size="14.00">TelemetryData</text>
73
+ </g>
74
+ <!-- Telemetry&#45;&gt;DataObject -->
75
+ <g id="edge18" class="edge">
76
+ <title>Telemetry-&gt;DataObject</title>
77
+ <path fill="none" stroke="gray" stroke-dasharray="5,2" d="M481.31,-446.67C436.92,-431.38 366.66,-407.18 319.7,-391"/>
78
+ <polygon fill="gray" stroke="gray" points="320.91,-387.72 310.31,-387.77 318.63,-394.33 320.91,-387.72"/>
79
+ </g>
80
+ <!-- Telemetry&#45;&gt;Task -->
81
+ <g id="edge12" class="edge">
82
+ <title>Telemetry-&gt;Task</title>
83
+ <path fill="none" stroke="black" d="M499.8,-479.44C483.03,-490.74 459.41,-505.34 436.92,-514.8 405.57,-527.98 367.99,-537.23 340.45,-542.9"/>
84
+ <polygon fill="black" stroke="black" points="339.92,-539.43 330.79,-544.81 341.28,-546.3 339.92,-539.43"/>
85
+ <text text-anchor="middle" x="516.72" y="-502.2" font-family="Times,serif" font-size="14.00">wasGeneratedBy</text>
86
+ </g>
87
+ <!-- SchedulingData -->
88
+ <g id="node5" class="node">
89
+ <title>SchedulingData</title>
90
+ <ellipse fill="lightyellow" stroke="black" cx="350.92" cy="-462" rx="79.22" ry="18"/>
91
+ <text text-anchor="middle" x="350.92" y="-457.8" font-family="Helvetica,sans-Serif" font-size="14.00">SchedulingData</text>
92
+ </g>
93
+ <!-- SchedulingData&#45;&gt;DataObject -->
94
+ <g id="edge19" class="edge">
95
+ <title>SchedulingData-&gt;DataObject</title>
96
+ <path fill="none" stroke="gray" stroke-dasharray="5,2" d="M335.49,-444.26C323.65,-431.42 307.12,-413.48 293.75,-398.97"/>
97
+ <polygon fill="gray" stroke="gray" points="296.67,-396.98 287.32,-392 291.53,-401.72 296.67,-396.98"/>
98
+ </g>
99
+ <!-- SchedulingData&#45;&gt;Task -->
100
+ <g id="edge10" class="edge">
101
+ <title>SchedulingData-&gt;Task</title>
102
+ <path fill="none" stroke="black" d="M344.84,-480.33C340.91,-490.65 335.33,-503.84 328.92,-514.8 327.25,-517.66 325.37,-520.54 323.41,-523.37"/>
103
+ <polygon fill="black" stroke="black" points="320.61,-521.28 317.48,-531.4 326.24,-525.44 320.61,-521.28"/>
104
+ <text text-anchor="middle" x="385.18" y="-502.2" font-family="Times,serif" font-size="14.00">wasGeneratedBy</text>
105
+ </g>
106
+ <!-- Prompt -->
107
+ <g id="node6" class="node">
108
+ <title>Prompt</title>
109
+ <ellipse fill="lightyellow" stroke="black" cx="209.92" cy="-106.8" rx="42.16" ry="18"/>
110
+ <text text-anchor="middle" x="209.92" y="-102.6" font-family="Helvetica,sans-Serif" font-size="14.00">Prompt</text>
111
+ </g>
112
+ <!-- Prompt&#45;&gt;DataObject -->
113
+ <g id="edge20" class="edge">
114
+ <title>Prompt-&gt;DataObject</title>
115
+ <path fill="none" stroke="gray" stroke-dasharray="5,2" d="M177.76,-118.85C159.79,-125.75 140.01,-134.8 134.92,-142.8 130.91,-149.1 133.23,-152.33 134.92,-159.6 154.77,-245.23 165.09,-270.15 221.92,-337.2 225.85,-341.84 230.52,-346.17 235.39,-350.1"/>
116
+ <polygon fill="gray" stroke="gray" points="232.94,-352.64 243.05,-355.82 237.13,-347.03 232.94,-352.64"/>
117
+ </g>
118
+ <!-- ResponseData -->
119
+ <g id="node7" class="node">
120
+ <title>ResponseData</title>
121
+ <ellipse fill="lightyellow" stroke="black" cx="74.92" cy="-106.8" rx="74.92" ry="18"/>
122
+ <text text-anchor="middle" x="74.92" y="-102.6" font-family="Helvetica,sans-Serif" font-size="14.00">ResponseData</text>
123
+ </g>
124
+ <!-- ResponseData&#45;&gt;DataObject -->
125
+ <g id="edge21" class="edge">
126
+ <title>ResponseData-&gt;DataObject</title>
127
+ <path fill="none" stroke="gray" stroke-dasharray="5,2" d="M80.55,-125.14C92.61,-160.7 123.44,-243.45 166.92,-302.4 182.67,-323.76 207.04,-340.61 228.23,-352.41"/>
128
+ <polygon fill="gray" stroke="gray" points="226.51,-355.46 236.98,-357.07 229.81,-349.28 226.51,-355.46"/>
129
+ </g>
130
+ <!-- LLMInvocation -->
131
+ <g id="node12" class="node">
132
+ <title>LLMInvocation</title>
133
+ <polygon fill="lightblue" stroke="black" points="338.51,-213.6 207.33,-213.6 207.33,-177.6 338.51,-177.6 338.51,-213.6"/>
134
+ <text text-anchor="middle" x="272.92" y="-191.4" font-family="Helvetica,sans-Serif" font-size="14.00">AIModelInvocation</text>
135
+ </g>
136
+ <!-- ResponseData&#45;&gt;LLMInvocation -->
137
+ <g id="edge13" class="edge">
138
+ <title>ResponseData-&gt;LLMInvocation</title>
139
+ <path fill="none" stroke="black" d="M95.56,-124.45C110.34,-135.69 131.13,-150.15 151.29,-159.6 165.3,-166.16 180.81,-171.76 195.92,-176.43"/>
140
+ <polygon fill="black" stroke="black" points="194.8,-179.75 205.38,-179.24 196.79,-173.04 194.8,-179.75"/>
141
+ <text text-anchor="middle" x="199.11" y="-147" font-family="Times,serif" font-size="14.00">wasGeneratedBy</text>
142
+ </g>
143
+ <!-- ResponseData&#45;&gt;AIAgent -->
144
+ <g id="edge14" class="edge">
145
+ <title>ResponseData-&gt;AIAgent</title>
146
+ <path fill="none" stroke="black" d="M122.91,-92.62C183.09,-76.09 285.53,-47.95 344.81,-31.67"/>
147
+ <polygon fill="black" stroke="black" points="345.54,-35.1 354.25,-29.07 343.68,-28.35 345.54,-35.1"/>
148
+ <text text-anchor="middle" x="308.66" y="-58.2" font-family="Times,serif" font-size="14.00">wasAttributedTo</text>
149
+ </g>
150
+ <!-- Campaign -->
151
+ <g id="node8" class="node">
152
+ <title>Campaign</title>
153
+ <polygon fill="lightblue" stroke="black" points="164.83,-657.6 85.01,-657.6 85.01,-621.6 164.83,-621.6 164.83,-657.6"/>
154
+ <text text-anchor="middle" x="124.92" y="-635.4" font-family="Helvetica,sans-Serif" font-size="14.00">Campaign</text>
155
+ </g>
156
+ <!-- Workflow -->
157
+ <g id="node9" class="node">
158
+ <title>Workflow</title>
159
+ <polygon fill="lightblue" stroke="black" points="161.7,-568.8 88.14,-568.8 88.14,-532.8 161.7,-532.8 161.7,-568.8"/>
160
+ <text text-anchor="middle" x="124.92" y="-546.6" font-family="Helvetica,sans-Serif" font-size="14.00">Workflow</text>
161
+ </g>
162
+ <!-- Campaign&#45;&gt;Workflow -->
163
+ <g id="edge1" class="edge">
164
+ <title>Campaign-&gt;Workflow</title>
165
+ <path fill="none" stroke="black" d="M124.92,-621.45C124.92,-609.76 124.92,-593.99 124.92,-580.42"/>
166
+ <polygon fill="black" stroke="black" points="128.42,-580.72 124.92,-570.72 121.42,-580.72 128.42,-580.72"/>
167
+ <text text-anchor="middle" x="158.74" y="-591" font-family="Times,serif" font-size="14.00">hadMember</text>
168
+ </g>
169
+ <!-- Workflow&#45;&gt;Task -->
170
+ <g id="edge2" class="edge">
171
+ <title>Workflow-&gt;Task</title>
172
+ <path fill="none" stroke="black" d="M162.02,-550.8C191.74,-550.8 233.27,-550.8 263.36,-550.8"/>
173
+ <polygon fill="black" stroke="black" points="263.17,-554.3 273.17,-550.8 263.17,-547.3 263.17,-554.3"/>
174
+ <text text-anchor="middle" x="218.31" y="-558" font-family="Times,serif" font-size="14.00">hadMember</text>
175
+ </g>
176
+ <!-- Workflow&#45;&gt;ToolExecution -->
177
+ <g id="edge3" class="edge">
178
+ <title>Workflow-&gt;ToolExecution</title>
179
+ <path fill="none" stroke="black" d="M118.7,-532.33C112.06,-510.84 103.9,-473.56 114.92,-444 137.13,-384.41 195.5,-336.2 234.73,-309.17"/>
180
+ <polygon fill="black" stroke="black" points="236.66,-312.09 243,-303.6 232.75,-306.28 236.66,-312.09"/>
181
+ <text text-anchor="middle" x="165.2" y="-413.4" font-family="Times,serif" font-size="14.00">hadMember</text>
182
+ </g>
183
+ <!-- Task&#45;&gt;DomainData -->
184
+ <g id="edge4" class="edge">
185
+ <title>Task-&gt;DomainData</title>
186
+ <path fill="none" stroke="black" d="M298.25,-532.41C295.09,-521.28 289.48,-507.23 279.92,-498 271.16,-489.54 260.13,-483.06 248.8,-478.13"/>
187
+ <polygon fill="black" stroke="black" points="250.37,-474.99 239.78,-474.58 247.81,-481.5 250.37,-474.99"/>
188
+ <text text-anchor="middle" x="304.12" y="-502.2" font-family="Times,serif" font-size="14.00">used</text>
189
+ </g>
190
+ <!-- ToolExecution&#45;&gt;DataObject -->
191
+ <g id="edge7" class="edge">
192
+ <title>ToolExecution-&gt;DataObject</title>
193
+ <path fill="none" stroke="black" d="M310.58,-302.78C324.57,-311.84 335.41,-323.81 327.92,-337.2 324.72,-342.91 320.17,-347.81 315.01,-351.97"/>
194
+ <polygon fill="black" stroke="black" points="313.37,-348.85 307.14,-357.42 317.35,-354.6 313.37,-348.85"/>
195
+ <text text-anchor="middle" x="343.19" y="-324.6" font-family="Times,serif" font-size="14.00">used</text>
196
+ </g>
197
+ <!-- ToolExecution&#45;&gt;LLMInvocation -->
198
+ <g id="edge16" class="edge">
199
+ <title>ToolExecution-&gt;LLMInvocation</title>
200
+ <path fill="none" stroke="black" d="M272.92,-266.25C272.92,-254.56 272.92,-238.79 272.92,-225.22"/>
201
+ <polygon fill="black" stroke="black" points="276.42,-225.52 272.92,-215.52 269.42,-225.52 276.42,-225.52"/>
202
+ <text text-anchor="middle" x="318.02" y="-235.8" font-family="Times,serif" font-size="14.00">wasInformedBy</text>
203
+ </g>
204
+ <!-- ToolExecution&#45;&gt;AIAgent -->
205
+ <g id="edge15" class="edge">
206
+ <title>ToolExecution-&gt;AIAgent</title>
207
+ <path fill="none" stroke="black" d="M313,-278.36C332.31,-273.78 354.01,-265.05 366.92,-248.4 390.69,-217.72 392.22,-101.98 391.57,-47.58"/>
208
+ <polygon fill="black" stroke="black" points="395.07,-47.81 391.41,-37.87 388.07,-47.92 395.07,-47.81"/>
209
+ <text text-anchor="middle" x="445.03" y="-147" font-family="Times,serif" font-size="14.00">wasAssociatedWith</text>
210
+ </g>
211
+ <!-- LLMInvocation&#45;&gt;Model -->
212
+ <g id="edge6" class="edge">
213
+ <title>LLMInvocation-&gt;Model</title>
214
+ <path fill="none" stroke="black" d="M288.18,-177.24C292.39,-171.84 296.69,-165.7 299.92,-159.6 303.79,-152.29 307,-143.94 309.54,-136.11"/>
215
+ <polygon fill="black" stroke="black" points="312.86,-137.22 312.37,-126.64 306.16,-135.22 312.86,-137.22"/>
216
+ <text text-anchor="middle" x="319.93" y="-147" font-family="Times,serif" font-size="14.00">used</text>
217
+ </g>
218
+ <!-- LLMInvocation&#45;&gt;Prompt -->
219
+ <g id="edge5" class="edge">
220
+ <title>LLMInvocation-&gt;Prompt</title>
221
+ <path fill="none" stroke="black" d="M267.8,-177.23C264.16,-166.65 258.55,-153.2 250.92,-142.8 247.63,-138.32 243.66,-134.03 239.51,-130.1"/>
222
+ <polygon fill="black" stroke="black" points="241.84,-127.49 232.01,-123.54 237.24,-132.76 241.84,-127.49"/>
223
+ <text text-anchor="middle" x="273.1" y="-147" font-family="Times,serif" font-size="14.00">used</text>
224
+ </g>
225
+ </g>
226
+ </svg>
@@ -0,0 +1,20 @@
1
+ # Handling Large Data
2
+
3
+ As a provenance-based tool, Flowcept leverages provenance data (typically seen as metadata) to keep track of data, including large datasets or data files, workflows, and ML models.
4
+
5
+ There are various ways to handle large data in Flowcept
6
+
7
+ ## Sending large blob data as messages
8
+
9
+ ### Sending as files
10
+
11
+ Importance of MimeType and the custom_metadata for files
12
+
13
+ ## Managing blob data
14
+
15
+ ## Managing PyTorch models
16
+
17
+
18
+
19
+
20
+