> 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/reference/ja/inference/inference-sdk/configuration.md).

# 設定

## 設定オプション

### APIキーの送信方法

この `api_key_transport` のフィールド `InferenceConfiguration` は、クライアントがAPIキーをサーバーに送信するために使用する経路を制御します。キーを次の形式で送信する場合: `Authorization: Bearer` ヘッダーにすると、URLやサーバーログに含まれず、推奨される方法です:

```python
from inference_sdk import InferenceHTTPClient, InferenceConfiguration

client = InferenceHTTPClient(
    api_url="https://serverless.roboflow.com",
    api_key="ROBOFLOW_API_KEY",
).configure(InferenceConfiguration(api_key_transport="header"))
```

3つのモードがあります:

<table data-search="false"><thead><tr><th>モード</th><th>動作</th><th>サーバー互換性</th></tr></thead><tbody><tr><td><code>legacy</code></td><td>キーは <code>api_key</code> クエリパラメータまたは JSON 本文フィールドとして送信されます。既定では、明示的に選択しない場合、クライアントはこの動作を行い、1回だけ警告を出します。</td><td>すべてのサーバーバージョンで対応。</td></tr><tr><td><code>both</code></td><td>従来の経路はそのままで、さらに <code>Authorization: Bearer</code> header</td><td>すべてのサーバーバージョンで対応。</td></tr><tr><td><code>header</code></td><td>キーは <code>Authorization: Bearer</code> のみで送信されます。URLやリクエスト本文にキーは含まれません。推奨。</td><td>Inference 1.5.0 以降のリリース。古いサーバーに対しては、リクエストはキーなしで届きます。</td></tr></tbody></table>

使用してください `header` 新しいコードでは。ホスト型の Roboflow API はこれを受け入れ、キーが URL に含まれることもありません。呼び出し先の一部のサーバーがまだ Inference 1.5.0 より古いリリースを使っている場合、または途中のプロキシが `Authorization` ヘッダーを取り除く場合は、 `both` 移行期間中はこれを使ってください: すべてのサーバーバージョンで動作します。

`configure(...)` は設定オブジェクト全体を置き換えます。後で他のオプションを設定する場合は、送信方法を同じ `InferenceConfiguration`に含めてください。そうしないとクライアントは次の設定に戻ります: `legacy`:

```python
client.configure(
    InferenceConfiguration(
        confidence_threshold=0.8,
        api_key_transport="header",
    )
)
```

### コンテキストマネージャーでの設定

メソッド `use_configuration(...)` および `use_model(...)` はコンテキストマネージャー内で使うように設計されています。 **コンテキストマネージャーを抜けると、以前の設定値が復元されます。**

```python
from inference_sdk import InferenceHTTPClient, InferenceConfiguration

image_url = "https://source.roboflow.com/pwYAXv9BTpqLyFfgQoPZ/u48G0UpWfk8giSw7wrU8/original.jpg"

custom_configuration = InferenceConfiguration(confidence_threshold=0.8)
# ROBOFLOW_API_KEY をあなたの Roboflow API キーに置き換えてください
CLIENT = InferenceHTTPClient(
    api_url="http://localhost:9001",
    api_key="ROBOFLOW_API_KEY"
)

with CLIENT.use_configuration(custom_configuration):
    _ = CLIENT.infer(image_url, model_id="soccer-players-5fuqs/1")

with CLIENT.use_model("soccer-players-5fuqs/1"):
    _ = CLIENT.infer(image_url)

# コンテキストマネージャーを抜けた後 - 変更は元に戻り、`model_id` は引き続き必要です
_ = CLIENT.infer(image_url, model_id="soccer-players-5fuqs/1")
```

ご覧のとおり、 `model_id` は、デフォルトモデルが設定されていない場合にのみ予測メソッドで必要です。

{% hint style="info" %}
モデルIDは次の文字列で構成されます `<project_id>/<version_id>`。参照: [Workspace ID と Project ID](/reference/ja/ren-zheng/authentication/workspace-and-project-ids.md) これらの情報を確認してください。
{% endhint %}

### 一度設定し、次の変更までそれを使い続ける

