> 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/workflows/ja/gaido/developer-guide.md).

# 開発者ガイド

このセクションは、次のような人向けです **拡張する** Roboflow Workflowsを単に使って構築するだけでなく、拡張したい人向けです。ブロックの作成者、プラグインのメンテナー、そしてWorkflows Execution Engineを自分のアプリケーションに統合する人などです。

ブラウザでWorkflowを構築して実行したいだけなら、まずは [Workflow を作成](/workflows/ja/birudo/create-a-workflow.md) と [Workflowを構築する](/workflows/ja/birudo/build-a-workflow.md) 代わりにこちらから始めてください。

## Workflowsの柱

いくつかのコンポーネントが連携してWorkflowを支えています。日常的に触れるものもあれば、裏側で動くものもあります。

* **Workflows UI** — Workflowsを設計・管理するためのビジュアルエディタです。必須ではありませんが、アイデアから動作するWorkflowへ最も早く到達できる方法です。設計プロセスの最後に、CompilerとExecution Engineが利用するWorkflow Definitionを生成します。
* **Workflow Definition** — Workflows言語で書かれたプログラムとして機能する、互換性のあるJSONドキュメントです。Workflowの設計と実行を分離します。一度作成すれば、どの環境でも実行できます。次を宣言します **inputs** （画像または設定パラメータ）, **steps** （入力または他のステップの出力に接続されたブロックのインスタンス）、および **outputs** （ステップ出力を参照する名前付きフィールド）。
* **Workflowブロック** — 特定の処理を実行するモジュール式コンポーネントです。Workflow作成者にとっては、宣言された入力、設定プロパティ、出力を持つブラックボックスです。ブロックは次の単位にまとめられます **プラグイン**。これは通常のPythonライブラリです。Roboflowは独自のプラグインを提供しており、コミュニティも自分たちのものを公開できます。
* **Compiler と Execution Engine** — Definitionを計算グラフに変換して実行するシステムです。従来の言語のコンパイラと同様に、まず正しさを事前に確認し、その後は実行時に重い処理を担います。これらは [推論サーバー](https://docs.roboflow.com/deployment/self-hosted/self-hosted) および [`inference` Pythonパッケージ](https://pypi.org/project/inference/).

<figure><img src="https://media.roboflow.com/inference/add-output.gif" alt="Building a Workflow in the Roboflow editor"><figcaption></figcaption></figure>

## 基本概念

* [Workflow Definitionの構文](/workflows/ja/gaido/developer-guide/definitions.md) — JSON言語: バージョンマーカー、入力、ステップ、セレクタ、出力
* [ワークフロー実行](/workflows/ja/gaido/developer-guide/workflow-execution.md) — バッチ指向のデータ、スカラー、次元レベル、条件付き実行、そして出力の構成方法
* [Kinds](/workflows/ja/gaido/developer-guide/kinds.md) — ブロック間の接続をコンパイル時に検証可能にするWorkflowsの型システム
* [データ表現](/workflows/ja/gaido/developer-guide/data-representations.md) — 実際にブロックが受け取るPython型: `Batch`, `WorkflowImageData`, `VideoMetadata`

## 内部の仕組み

* [Workflows Compiler](/workflows/ja/gaido/developer-guide/compiler.md) — ブロックの読み込み、解析、グラフ構築、データ系譜、ステップ初期化
* [Execution Engine](/workflows/ja/gaido/developer-guide/execution-engine.md) — 実行時の入力検証、実行順序、ステップ入力の組み立て、フロー制御
* [内部Workflow](/workflows/ja/gaido/developer-guide/inner-workflows.md) — 1つのWorkflow Definitionを別のものの中に埋め込むこと
* [Execution Engineの変更履歴](/workflows/ja/gaido/developer-guide/execution-engine-changelog.md) — 各Execution Engineバージョンで何が変更されたか
* [バージョニング](/workflows/ja/gaido/developer-guide/versioning.md) — Definitions、ブロック、Engine間の互換性に関する約束

## ビルディングブロック

* [Workflowブロックを作成する](/workflows/ja/gaido/developer-guide/create-a-block.md) — 完全ガイド: マニフェスト、入力、出力、バッチ処理、フロー制御、次元
* [ブロックをプラグインにまとめる](/workflows/ja/gaido/developer-guide/block-bundling.md) — プラグイン構造、必須インターフェース、種類、初期化子、シリアライザ
* [動的Pythonブロック](/workflows/ja/gaido/developer-guide/dynamic-python-blocks.md) — Workflow Definition内でその場でブロックを定義する
* [ブロックのテスト](/workflows/ja/gaido/developer-guide/testing.md) — 単体テストと統合テストのアプローチ
* [コミュニティプラグイン](/workflows/ja/gaido/developer-guide/community-plugins.md) — コミュニティによって公開されたプラグイン

## Workflowsの運用

* [Workflows Schema API](/workflows/ja/gaido/developer-guide/schema-api.md) — Workflowの入力、出力、型ヒントをプログラムで記述する
* [Workflowのプロファイリング](/workflows/ja/gaido/developer-guide/profiling.md) — ステップの実行時間を測定し、ボトルネックを見つける
* [ベンチマーク](/workflows/ja/gaido/developer-guide/benchmarks.md) — 直接のモデル推論と比較したWorkflowのオーバーヘッド
* [動画処理](/workflows/ja/depuroi/video-processing.md) — 動画フレームやストリーム上でWorkflowsを実行する
