> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jiekou.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 推論モデル

export const ReasoningModels = () => {
  if (typeof document === "undefined") {
    return null;
  } else {
    let attempts = 0;
    const maxAttempts = 50;
    const INIT_DISPLAY_COUNT = 3;
    const interval = setInterval(() => {
      const clientComponent = document.getElementById("reasoning-models");
      if (clientComponent && window.jiekouRemoteData.llmModels.status === 'loaded') {
        const modelList = window.jiekouRemoteData.llmModels.data.filter(model => {
          return (model.features || []).includes('reasoning');
        });
        let displayModels = modelList.slice(0, INIT_DISPLAY_COUNT).map(model => {
          return `<li><span class="model-id-item">${model.id}</span></li>`;
        }).join('');
        let showMoreButton = '';
        if (modelList.length > INIT_DISPLAY_COUNT) {
          showMoreButton = `<button id="show-more-reasoning-model-btn" style="margin-left: 32px; color: rgb(40 116 255)">展示更多</button>`;
        }
        clientComponent.innerHTML = `
          <ul>${displayModels}</ul>
          ${showMoreButton}
        `;
        document.getElementById('show-more-reasoning-model-btn')?.addEventListener('click', () => {
          clientComponent.innerHTML = `
            <ul>${modelList.map(model => {
            return `<li><span class="model-id-item">${model.id}</span></li>`;
          }).join('')}</ul>
          `;
        });
        clearInterval(interval);
      }
      attempts++;
      if (attempts >= maxAttempts) {
        clearInterval(interval);
      }
    }, 200);
    return <div id="reasoning-models"></div>;
  }
};

## 機能紹介

推論モデルは、複雑な問題解決や推論タスク向けに最適化された高度な言語モデルです。詳細な推論ステップ（思考の連鎖）を出力することで、問題解決の精度を向上させます。

### 代表的なユースケース

* **複雑な問題解決**：数学や科学的推論など、段階的な導出や明確な論理ステップが必要なシーンに適しています。
* **意思決定支援システム**：詳細な推論プロセスを提供して意思決定分析を支援し、意思決定の背後にあるロジックの理解を助けます。
* **教育とトレーニング**：ユーザーが複雑な知識を学習・理解できるよう、詳細な導出プロセスを提供します。

## インストールと準備

推論モデルを使用する前に、最新バージョンの OpenAI SDK がインストールされていることを確認してください。

```bash theme={null}
pip install -U openai
```

## API 呼び出し方法

`/chat/completions` エンドポイントを呼び出して推論モデルを使用します。

### リクエストパラメータの説明

* `max_tokens`：モデル出力の最大 token 数を設定します。
* `temperature`：出力の創造性と論理性のバランスを取るため、0.5〜0.7（推奨 0.6）に設定することを推奨します。
* `top_p`：0.95 に設定することを推奨します。

### リクエストコード例

#### ストリーミング出力リクエスト

```python theme={null}
from openai import OpenAI

client = OpenAI(api_key="YOUR_API_KEY", base_url="https://api.highwayapi.ai/openai")
messages = [
    {"role": "user", "content": "解释一下牛顿第二定律。"}
]

response = client.chat.completions.create(
    model="deepseek/deepseek-r1",
    messages=messages,
    stream=True,
    max_tokens=4096
)

content = ""
reasoning_content = ""
for chunk in response:
    if chunk.choices[0].delta.content:
        content += chunk.choices[0].delta.content
    if chunk.choices[0].delta.reasoning_content:
        reasoning_content += chunk.choices[0].delta.reasoning_content

print("最终回答：", content)
print("推理过程：", reasoning_content)
```

#### 非ストリーミング出力リクエスト

```python theme={null}
response = client.chat.completions.create(
    model="deepseek/deepseek-r1",
    messages=[
        {"role": "user", "content": "什么是温室效应？如何减缓？"}
    ],
    stream=False,
    max_tokens=4096
)

content = response.choices[0].message.content
reasoning_content = response.choices[0].message.reasoning_content

print("最终回答：", content)
print("推理过程：", reasoning_content)
```

## コンテキスト管理

モデルが返す推論内容は次の会話ターンに自動で連結されないため、ユーザーが会話履歴を手動で管理する必要があります。

```python theme={null}
messages.append({"role": "assistant", "content": content})
messages.append({"role": "user", "content": "继续解释一下解决方案。"})
```

## 対応モデル一覧

<ReasoningModels />

## 課金方式

* 入力および出力の token 数に基づいて課金されます。
* 具体的な課金基準および換算ルールについては、モデル詳細ページで確認してください。

## 注意事項とベストプラクティス

* `system` メッセージに推論指示を追加しないでください。`user` メッセージで直接、明確に指示してください。
* 数学問題では要件を明確に示してください。例：「段階的に推論し、最終回答を明確にしてください。」
* モデルが推論プロセスを省略しないように、出力前に改行を追加するようモデルに強制することを推奨します。