メソッド `configure(...)` および `select_model(...)` はクライアントの状態を変更し、その変更は次の変更まで保持されます。

```python
from inference_sdk import InferenceHTTPClient, InferenceConfiguration

image_url = "https://source.roboflow.com/pwYAXv9BTpqLyFfgQoPZ/u48G0UpWfk8giSw7wrU8/original.jpg"

custom_configuration = InferenceConfiguration(confidence_threshold=0.8)
# ROBOFLOW_API_KEY をあなたの Roboflow API キーに置き換えてください
CLIENT = InferenceHTTPClient(
    api_url="http://localhost:9001",
    api_key="ROBOFLOW_API_KEY"
)

CLIENT.configure(custom_configuration)
CLIENT.infer(image_url, model_id="soccer-players-5fuqs/1")

# カスタム設定はそのまま維持されます
CLIENT.select_model(model_id="soccer-players-5fuqs/1")
_ = CLIENT.infer(image_url)

# カスタム設定と選択済みモデルもそのまま維持されます
_ = CLIENT.infer(image_url)
```

次の方法でも初期化できます `連鎖` モード:

```python
from inference_sdk import InferenceHTTPClient, InferenceConfiguration

# ROBOFLOW_API_KEY をあなたの Roboflow API キーに置き換えてください
CLIENT = InferenceHTTPClient(api_url="http://localhost:9001", api_key="ROBOFLOW_API_KEY") \
    .select_model("soccer-players-5fuqs/1")
```

### 上書き `model_id` 特定の呼び出しで

`model_id` 特定の呼び出しで上書きできます:

```python
from inference_sdk import InferenceHTTPClient

image_url = "https://source.roboflow.com/pwYAXv9BTpqLyFfgQoPZ/u48G0UpWfk8giSw7wrU8/original.jpg"

# ROBOFLOW_API_KEY をあなたの Roboflow API キーに置き換えてください
CLIENT = InferenceHTTPClient(api_url="http://localhost:9001", api_key="ROBOFLOW_API_KEY") \
    .select_model("soccer-players-5fuqs/1")

_ = CLIENT.infer(image_url, model_id="another-model/1")
```

## クライアント設定の詳細

`InferenceHTTPClient` は次を提供します: `InferenceConfiguration` 完全な設定を保持する dataclass。

```python
from inference_sdk import InferenceConfiguration
```

この設定のフィールドを上書きすると、クライアントの動作（およびモデルを提供する API の動作）が変わります。特定のフィールドは特定のコンテキストで使われます。特に:

### 分類モデル

