Skip to content

Model Fusion

1つのプロンプトを複数のモデルへ同時に送り、必要に応じて1つの回答へ統合します。

POST/v1/fusion

Model Fusion は PleumRouter 独自のエンドポイントです。OpenAI や Anthropic の SDK 形式ではないため、 /v1/fusion を直接呼び出してください。1つのプロンプトを 2〜4 個のモデルへ 並列にファンアウトし、fusetrue の場合は成功した 回答を1つの統合回答に合成します。認証は plm_ キーを Bearer トークンとして 渡します。

リクエストボディ#

パラメータ必須説明
modelsstring[]必須2〜4 個のモデル ID の配列。重複は除去され、異なるモデルが 2 個未満の場合は 400 を返します。
messagesarray必須チャットと同じ {role, content} 配列。マルチモーダル入力にも対応します。
temperaturenumber任意デフォルト値 0.7。
max_tokensinteger任意デフォルト値 2048。
fuseboolean任意true で 2 個以上のソースが成功した場合、統合回答を合成します。デフォルト値 true
fuse_modelstring | null任意合成に使用するモデル ID。デフォルト値は null で、その場合は最初に成功したソースのモデルを使用します。
request
curl https://apirouter.pleum.ai/v1/fusion \
  -H "Authorization: Bearer $PLEUM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "models": ["gpt-4o", "claude-sonnet-4-6"],
    "messages": [
      {"role": "user", "content": "Explain the CAP theorem in one paragraph."}
    ],
    "temperature": 0.7,
    "max_tokens": 2048,
    "fuse": true
  }'
HTTP (Python)
import requests

resp = requests.post(
    "https://apirouter.pleum.ai/v1/fusion",
    headers={
        "Authorization": "Bearer plm_...",
        "Content-Type": "application/json",
    },
    json={
        "models": ["gpt-4o", "claude-sonnet-4-6"],
        "messages": [{"role": "user", "content": "Explain the CAP theorem in one paragraph."}],
        "temperature": 0.7,
        "max_tokens": 2048,
        "fuse": True,
    },
)
print(resp.json()["text"])
HTTP (TypeScript)
const res = await fetch("https://apirouter.pleum.ai/v1/fusion", {
  method: "POST",
  headers: {
    Authorization: "Bearer plm_...",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    models: ["gpt-4o", "claude-sonnet-4-6"],
    messages: [{ role: "user", content: "Explain the CAP theorem in one paragraph." }],
    temperature: 0.7,
    max_tokens: 2048,
    fuse: true,
  }),
});

const data = await res.json();
console.log(data.text);

レスポンス#

sources には各モデルの結果(model providertext cost_krwlatency_ms error)が入ります。合成が実行されると fused_text と 合成に使われたモデル(fused_by)が返され、 total_cost_krw はすべてのソース呼び出しと合成ステップの費用の合計です。

200 OK
{
  "sources": [
    {
      "model": "gpt-4o",
      "provider": "openai",
      "text": "The CAP theorem states that a distributed system...",
      "cost_krw": 3,
      "latency_ms": 912,
      "error": null
    },
    {
      "model": "claude-sonnet-4-6",
      "provider": "anthropic",
      "text": "In any distributed data store, you can guarantee...",
      "cost_krw": 4,
      "latency_ms": 1180,
      "error": null
    }
  ],
  "fused_text": "The CAP theorem says a distributed system can provide at most two of consistency, availability, and partition tolerance...",
  "fused_by": "gpt-4o",
  "total_cost_krw": 9
}
各ソース呼び出しが実際のクレジットを消費し、合成(fuse)ステップでもさらに別途消費します — total_cost_krw はそれらの合計です。一部の失敗は分離され、失敗したソースは error がセットされた状態で返り、呼び出し全体はそのまま 200 を返します。合成は fuse true で、かつ 2 個以上のソースが成功した場合にのみ実行されます。