mcpField
V
venice-models

venice-models

github.com/veniceai開発160143 回インストール5 日前に更新
リポジトリ

venice-models について

venice-modelsは、Venice APIで利用できるモデルを調べるスキルです。モデルの選定やリクエストの検証を行う開発者向けに、機能、制約、価格、特性、互換エイリアスを確認できます。

主な機能

  1. 01モダリティや種類別にモデルを一覧
  2. 02機能と制約を確認
  3. 03モデル価格を確認
  4. 04モデル特性をIDに解決
  5. 05旧IDをVenice IDに対応付け

活用シーン

  1. 01必要な機能に応じてモデルを選択
  2. 02制約に沿ってリクエストパラメーターを検証
  3. 03モデルの費用を見積もる
  4. 04特性や旧モデルのエイリアスを解決

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/veniceai/skills --skill venice-models

インストール後、Claude Code で/venice-modelsを入力して読み込まれたか確認します。

詳細

Venice モデル

モデルを検索するための読み取り専用エンドポイントが3つあります。すべて GET で、すべて公開されています。

エンドポイント戻り値
/modelsmodel_spec(機能、制約、料金)を含むモデルカタログ。
/models/traits特性 → モデル ID のマップ(例:default、default_reasoning、highest_quality)。
/models/compatibility_mapping旧式またはサードパーティ製のモデル ID → Venice モデル ID のエイリアス。

認証は任意です。 これらのルートに API キーは不要なので、通常の curl で利用できます。Authorization: Bearer $VENICE_API_KEY を送信すると、結果は呼び出し元に合わせて調整されます。キーの modelPrivacy 設定に基づいて一覧が絞り込まれ、ベータフラグが有効なアカウントにはベータモデルも表示され、パートナーアカウントには個別に合意した料金が表示されます。無効なキーは拒否されず、公開ビューが返されます。

?type= の値(省略時は text):

値/models/models/traits/models/compatibility_mapping
text、image、video、music、tts、asr、embedding、upscale、inpaint、decisionはいはいはい
all(すべてのタイプ)はいはい400
code(capabilities.optimizedForCode: true のテキストモデル)はいはい400

それ以外の値を指定すると、400 { "error": "Invalid request parameters", "details": …, "issues": … } が返されます。

music には、長尺音声(楽曲、効果音、ElevenLabs のナレーションモデル)とあらゆるボイスチェンジャーモデルが含まれます。decision には、POST /decisions で使用される型付き判定モデルが一覧表示されます(現時点では jev-latest。betaModel: true のフラグが付いています)。venice-decisions を参照してください。

使用する場面

  • 機能(ビジョン、推論、関数呼び出し、E2EE、X 検索、複数画像など)に基づいて、実行時にモデルを選択する必要がある場合。
  • モデルの constraints(プロンプトの長さ、アスペクト比、解像度、ステップ数、長さ)に照らしてリクエストを検証する必要がある場合。
  • コスト見積もりの作成に必要な、100万トークンあたり/画像あたり/秒あたり/100万文字あたりの現在の料金を確認する場合。
  • 特性(default、default_reasoning、highest_quality)または旧式のエイリアス(gpt-4o)を、具体的な Venice モデル ID に解決する場合。

GET /models