* `visualize_predictions`：可視化の有効/無効を切り替えるフラグ
* `confidence_threshold` として `confidence`
* `stroke_width`：可視化時の線幅
* `disable_preproc_auto_orientation`, `disable_preproc_contrast`, `disable_preproc_grayscale`, `disable_preproc_static_crop` サーバー側の前処理を変更するため
* `disable_active_learning` 次を防ぐため [Active Learning](https://docs.roboflow.com/deployment/monitoring-and-analytics/active-learning) 機能がデータポイントを登録するのを防ぎます（たとえばモデルのテスト時に便利です）
* `active_learning_target_dataset` - 特定のモデル（たとえば `project_a/1`）で推論し、別のプロジェクトにデータを保存したい場合 `project_b`、後者はこのパラメータで指定する必要があります。 **異なる種類のモデルを `project_a` および `project_b`で混在して使用することはできません。その場合、データは登録されません。**
* `source`：推論呼び出しに「source」属性を設定する任意の文字列。 [モデルモニタリング](https://docs.roboflow.com/deployment/monitoring-and-analytics/model-monitoring)を使用している場合、これは推論リクエストとともにログに記録されるため、特定のソースからの推論リクエストを絞り込んだり検索したりできます。たとえば、どのアプリケーション、システム、またはデプロイがリクエストを送信しているかを特定できます。
* `source_info`：推論呼び出しに追加の「source\_info」属性を設定する任意の文字列。たとえば、アプリ内のサブコンポーネントを識別するために使います。

### 物体検出モデル

* `visualize_predictions`：可視化の有効/無効を切り替えるフラグ
* `visualize_labels`：可視化が有効な場合にラベル可視化の有効/無効を切り替えるフラグ
* `confidence_threshold` として `confidence`
* `class_filter` クラスのリストを除外するため
* `class_agnostic_nms`：NMS をクラス非依存にするかどうかを制御するフラグ
* `fix_batch_size`
* `iou_threshold`：NMS の IoU 閾値を指定するため
* `stroke_width`：可視化時の線幅
* `max_detections`：モデルから返す検出数の上限
* `max_candidates`：モデルの後処理で使用する候補数の上限
* `disable_preproc_auto_orientation`, `disable_preproc_contrast`, `disable_preproc_grayscale`, `disable_preproc_static_crop` サーバー側の前処理を変更するため
* `disable_active_learning`, `active_learning_target_dataset`, `source`, `source_info` — 上述のとおり

### キーポイント検出モデル

* `visualize_predictions`：可視化の有効/無効を切り替えるフラグ
* `visualize_labels`：可視化が有効な場合にラベル可視化の有効/無効を切り替えるフラグ
* `confidence_threshold` として `confidence`
* `keypoint_confidence_threshold` (次の `keypoint_confidence`) のように、モデルの信頼度に基づいて検出されたキーポイントを絞り込むため
* `class_filter` 物体クラスのリストを除外するため
* `class_agnostic_nms`：NMS をクラス非依存にするかどうかを制御するフラグ
* `fix_batch_size`
* `iou_threshold`：NMS の IoU 閾値を指定するため
* `stroke_width`：可視化時の線幅
* `max_detections`：モデルから返す検出数の上限
* `max_candidates`：モデルの後処理で使用する候補数の上限
* `disable_preproc_auto_orientation`, `disable_preproc_contrast`, `disable_preproc_grayscale`, `disable_preproc_static_crop` サーバー側の前処理を変更するため
* `disable_active_learning`, `active_learning_target_dataset`, `source`, `source_info` — 上述のとおり

### インスタンスセグメンテーションモデル

* `visualize_predictions`：可視化の有効/無効を切り替えるフラグ
* `visualize_labels`：可視化が有効な場合にラベル可視化の有効/無効を切り替えるフラグ
* `confidence_threshold` として `confidence`
* `class_filter` クラスのリストを除外するため
* `class_agnostic_nms`：NMS をクラス非依存にするかどうかを制御するフラグ
* `fix_batch_size`
* `iou_threshold`：NMS の IoU 閾値を指定するため
* `stroke_width`：可視化時の線幅
* `max_detections`：モデルから返す検出数の上限
* `max_candidates`：モデルの後処理で使用する候補数の上限
* `disable_preproc_auto_orientation`, `disable_preproc_contrast`, `disable_preproc_grayscale`, `disable_preproc_static_crop` サーバー側の前処理を変更するため
* `mask_decode_mode`
* `tradeoff_factor`
* `disable_active_learning`, `active_learning_target_dataset`, `source`, `source_info` — 上述のとおり

### クライアントの設定

* `output_visualisation_format`：次のいずれか `VisualisationResponseFormat.BASE64`, `VisualisationResponseFormat.NUMPY`, `VisualisationResponseFormat.PILLOW`。サーバー側の可視化が有効な場合、出力に使用する形式を選択できます。
* `client_downsizing_disabled`：次に設定 `False` クライアント側での縮小処理を行いたい場合。既定値 `True`。クライアント側のスケーリングは、推論用入力を縦横比を保ったまま縮小するだけで、ネット接続をより効率的に使うためのものです（その代わり画像の加工／変換が発生します）。モデルの入力サイズ情報は目標サイズの決定に使われ、利用できない場合は `default_max_input_size` が使用されます。
* `max_concurrent_requests`：開始できる同時リクエスト数の上限
* `max_batch_size`：1つのリクエストに投入できる要素数の上限
* `workflow_run_retries_enabled`：Workflows 実行中の一時的なエラーを再試行するかどうかを決めるフラグ。既定値は `true` であり、既定値は環境変数 `WORKFLOW_RUN_RETRIES_ENABLED`.

### Workflows 実行の設定

* `profiling_directory`：Workflows プロファイラのトレースを保存する場所を指定します。既定では `./inference_profiling` ディレクトリです。
