> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/roboflow/roboflow-jp/workflows/deploy-a-workflow.md).

# 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/depuroi/dedicated-deployments.md) は、あなた専用に用意されたインフラ上で実行されます。
3. 独自のハードウェア上で Workflow を実行するには、 [Roboflow Inference](https://inference.roboflow.com/install/).
4. 使用して [Batch Processing](/roboflow/roboflow-jp/depuroi/batch-processing.md) コーディングコストをかけずに、大量のデータを効率的に処理できます。

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

オンプレミスデプロイメントを選択すると、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 %}

### Deploy a Workflow

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

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

{% hint style="info" %}
Workflows の利用制限について詳しくは、 [Roboflow の料金ページ](https://roboflow.com/workflows).
{% endhint %}

#### 画像を処理

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

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

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

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

```
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 キーに置き換えてください。さらに、 `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 をデプロイできます。これは Web カメラまたは 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 = InferencePipeline.init_with_workflow(
    api_key="API_KEY",
    workspace_name="workspace-name",
    workflow_id="workflow-id",
    video_reference=0, # 動画のパス、RSTP ストリーム、デバイス ID (int、通常は内蔵 Web カメラでは 0)、または RTSP ストリーム URL
    on_prediction=my_sink
)
pipeline.start() # パイプラインを開始する
pipeline.join() # パイプラインスレッドの終了を待つ

```

上記では、 `API_KEY` を Roboflow API キーに置き換えてください。さらに、 `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>
```
