モデルのレベルと新モデルを照会し、組織内での表示範囲をグループ単位で管理します。
モデルのカタログは Qoder が一元管理しています。モデル API では、各シナリオのレベルと新モデルの照会、組織内での表示範囲のグループ単位での設定、今後リリースされるモデルのデフォルト表示設定を行えます。
呼び出す前に API キーの取得を完了し、OpenAPI 共通仕様を確認してください。
各レベルと新モデルには
ユーザーがリスト内のいずれかのグループに属していれば、リストに該当するとみなされます。
エントリには
サーバーはまずバッチ全体を検証し、いずれかのエントリが失敗すると
組織で一度も設定していない場合、
成功時は
この値を変更しても、リリース済みの対象には遡って反映されず、既存のポリシーも上書きされません。
エラーは OpenAPI 共通仕様で説明する標準レスポンス形式を使用します。ただし、
レート制限(
対象プラン:Enterprise。
前提条件
Authorization: Bearer <api_key>を送信します。Organization API キーのみ利用でき、個人の認証情報やサービスアカウントの認証情報は利用できません。- JSON リクエストボディがある場合は
Content-Type: application/jsonを送信します。 - API キーに紐づく組織を
organization_idに指定します。 groupIdsにはグループ ID を指定します。手動管理グループと SCIM グループのどちらも利用できます。
主な動作
- モデルはシナリオ(
scenarioType)ごとに構成されます:general(汎用コーディング)、experts(Experts)、qoderwork(QoderWork)。各シナリオには、表示範囲を個別に設定できる 2 種類の対象があります:レベル(level、例:auto、ultimate)と新モデル(modelKey)です。 - 管理できるレベルと新モデルは、モデル一覧が返す内容が基準です。リージョンやモデルカタログのリリースによって変わるため、
levelやmodelKeyをハードコードしないでください。 - 組織で一度も設定していない対象は
allとして扱われます。ただし、新モデルのデフォルト表示をオフにした後に初めてリリースされた対象は除きます。詳しくは新モデルのデフォルト表示設定の更新を参照してください。 - グループを削除すると、そのグループはすべてのリストから除外されますが、
scopeは変わりません。リストが空になると、groupの対象は組織全体に非表示、exclude_groupの対象は組織全体に表示されます。このとき照会結果には、元のscopeと空のgroupIdsが返ります。 - この API が返すのは組織で設定したポリシーであり、特定のユーザーに最終的に表示されるモデルではありません。
表示範囲
各レベルと新モデルには scope があります。ユーザーがモデル一覧をリクエストすると、サーバーはユーザーの所属グループに基づいて判定します:
scope | groupIds | リスト内グループのメンバー | その他のメンバー(どのグループにも属さないメンバーを含む) |
|---|---|---|---|
all | 空であること | 表示 | 表示 |
group | 1 件以上 | 表示 | 非表示 |
exclude_group | 1 件以上 | 非表示 | 表示 |
none | 空であること | 非表示 | 非表示 |
データモデル
Scenario
| フィールド | 型 | 説明 |
|---|---|---|
scenarioType | string | シナリオの種類 |
levels | ModelPolicy 配列 | カタログ順のレベル一覧。レベルがない場合は [] |
newModels | ModelPolicy 配列 | 新モデル一覧。新モデルがない場合は [] |
ModelPolicy
| フィールド | 型 | 説明 |
|---|---|---|
level | string | レベルの識別子。levels のエントリにのみ含まれます |
modelKey | string | 新モデルの識別子。newModels のエントリにのみ含まれます |
displayName | string | 表示名。表示専用で、クライアントのモデル一覧の名称と異なる場合があります |
scope | string | 現在の表示範囲:all、group、exclude_group、none のいずれか |
groupIds | string 配列 | リスト内のグループ ID。順序は保証されません。all、none の場合は [] |
scenarioType が含まれません。シナリオは所属する Scenario で判断します。
API リファレンス
モデル一覧
GET /v1/organizations/{organization_id}/official-models
| クエリパラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
scenarioType | string | いいえ | 指定したシナリオのみ返します:general、experts、qoderwork のいずれか。省略するとすべてのシナリオを返します |
成功レスポンス(200 OK)
scenarioType を省略した場合、scenarios は常に general、experts、qoderwork の順で 3 件返ります。
scenarioType の値が無効な場合は 400 が返りますが、レスポンスボディは {"error": "invalid scenarioType: must be one of general/experts/qoderwork"} で、requestId と code を含みません。このエラーは HTTP ステータスコードで判定してください。
モデルポリシーの一括更新
PUT /v1/organizations/{organization_id}/official-models/policy
リクエストに含まれるレベルまたは新モデルの表示範囲を更新します。含まれない対象は変更されません。含まれる各対象の scope とリストは、リクエストの内容で全体が置き換えられます。
リクエストボディ
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
policies | object 配列 | はい | 1~100 件 |
policies[].scenarioType | string | はい | general、experts、qoderwork のいずれか |
policies[].level | string | 条件 | レベルの識別子。modelKey とどちらか一方を指定します |
policies[].modelKey | string | 条件 | 新モデルの識別子。level とどちらか一方を指定します |
policies[].scope | string | はい | all、group、exclude_group、none のいずれか |
policies[].groupIds | string 配列 | 条件 | group、exclude_group の場合は 1 件以上。all、none の場合は省略するか [] を指定 |
levelまたはmodelKeyは、モデル一覧が返す該当シナリオに存在する必要があります。- 同じリクエスト内で同じ対象を重複して更新することはできません。
- 文字列フィールドは前後の空白が除去されます。
groupIdsは空文字列を除外し、重複を除去してから検証されます。各グループは現在の組織に属している必要があります。 - 各エントリが受け付けるのは上表の 5 フィールドのみです。一覧取得のレスポンスからエントリをコピーする場合は、
displayNameを削除し、scenarioTypeを追加してください。
200 OK を返します。レスポンスの policies はリクエストと同じ順序で、各エントリには scenarioType、level または modelKey、scope、重複除去後の groupIds が含まれ、displayName は含まれません。
400 BadRequest を返し、何も書き込みません。検証後の書き込みは単一のトランザクションではありません。5xx が返った場合やリクエストがタイムアウトした場合、一部の対象がすでに反映されている可能性があります。この API は対象ごとに全体を置き換えるため、同じリクエストを再送しても結果は同じです。再試行の前にモデル一覧で現在の状態を確認してください。
新モデルのデフォルト表示設定の取得
GET /v1/organizations/{organization_id}/official-models/new-model-default
成功レスポンス(200 OK)
defaultVisible は true です。
新モデルのデフォルト表示設定の更新
PUT /v1/organizations/{organization_id}/official-models/new-model-default
今後リリースされるレベルと新モデルを、組織に対してデフォルトで表示するかどうかを設定します。
リクエストボディ
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
defaultVisible | boolean | はい | 新しくリリースされる対象をデフォルトで表示するかどうか |
200 OK と設定後の値を返します。構造は新モデルのデフォルト表示設定の取得と同じです。
プラットフォームはモデルカタログをリリースするたびにこの値を読み取り、そのリリースで初めて登場するレベルと新モデルにのみ適用します:
defaultVisible | 新しくリリースされる対象の扱い |
|---|---|
true | ポリシーを書き込まず、all として組織全体に表示 |
false | 組織に対して scope: "none" を書き込み、組織全体に非表示 |
false から true に戻した後も、以前 none が書き込まれた対象は非表示のままです。モデルポリシーの一括更新で明示的に変更してください。
エラー
エラーは OpenAPI 共通仕様で説明する標準レスポンス形式を使用します。ただし、scenarioType パラメーターのエラーは例外です。モデル一覧を参照してください。
| HTTP ステータス | エラーコード | 主な原因 |
|---|---|---|
| 400 | BadRequest | 不正なリクエストボディ、シナリオ・レベル・新モデルが存在しない、scope と groupIds が一致しない、グループが現在の組織に属さない、対象の重複 |
| 401 | Unauthorized | API キーがない、無効、期限切れ、または失効している |
| 403 | Forbidden | API キーが対象組織に属していない、または Organization API キーではない |
| 403 | OrganizationPlanCapabilityForbidden | 組織でモデルポリシー機能が有効でない |
| 404 | NotFound | リクエストパスが存在しない |
429)とサーバーエラー(5xx)は、OpenAPI 共通仕様に従ってバックオフしながら再試行してください。