curl "https://api.venice.ai/api/v1/models?type=text"
{
  "object": "list",
  "type": "text",
  "data": [
    {
      "id": "zai-org-glm-5-2",
      "object": "model",
      "owned_by": "venice.ai",
      "type": "text",
      "created": 1781568000,
      "context_length": 1000000,
      "model_spec": {
        "name": "GLM 5.2",
        "description": "GLM-5.2 is the next-generation large language model…",
        "availableContextTokens": 1000000,
        "maxCompletionTokens": 131072,
        "privacy": "private",
        "modelSource": "https://huggingface.co/zai-org/GLM-5.2",
        "offline": false,
        "traits": ["default", "function_calling_default"],
        "capabilities": { "supportsReasoning": true, "reasoningEffortOptions": ["none", "high", "max"], "…": "…" },
        "pricing": {
          "input":       { "usd": 1.4,  "diem": 1.4 },
          "cache_input": { "usd": 0.26, "diem": 0.26 },
          "output":      { "usd": 4.4,  "diem": 4.4 }
        }
      }
    }
  ]
}
トップレベルの ModelResponse フィールド
フィールド説明
idmodel として送信するモデル ID。
object / owned_by常に "model" / "venice.ai" です。
type上記10種類のモデルタイプのいずれか。
createdUnix 秒単位の、Venice API でのリリース日。
context_lengthテキストモデルのみ。model_spec.availableContextTokens を OpenAI 互換形式で表した値です。
discount_to_user再販業者専用(0 < x < 1)。契約の対象となる再販パートナーにのみ返され、他の呼び出し元では省略されます。存在しない場合は割引なしとして扱ってください。
model_spec以下のすべての情報。
model_spec - 共通フィールド
フィールド用途
name、description、modelSource表示名、概要、上流の URL(description / modelSource は省略される場合があります)。
privacyprivate(データを一切保持しない)または anonymized(第三者プロバイダーを利用し、ユーザーの身元とは紐付けられません)。
offlinetrue ⇒ リクエストは 503「The model is temporarily offline」を返します。スキップしてください。
traitsこのモデルが現在持つ特性名([] の場合もあります)。
uncensoredVenice が検閲なしと分類するモデル(すべてのモダリティ)の場合にのみ存在し、値は true です。それ以外では省略されます。false にはなりません。上流プロバイダーがフィルタリングする場合はあります。
betaModelモデルはベータ版のステータスです(引き続き呼び出し可能です)。
betaモデルはベータアクセスアカウントに限定されています。そのようなアカウントに返されるリストにのみ表示されます。
regionRestrictionsモデルがブロックされている国のコードです。OpenAPI の説明には「利用可能となることを想定」とありますが、リストされた国からのリクエストは拒否されます。そのようなリクエストには 403「The specified model is unavailable in …」が返されます。制限のないモデルでは省略されます。
deprecation{ autoRemap, date, removesAt, replacementModelId?, startsAt? } - 提供終了が予定されている場合にのみ存在します。モデルは removesAt に /models から削除されます。autoRemap: true の場合、Venice はエラーを返す代わりに、この ID 宛てのリクエストを replacementModelId にリマップすることがあります。
model_setsテキスト、画像、動画のみが対象です。venice_recommendations、featured、動画用の audio、uncensored、high_resolution、fast などのキュレーションタグです(ライブで提供されますが、OpenAPI スキーマでは宣言されていません)。
model_spec.capabilities - テキストモデル
フラグ意味
optimizedForCodeコーディングタスク向けに調整されています(?type=code に使用されます)。
quantizationfp4 / fp8 / fp16 / bf16 / int8 / int4 / not-available。
supportsFunctionCallingtools を使用できます。
supportsResponseSchemaresponse_format: { type: "json_schema" } に対応します。
supportsReasoningモデルは推論を出力します。
supportsReasoningEffortreasoning_effort / reasoning.effort に対応します。true の場合は、reasoningEffortOptions(none、minimal、low、medium、high、xhigh、max の一部。none は推論を無効にできることを意味します)と defaultReasoningEffort も含まれます。
supportsVisionimage_url パーツを受け付けます。
supportsMultipleImages + maxImages1 回のリクエストで複数の画像を使用できます。maxImages はモデルが公表している上限です。Chat では、すべてのモデルについてメッセージごとに最大 10 枚までに制限されます。
supportsVideoInput + maxVideosvideo_url パーツを受け付けます。一部のモデルでは maxVideos も含まれます。
supportsAudioInputinput_audio パーツを受け付けます。
supportsWebSearchvenice_parameters.enable_web_search - 現在、すべてのテキストモデルで true です。
supportsXSearchvenice_parameters.enable_x_search による xAI ネイティブのウェブ検索および X 検索に対応します。
supportsLogProbslogprobs / top_logprobs に対応します。
supportsTeeAttestationTEE で実行されます。GET /tee/attestation / /tee/signature で検証してください。
supportsE2EEエンドツーエンド暗号化推論に対応します(TEE が必要です)。
model_spec.constraints とタイプ固有のフィールド
  • テキスト - constraints は省略可能です(設定されているモデルはごく少数です):temperature.default、top_p.default、省略可能な {frequency,presence,repetition}_penalty.default。
  • 画像 - constraints:promptCharacterLimit、widthHeightDivisor、steps.{default,max}、省略可能な aspectRatios[] と defaultAspectRatio、省略可能な resolutions[] と defaultResolution、省略可能な qualities[] と defaultQuality(quality を受け付けるモデルの場合)、省略可能な maxStyleReferences と supportsStyleReferenceStrength。これらに加えて、supportsStyleReferences、および supportsWebSearch と supportsOptimizePromptThinking(ライブ配信されますが、OpenAPI スキーマには含まれません)。
  • インペイント/編集 - constraints:aspectRatios[]、promptCharacterLimit、combineImages、省略可能な maxInputImages、singleImageAspectRatio(false の場合、単一画像の編集では入力画像の寸法が維持され、aspect_ratio は無視されます)、省略可能な resolutions[]/defaultResolution、qualities[]/defaultQuality。これらに加えて、supportsOptimizePromptThinking。
  • 動画 - constraints:model_type(text-to-video/image-to-video/video)、aspect_ratios[]、resolutions[]、durations[](例:"5s"。ほとんどのアップスケールモデルと動画間変換モデルでは "Auto" が指定され、これはソースの長さを意味します。その場合は duration を省略してください)、audio、audio_configurable、audio_input、per_reference_audio、video_input、省略可能な prompt_character_limit(デフォルトは 2500)、省略可能な reference_image_min_short_side_pixels、reference_image_min_aspect_ratio、reference_image_max_aspect_ratio、およびエンハンスメントモデルにのみ含まれる topaz ブロック(models、sliders、selects、no_upscale_models、h264_output、prompt)。audio_input … reference_image_* キーはライブ配信されていますが、OpenAPI スキーマには定義されていません。
  • TTS(model_spec のトップレベル) - voices[]、default_format、supported_formats[](このリストにない形式を明示的に指定すると拒否されます)、supports_custom_voice_id、および音声クローニングを利用できるモデルの voice_cloning { mode: "zero_shot" | "persistent", accepted_formats[], min_sample_seconds, retention_days }(POST /audio/voices と併用してください。詳しくは venice-audio-speech を参照してください)。prompt/temperature/top_p の対応状況など、モデルごとの切り替え項目はここでは公開されません。対応状況の一覧として、venice-audio-speech のモデル別テーブルを使用してください(公開されているスキーマの説明は不完全です)。
  • 音楽/音声生成(トップレベル) - supports_lyrics、lyrics_required、supports_force_instrumental、supports_lyrics_optimizer(ライブ配信されますが、OpenAPI スキーマには含まれません)、supports_loop、supports_custom_voice_id、supports_language_code、supports_speed、supported_formats[]、default_format、prompt_character_limit、min_prompt_length、省略可能な lyrics_character_limit、duration_options[]、min_duration/max_duration/default_duration、voices[]/default_voice、default_speed/min_speed/max_speed。
  • ボイスチェンジャー(voice_changer: true の音楽モデル) - supports_background_noise_removal、supports_seed、accepted_audio_formats[]、max_source_audio_duration_seconds が追加されます。これらは /audio/queue ではなく /audio/voice-changer/* で実行されます。詳しくは venice-audio-voice-changer を参照してください。現在、ボイスチェンジャーモデルは公開リストにありません。利用を前提とする前に、?type=music で voice_changer: true のモデルを確認してください。
  • 埋め込み(トップレベル) - embeddingDimensions、maxInputTokens、supportsCustomDimensions(true の場合にのみ存在します)。
  • 判定(トップレベル) - maxStateTokens(状態と最長の質問)、maxTotalTokens(状態とすべての質問)。
  • ASR/アップスケール - 共通フィールドと pricing 以外に追加フィールドはありません。
model_spec.pricing - タイプ別

各価格は { usd, diem } です。現在、diem は常に usd と同額です。価格には、呼び出し元アカウントで有効なプロモーション割引がすでに反映されています(一部のプロモーションはティアによって適用条件が異なるため、匿名ユーザーと Pro ユーザーでは表示される金額が異なる場合があります)。請求に使用するものと同じ認証情報で価格を確認してください。

  • テキスト/埋め込み/判定 - 100 万トークンあたりの input と output、任意の cache_input(キャッシュ読み取り)、cache_write(キャッシュ作成。例:Anthropic)、および extended { context_token_threshold, input, output, cache_input?, cache_write? }。入力トークン数がしきい値を超えると、リクエスト全体に拡張料金が適用されます。
  • 画像 - 画像ごとの固定料金である generation、または resolutions.<1K|2K|4K>。任意の quality.<resolution>.<low|medium|high>。常に upscale.{2x,4x} ブロックが含まれます(共通のアップスケール料金であり、このモデルがアップスケールに対応していることを示すものではありません。また、プロモーション割引の対象外です)。
  • アップスケール(upscaler) - 画像と同じ形式で、generation と upscale.{2x,4x} を使用します。
  • インペイント/編集 - 編集ごとの inpaint、任意の resolutions.*、任意の inputImages { included, additional }(included を超える入力画像ごとの追加料金)、任意の quality.*。
  • 動画 - /models には pricing がありません。POST /video/quote を使用してください(venice-video を参照)。
  • 音楽 - generation(ジョブごと)、durations.<ceiling_seconds> { usd, diem, min_seconds, max_seconds }、per_second、per_thousand_characters のいずれか1つだけです。正確な価格は POST /audio/quote で確認してください。
  • TTS - 100 万入力文字あたりの input。
  • ASR - per_audio_second。

暗号資産 RPC の料金は /models にありません。venice-crypto-rpc を参照してください。

GET /models/traits

curl "https://api.venice.ai/api/v1/models/traits?type=text"
{
  "object": "list",
  "type": "text",
  "data": {
    "default": "zai-org-glm-5-2",
    "function_calling_default": "zai-org-glm-5-2",
    "default_reasoning": "kimi-k3",
    "default_code": "deepseek-v4-pro-0813",
    "default_vision": "qwen-3-8-27b",
    "most_intelligent": "grok-4-7",
    "most_uncensored": "venice-uncensored-1-2"
  }
}

使用可能な trait キー:default、fastest、most_uncensored、eliza-default(任意のタイプ)、default_code、default_reasoning、default_vision、function_calling_default、most_intelligent(テキスト)、highest_quality(画像)。あるキーは、それを保持するモデルが存在する間だけ表示されます。現在、テキストでは fastest に割り当てられたモデルはありません。現在、空でないマップを返すのは text と image(およびそれらを元に作成された all/code フィルター)だけです。?type=all はすべてのタイプを1つのマップに統合するため、複数のタイプで共有されるキーは競合します。たとえば、ここでの default は画像モデルに解決されます。上記の値はスナップショットです。実行時に解決してください。

trait 名を model に直接指定することもできます(例:"model": "default_reasoning")。Venice はリクエストごとに解決します。

GET /models/compatibility_mapping

curl "https://api.venice.ai/api/v1/models/compatibility_mapping?type=text"
{
  "object": "list",
  "type": "text",
  "data": {
    "gpt-4o": "llama-3.3-70b",
    "gpt-4.1": "qwen3-235b-a22b-instruct-2507",
    "claude-3-5-sonnet-20241022": "llama-3.3-70b",
    "qwen3-235b": "qwen3-235b-a22b-thinking-2507"
  }
}

キーは旧式の OpenAI/Anthropic/以前の Venice の ID で、値はそれぞれが解決される Venice モデルです。現在、?type=embedding は text-embedding-ada-002 → text-embedding-bge-m3 にマッピングされます。それ以外のタイプは空です。trait と同様に、エイリアスを model に直接指定できます。古い OpenAI ID をハードコードしているコードの移行に便利ですが、マッピングは ID のみを基準としているため、移行先の機能を確認してください。

よくあるパターン

実行時にビジョンモデルと推論モデルを選択する
const base = 'https://api.venice.ai/api/v1'
const list = await fetch(`${base}/models?type=text`).then(r => r.json())
const match = list.data.find((m: any) =>
  m.model_spec.capabilities.supportsVision &&
  m.model_spec.capabilities.supportsReasoning &&
  !m.model_spec.offline &&
  !m.model_spec.deprecation
)
送信前に画像リクエストを検証する
const spec = (await fetch(`${base}/models?type=image`).then(r => r.json()))
  .data.find((m: any) => m.id === myModel)!.model_spec

const { widthHeightDivisor, promptCharacterLimit, aspectRatios } = spec.constraints
if (prompt.length > promptCharacterLimit) throw new Error('prompt too long')
if (width % widthHeightDivisor !== 0) throw new Error('width not divisible')
if (aspectRatios && !aspectRatios.includes(myAspect)) throw new Error('bad aspect')
LLM のコストを見積もる
// textSpec = model_spec of a text model from /models?type=text
// inputTokens = total prompt tokens, including cachedTokens
const p = textSpec.pricing
const tier = p.extended && inputTokens > p.extended.context_token_threshold ? p.extended : p
const cacheRate = tier.cache_input?.usd ?? tier.input.usd
const cost =
  ((inputTokens - cachedTokens) / 1_000_000) * tier.input.usd +
  (cachedTokens / 1_000_000) * cacheRate +
  (outputTokens / 1_000_000) * tier.output.usd

cache_write を持つモデルのキャッシュ書き込みトークンには、input の料金ではなく、そのレートが適用されます。

注意事項

  • カタログは変更されます。キャッシュは数日ではなく数分にしてください。このスキルに記載されているモデル ID はスナップショットです。必ず /models で確認してください。
  • ?type を省略すると、テキストのみが返されます。すべてを取得するには ?type=all を使用してください。
  • 動画では model_spec.pricing は常に存在せず、価格が公開されていないモデルでは存在しないことがあります。undefined に対するガードを設けてください。
  • regionRestrictions に列挙されるのは、許可されている国ではなく、ブロックされている国です。
  • uncensored は false ではなく省略されます。=== true で判定してください。
  • 特性とエイリアスは type によって異なります。全体に適用されるデフォルトはありません。必ず ?type=... を指定してください。
  • プライベートモデルに制限された API キー(modelPrivacy: PRIVATE_TEXT / PRIVATE_ONLY)ではフィルタリングされたリストが表示されます。認証なしの呼び出しでは、公開されているすべてのモデルが表示されます。
  • 一部のフィールドはライブで提供されますが、OpenAPI の ModelResponse スキーマにはありません(model_sets、画像の supportsWebSearch、画像とインペイントの supportsOptimizePromptThinking、音楽の supports_lyrics_optimizer、複数の動画制約キー)。厳密な生成クライアントでは、これらのフィールドが削除されることがあります。

コメント