Structure Run Events
====================

ストラクチャーを実行すると、そのストラクチャー実行に対してイベントが作成されます。イベントは、ストラクチャーランの進行状況に関するデータを報告するために使用されます。イベントには、\ ``SYSTEM``
イベントと\ ``USER`` イベントの2種類があります。

Events APIの詳細については、 :ref:`Events API docs <Gen AI Builder v2023-09-19>`  をチェックしてください。

イベントタイプ
--------------

システムイベント
^^^^^^^^^^^^^^^^

Gen AI Builder Structure Runtimeは、 Structure
Runのライフサイクルを管理します。ストラクチャーランのステータスに関するほぼリアルタイムの更新を通信するために、クラウドは\ ``SYSTEM``
イベントを発行します。

次のタイプの\ ``SYSTEM`` イベントが生成されます。

1. ``StructureRunStarting``

2. ``StructureRunRunning``

3. ``StructureRunCompleted``

4. ``StructureRunError``

StructureRunStarting
^^^^^^^^^^^^^^^^^^^^

このイベントは、構造コードがランタイムに正常にロードされたことを示します。

イベント本文の例

.. code:: json

   {
       "event_id": "12345678-1909-4900-8eca-6f7d82da9fdc",
       "timestamp": 1726096542.71688,
       "type": "StructureRunStarting",
       "payload": {
           "status": "STARTING"
       },
       "created_at": "2024-09-11T23:15:42.834783Z",
       "origin": "SYSTEM",
       "structure_run": "12345678-e125-4c38-b67f-02b82aa443ce"
   }

StructureRunRunning
^^^^^^^^^^^^^^^^^^^

このイベントは、 Structureコードが現在実行されていることを示します。

イベント本文の例

.. code:: json

   {
       "event_id": "22345678-1909-4900-8eca-6f7d82da9fdc",
       "timestamp": 1726096548.683578,
       "type": "StructureRunRunning",
       "payload": {
           "status": "RUNNING",
           "started_at": "2024-09-11T23:15:47"
       },
       "created_at": "2024-09-11T23:15:48.787162Z",
       "origin": "SYSTEM",
       "structure_run": "12345678-e125-4c38-b67f-02b82aa443ce"
   }

StructureRunCompleted
^^^^^^^^^^^^^^^^^^^^^

このイベントは、ストラクチャーコードが終了したことを示します。

イベント本文の例

.. code:: json

   {
       "event_id": "32345678-f277-4f12-939f-707804f2fdf0",
       "timestamp": 1726096554.70717,
       "type": "StructureRunCompleted",
       "payload": {
           "status": "SUCCEEDED",
           "started_at": "2024-09-11T23:15:47",
           "completed_at": "2024-09-11T23:15:50",
           "status_detail": {
               "reason": "Completed",
               "message": null,
               "exit_code": 0
           }
       },
       "created_at": "2024-09-11T23:15:54.754921Z",
       "origin": "SYSTEM",
       "structure_run": "12345678-e125-4c38-b67f-02b82aa443ce"
   }

StructureRunError
^^^^^^^^^^^^^^^^^

このイベントは、 Structure RunでGen AI
Builderランタイムからのエラーが発生したことを示します。

イベント本文の例

.. code:: json

   {
       "event_id": "42345678-f277-4f12-939f-707804f2fdf0",
       "timestamp": 1726096555.70717,
       "type": "StructureRunError",
       "payload": {
           "status": "ERROR",
           "status_detail": {
               "error": "Error message"
           }
       },
       "created_at": "2024-09-11T23:15:54.754921Z",
       "origin": "SYSTEM",
       "structure_run": "12345678-e125-4c38-b67f-02b82aa443ce"
   }

ユーザーイベント
^^^^^^^^^^^^^^^^

``USER``
イベントは、ストラクチャーコードからイベントAPIに発行されるイベントです。これらのイベントを発行するための推奨されるアプローチは、Gen
AI Builder SDKの :ref:`Gen AI Builder Event Listener Driver </edb-postgres-ai/1.3/ai-factory/gen-ai/reference/sdk/drivers/event-listener-drivers#gen-ai-builder>` を利用することです。

そのドライバーを利用するStructureコードの完全な例については、
`Managed Structure Template <https://github.com/griptape-ai/managed-structure-template/blob/main/structure.py>`_ を参照してください。

構造実行出力
^^^^^^^^^^^^

Gen AI Builderでストラクチャー実行の\ ``output``
フィールドを設定するには、\ ``FinishStructureRunEvent``
タイプの\ ``USER`` イベントを送信する必要があります。

Gen AI Builderイベントリスナードライバーと、
Structureコードでそのイベントタイプを発行する :ref:`Event Bus </edb-postgres-ai/1.3/ai-factory/gen-ai/reference/sdk/misc>` を使用することにより、クラウドはStructure
Runの出力に自動的にデータを入力します。

クライアントイベントリスナーの例
--------------------------------

Structure Runイベントをリッスンするクライアントコードの例については、
`Managed Structure Template <https://github.com/griptape-ai/managed-structure-template/blob/main/example-client/client.py>`_ のサンプルクライアントをチェックしてください。
