# Workflow をデプロイ

Workflow を4つの方法でデプロイできます:

1. 画像を [Roboflow API](https://inference.roboflow.com/workflows/modes_of_running/#http-api-request) に送信して、Workflow を使って処理します。
2. を作成します [Roboflow Dedicated Deployment](/roboflow/roboflow-jp/deploy/dedicated-deployments.md) あなた専用に用意されたインフラストラクチャ上で。
3. 次を使って、自分のハードウェア上で Workflow を実行します [Roboflow Inference](https://inference.roboflow.com/install/).
4. 次を使用します [Batch Processing](/roboflow/roboflow-jp/deploy/batch-processing.md) を使って、大量のデータをコーディングコストを抑えて効率的に処理します。

Workflow を自分のハードウェア上で実行する場合、画像と動画ファイルの両方で実行できます（通常の **webcams** および業務用の **CCTV cameras**).

オンプレミス展開を選択すると、Inference をデプロイできるあらゆるシステムで Workflows を実行できます。これには以下が含まれます:

* NVIDIA Jetson
* AWS EC2、GCP Cloud Engine、および Azure Virtual Machines
* Raspberry Pi

{% hint style="info" %}
Roboflow Enterprise のお客様は、Basler カメラで inference を実行するなど、追加の動画ストリームオプションをご利用いただけます。提供内容の詳細については、 [Roboflow の営業チームにお問い合わせください](https://roboflow.com/sales).
{% endhint %}

### Workflow をデプロイ

Workflow をデプロイするには、Workflows エディタの左上にある「Deploy」ボタンをクリックします。すべてのデプロイオプションはこのページに記載されています。

Workflows エディタ内のコードスニペットには、あらかじめ Workflows の URL と API key が入力されています。

{% hint style="info" %}
Workflows の使用制限の詳細については、 [Roboflow pricing page](https://roboflow.com/workflows).
{% endhint %}

#### 画像を処理

Roboflow API またはローカルの Inference server を使用して、単一の画像で Workflow を実行できます。

まず、Roboflow Inference SDK をインストールします:

```python
pip install inference-sdk inference-cli 
```

ローカルで実行する場合は、 [公式の Docker インストール手順](https://docs.docker.com/get-docker/) に従って、マシンに Docker をインストールし、Inference server を起動します:

```
inference server start
```

次に、新しい Python ファイルを作成し、以下のコードを追加します:

```python
from inference_sdk import InferenceHTTPClient

client = InferenceHTTPClient(
    api_url="https://serverless.roboflow.com",  # ローカル展開の場合は "http://127.0.0.1:9001"
    api_key="API_KEY"
)

result = client.run_workflow(
    workspace_name="workspace-name",
    workflow_id="workflow-id",
    images={
        "image": "YOUR_IMAGE.jpg"
    }
)

```

上記では、 `API_KEY` を Roboflow の API key に置き換えてください。 `workspace-name` と `workflow-id` を、Roboflow の workspace 名と Workflow ID に置き換えてください。

これらの値を確認するには、Roboflow Workflow を開いて「Deploy Workflow」をクリックします。次に、ページに表示されるコードスニペットから workspace 名と Workflow ID をコピーします。

ローカル実行は CPU および NVIDIA CUDA GPU デバイスで動作します。最高のパフォーマンスを得るには、NVIDIA Jetson や NVIDIA GPU を搭載したクラウドサーバーなど、GPU 対応デバイスにデプロイしてください。

#### 動画ストリーム（RTSP、Webcam）を処理

動画ストリームのフレーム上で Workflow をデプロイできます。これは webcam または RTSP ストリームでも可能です。動画ファイル上で Workflow を実行することもできます。

まず、Inference をインストールします:

```
pip install inference  # または GPU マシンでは inference-gpu
```

Inference のインストールには数分かかる場合があります。

次に、新しい Python ファイルを作成し、以下のコードを追加します:

```python
# InferencePipeline オブジェクトをインポート
from inference import InferencePipeline

def my_sink(result, video_frame):
    print(result) # 各フレームの予測に対して何か処理を行う
    

# pipeline オブジェクトを初期化
pipeline = InferencePipeline.init_with_workflow(
    api_key="API_KEY",
    workspace_name="workspace-name",
    workflow_id="workflow-id",
    video_reference=0, # 動画へのパス、RSTP ストリーム、デバイス ID（int、通常は内蔵 webcam の場合 0）、または RTSP ストリーム URL
    on_prediction=my_sink
)
pipeline.start() #pipeline を開始
pipeline.join() #pipeline スレッドの終了を待機

```

上記では、 `API_KEY` を Roboflow の API key に置き換えてください。 `workspace-name` と `workflow-id` を、Roboflow の workspace 名と Workflow ID に置き換えてください。

これらの値を確認するには、Roboflow Workflow を開いて「Deploy Workflow」をクリックします。次に、ページに表示されるコードスニペットから workspace 名と Workflow ID をコピーします。

上記のコードを実行すると、Workflow は動画または動画ストリーム上で実行されます。

#### データのバッチを処理

Roboflow Batch Processing サービスを使用すると、画像ディレクトリや動画ファイルなど、データの一括処理を効率的に行えます。この完全マネージドなソリューションでは、コーディングもローカル計算も不要です。データと Workflow を選択するだけで、あとは Roboflow に任せられます。

Batch Processing では UI、CLI、REST API のいずれの操作にも対応しています。以下では CLI コマンドを紹介します。 [すべてのオプション](https://inference.roboflow.com/workflows/batch_processing/about/#cli).

処理を実行するには、Inference CLI をインストールします:

```
pip install inference-cli
```

次に、データを取り込みます:

```
inference rf-cloud data-staging create-batch-of-images \
    --images-dir <your-images-dir-path> \
    --batch-id <your-batch-id>
```

データが読み込まれたら、処理ジョブを開始します:

```
inference rf-cloud batch-processing process-images-with-workflow \
    --workflow-id <workflow-id> \
    --batch-id <batch-id>
```

ジョブの進行状況は次の方法で表示できます:

```
inference rf-cloud batch-processing show-job-details \
    --job-id <your-job-id>  # job-id はジョブ作成時に表示されます
```

ジョブが完了したら、結果をエクスポートします:

```
inference rf-cloud data-staging export-batch \
    --target-dir <dir-to-export-result> \
    --batch-id <output-batch-of-a-job>
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.roboflow.com/roboflow/roboflow-jp/workflows/deploy-a-workflow.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
