> ## 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.

# チャット会話リクエストの作成

指定されたチャット会話に基づいてモデルの応答を生成します

## リクエストヘッダー

<ParamField header="Content-Type" type="string" required={true}>
  列挙値: `application/json`
</ParamField>

<ParamField header="Authorization" type="string" required={true}>
  Bearer 認証形式: Bearer \{\{API Key}}。
</ParamField>

## リクエストボディ

<ParamField body="model" type="string" required={true}>
  使用するモデル名。
</ParamField>

<ParamField body="messages" type="object[]" required={true}>
  現在の会話を構成するメッセージのリスト。

  <Expandable title="プロパティ" defaultOpen={false}>
    <ParamField body="content" type="string | object[] | null" required={true}>
      メッセージの内容。すべてのメッセージには content が必要です。関数呼び出しを含む assistant メッセージの場合、content は null にできます。

      モダリティに応じて、以下のパラメータを使用できます。

      <Frame>
        <div class="param_frame">
          <Tabs>
            <Tab title="テキスト内容">
              <p class="param_text">オプション 1：</p>
              <p class="param_text">文字列型を使用してメッセージのテキスト内容を表すことができます。</p>

              <br />

              <p class="param_text">オプション 2：</p>
              <p class="param_text">コンテンツ部分の配列、object\[] を使用します。詳細フィールドは以下のとおりです：</p>

              <ParamField body="type" type="string" required={true}>
                コンテンツ部分のタイプ。この場合は `text` です。
              </ParamField>

              <ParamField body="text" type="string" required={true}>
                テキスト内容。
              </ParamField>
            </Tab>

            <Tab title="画像内容">
              <p class="param_text">ビジョン言語モデルでのみ使用できます。</p>
              <p class="param_text">コンテンツ部分の配列、object\[]。詳細フィールドは以下のとおりです：</p>

              <ParamField body="type" type="string" required={true}>
                コンテンツ部分のタイプ。この場合は `image_url` です。
              </ParamField>

              <ParamField body="image_url" type="string" required={true}>
                <Expandable title="プロパティ" defaultOpen={true}>
                  <ParamField body="url" type="string" required={true}>
                    画像の URL または base64 エンコードされた画像データ（claude シリーズモデルは base64 エンコードされた画像データのみをサポートします）。
                  </ParamField>
                </Expandable>
              </ParamField>
            </Tab>

            <Tab title="動画内容">
              <p class="param_text">動画をサポートするモデルでのみ使用できます。</p>
              <p class="param_text">コンテンツ部分の配列、object\[]。詳細フィールドは以下のとおりです：</p>

              <ParamField body="type" type="string" required={true}>
                コンテンツ部分のタイプ。この場合は `video_url` です。
              </ParamField>

              <ParamField body="video_url" type="string" required={true}>
                <Expandable title="プロパティ" defaultOpen={true}>
                  <ParamField body="url" type="string" required={true}>
                    動画の URL。
                  </ParamField>
                </Expandable>
              </ParamField>
            </Tab>
          </Tabs>
        </div>
      </Frame>
    </ParamField>

    <ParamField body="role" type="string" required={true}>
      メッセージ作成者のロール。system、user、assistant のいずれかです。

      列挙値: `system`, `user`, `assistant`
    </ParamField>

    <ParamField body="name" type="string">
      このメッセージ作成者の名前。a-z、A-Z、0-9、アンダースコアを含めることができ、最大長は 64 文字です。
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="max_tokens" type="integer" required={true}>
  補完で生成される最大トークン数。

  プロンプト（以前のメッセージ）に max\_tokens のトークン数を加えた値がモデルのコンテキスト長を超える場合、動作は context\_length\_exceeded\_behavior によって異なります。デフォルトでは、エラーを返すのではなく、max\_tokens がコンテキストウィンドウに収まるように引き下げられます。
</ParamField>

<ParamField body="stream" type="boolean | null" default={false}>
  部分的な進捗をストリーミングで返すかどうか。設定すると、トークンはデータ専用のサーバー送信イベント (SSE) として利用可能になり次第送信され、ストリームは `data: [DONE]` メッセージで終了します。
</ParamField>

<ParamField body="stream_options" type="object | null">
  ストリーミング応答のオプション。stream が true に設定されている場合にのみ設定します。

  <Expandable title="プロパティ" defaultOpen={false}>
    <ParamField body="include_usage" type="boolean">
      設定すると、data: \[DONE] メッセージの前に追加の chunk がストリーミングされます。この chunk の usage フィールドにはリクエスト全体のトークン使用統計が表示され、choices フィールドは常に空の配列になります。他のすべての chunk にも usage フィールドが含まれますが、値は null です。
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="n" type="integer | null" default={1}>
  各プロンプトに対して生成する補完の数。

  注意：このパラメータは多数の補完を生成するため、トークン割り当てを急速に消費する可能性があります。慎重に使用し、max\_tokens と stop に適切な設定を行ってください。

  必須範囲：`1 < x < 128`
</ParamField>

<ParamField body="seed" type="integer | null">
  指定した場合、同じ seed とパラメータでリクエストを繰り返すと同じ結果が返るよう、システムは可能な限り決定論的にサンプリングを行います。
</ParamField>

<ParamField body="frequency_penalty" type="number | null" default={0}>
  正の値は、新しいトークンがテキスト内に既に出現している頻度に基づいてペナルティを与え、モデルが同じ行を逐語的に繰り返す可能性を低下させます。

  目的が繰り返しサンプルを少し減らすだけであれば、0.1 から 1 の間が妥当な値です。繰り返しを強く抑制することが目的であれば、係数を 2 まで増やすこともできますが、サンプル品質が大幅に低下する可能性があります。負の値は、繰り返しの可能性を高めるために使用できます。

  少なくとも 1 回出現したトークンに固定率でペナルティを与える presence\_penalty も参照してください。

  必須範囲：`-2 < x < 2`
</ParamField>

<ParamField body="presence_penalty" type="number | null" default={0}>
  正の値は、新しいトークンがテキスト内に出現しているかどうかに基づいてペナルティを与え、モデルが新しいトピックについて話す可能性を高めます。

  目的が繰り返しサンプルを少し減らすだけであれば、0.1 から 1 の間が妥当な値です。繰り返しを強く抑制することが目的であれば、係数を 2 まで増やすこともできますが、サンプル品質が大幅に低下する可能性があります。負の値は、繰り返しの可能性を高めるために使用できます。

  トークンの出現頻度に基づいて増加率でトークンにペナルティを与える `frequency_penalty` も参照してください。

  必須範囲：`-2 < x < 2`
</ParamField>

<ParamField body="repetition_penalty" type="number | null">
  繰り返しを抑制または促進するために、繰り返されるトークンにペナルティを適用します。値 1.0 はペナルティなしを意味し、自由な繰り返しを許可します。1.0 より大きい値は繰り返しにペナルティを与え、繰り返しトークンの可能性を低下させます。0.0 から 1.0 の間の値は繰り返しに報酬を与え、繰り返しトークンの機会を増やします。良好なバランスを得るには、通常 1.2 の値を使用することをお勧めします。ペナルティは、生成された出力とデコーダー専用モデルのプロンプトに適用されることに注意してください。

  必須範囲：`0 < x < 2`
</ParamField>

<ParamField body="stop" type="string | null">
  API がそれ以上のトークン生成を停止する最大 4 つのシーケンス。返されるテキストには停止シーケンスが含まれます。
</ParamField>

<ParamField body="temperature" type="number | null" default={1}>
  使用するサンプリング温度。0 から 2 の間です。0.8 のように高い値にすると出力はよりランダムになり、0.2 のように低い値にするとより集中し決定論的になります。

  通常、この項目または `top_p` のどちらか一方のみを変更し、両方を同時に変更しないことをお勧めします。

  必須範囲：`0 < x < 2`
</ParamField>

<ParamField body="top_p" type="number | null">
  サンプリング温度の代替手法で、核サンプリングと呼ばれます。モデルは top\_p の確率質量を持つトークン結果を考慮します。したがって、0.1 は上位 10% の確率質量を構成するトークンのみを考慮することを意味します。通常、この項目または temperature のどちらか一方のみを変更し、両方を同時に変更しないことをお勧めします。

  必須範囲：`0 < x <= 1`
</ParamField>

<ParamField body="top_k" type="integer | null">
  Top-k サンプリングはもう 1 つのサンプリング手法で、最も可能性の高い次の k 個のトークンがフィルタリングされ、確率質量はこれら k 個の次トークン間でのみ再分配されます。k の値は、テキスト生成中の各ステップにおける次トークンの候補数を制御します。

  必須範囲：`1 < x < 128`
</ParamField>

<ParamField body="min_p" type="number | null">
  最も可能性の高いトークンの確率に対して、トークンが考慮される最小確率を表します。

  必須範囲：`0 <= x <= 1`
</ParamField>

<ParamField body="logit_bias" type="map[string, integer] | null" required={false}>
  指定したトークンが補完に出現する可能性を変更します。

  JSON オブジェクトを受け取り、トークンを -100 から 100 の間の関連するバイアス値にマッピングします。
  数学的には、サンプリング前にモデルが生成した logits にバイアスが追加されます。正確な効果はモデルによって異なります。

  たとえば、`"logit_bias":{"1024": 6}` を設定すると、token ID が 1024 のトークンの可能性が高まります。
</ParamField>

<ParamField body="logprobs" type="boolean | null" default={false}>
  出力トークンの対数確率を返すかどうか。true の場合、メッセージ内容内の各出力トークンの対数確率が返されます。
</ParamField>

<ParamField body="top_logprobs" type="integer | null">
  0 から 20 の間の整数で、各トークン位置で返される最も可能性の高いトークン数を指定します。各トークンには関連する対数確率があります。このパラメータを使用する場合は、`logprobs` を true に設定する必要があります。

  必須範囲：`0 <= x <= 20`
</ParamField>

<ParamField body="tools" type="object[] | null">
  モデルが呼び出せるツールのリスト。現在、ツールとしてサポートされているのは関数のみです。モデルが JSON 入力を生成できる関数のリストを提供するために使用します。

  関数呼び出しの詳細については、[関数呼び出しガイド](/ja/docs/model/llm-function-calling)を参照してください。

  <Expandable title="プロパティ" defaultOpen={false}>
    <ParamField body="type" type="string" required={true}>
      ツールのタイプ。

      サポートされるタイプ：`function`
    </ParamField>

    <ParamField body="function" type="object" required={true}>
      <Expandable title="プロパティ" defaultOpen={false}>
        <ParamField body="name" type="string" required={true}>
          呼び出す関数名。a-z、A-Z、0-9、またはアンダースコアとハイフンを含む必要があり、最大長は 64 です。
        </ParamField>

        <ParamField body="description" type="string | null">
          関数の説明。モデルがいつ、どのように関数を呼び出すかを選択するために使用します。
        </ParamField>

        <ParamField body="parameters" type="object | null">
          関数が受け取るパラメータ。JSON Schema オブジェクトとして記述します。形式に関するドキュメントは [JSON Schema リファレンス](https://json-schema.org/understanding-json-schema/)を参照してください。
        </ParamField>

        <ParamField body="strict" type="boolean" default={false}>
          関数呼び出しの生成時に厳密なスキーマ遵守を有効にするかどうか。true に設定すると、モデルは parameters フィールドで定義された正確なスキーマに従います。
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="response_format" type="object | null">
  モデルに特定の出力形式を生成させることができます。

  `{ "type": "json_schema", "json_schema": {...} }` に設定すると構造化出力が有効になり、モデルが提供された JSON schema に一致することを保証します。

  `{ "type": "json_object" }` に設定すると従来の JSON モードが有効になり、モデルが生成するメッセージが有効な JSON であることを保証します。対応しているモデルでは、`json_schema` の使用をお勧めします。

  <Expandable title="プロパティ" defaultOpen={false}>
    <ParamField body="type" type="string" required={true} default="text">
      列挙値: `text`, `json_object`, `json_schema`
    </ParamField>

    <ParamField body="json_schema" type="object | null">
      JSON Schema 応答形式。構造化された JSON 応答を生成するために使用します。

      `type` が `json_schema` に設定されている場合にのみサポートされ、`type` が `json_schema` に設定されている場合は必須です。

      詳細は[構造化出力ガイド](/ja/docs/model/llm-structured-outputs)を参照してください。

      <Expandable title="プロパティ" defaultOpen={false}>
        <ParamField body="name" type="string" required={true}>
          応答形式の名前。a-z、A-Z、0-9、またはアンダースコアとハイフンを含む必要があり、最大長は 64 です。
        </ParamField>

        <ParamField body="description" type="string | null">
          応答形式の説明。モデルがその形式でどのように応答するかを判断するために使用します。
        </ParamField>

        <ParamField body="schema" type="object | null">
          応答形式のスキーマ。JSON Schema オブジェクトとして記述します。JSON schema の構築方法については[こちら](https://json-schema.org/specification)をご覧ください。

          サポートされるタイプ：`string`, `number`, `integer`, `boolean`, `array`, `object`, `enum`, `anyOf`。
        </ParamField>

        <ParamField body="strict" type="boolean" default={false}>
          出力生成時に厳密なスキーマ遵守を有効にするかどうか。true に設定すると、モデルは常に schema フィールドで定義された正確なスキーマに従います。strict が true の場合、JSON Schema のサブセットのみがサポートされます。

          `strict: true` を指定して構造化出力を有効にし、サポートされていない JSON Schema で API を呼び出した場合、エラーが返されます。
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="separate_reasoning" type="boolean | null" default={false}>
  推論を "content" から分離して "reasoning\_content" フィールドに入れるかどうか。

  サポートされるモデル：

  * `deepseek/deepseek-r1-turbo`
</ParamField>

<ParamField body="enable_thinking" type="boolean | null" default={true}>
  思考モードと非思考モードの切り替えを制御します。

  サポートされるモデル：

  * `zai-org/glm-4.5`
</ParamField>

## レスポンス情報

<ResponseField name="choices" type="object[]" required={true}>
  チャット補完オプションのリスト。

  <Expandable title="プロパティ" defaultOpen={false}>
    <ResponseField name="finish_reason" type="string" required={true}>
      モデルがトークン生成を停止した理由。モデルが自然な停止点または提供された停止シーケンスに到達した場合は "stop"、リクエストで指定された最大トークン数に到達した場合は "length" です。

      利用可能なオプション: `stop`, `length`
    </ResponseField>

    <ResponseField name="index" type="integer" required={true}>
      チャット補完オプションのインデックス。
    </ResponseField>

    <ResponseField name="message" type="object" required={true}>
      <Expandable title="プロパティ" defaultOpen={false}>
        <ResponseField name="role" type="string" required={true}>
          このメッセージ作成者のロール。

          利用可能なオプション: `system`, `user`, `assistant`
        </ResponseField>

        <ResponseField name="content" type="string | null">
          メッセージの内容。
        </ResponseField>

        <ResponseField name="reasoning_content" type="string | null">
          推論ステップの内容。

          <Warning>
            このフィールドは `separate_reasoning` が true に設定されている場合にのみ使用できます。
          </Warning>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="created" type="integer" required={true}>
  応答が生成された Unix 時刻（秒単位）。
</ResponseField>

<ResponseField name="id" type="string" required={true}>
  応答の一意の識別子。
</ResponseField>

<ResponseField name="model" type="string" required={true}>
  チャット補完に使用されたモデル。
</ResponseField>

<ResponseField name="object" type="string" required={true}>
  オブジェクトタイプ。常に `chat.completion` です。
</ResponseField>

<ResponseField name="usage" type="object">
  使用統計。

  ストリーミング応答の場合、usage フィールドは返される最後のレスポンスブロックに含まれます。

  <Expandable title="プロパティ" defaultOpen={false}>
    <ResponseField name="completion_tokens" type="integer" required={true}>
      生成された補完内のトークン数。
    </ResponseField>

    <ResponseField name="prompt_tokens" type="integer" required={true}>
      プロンプト内のトークン数。
    </ResponseField>

    <ResponseField name="total_tokens" type="integer" required={true}>
      リクエストで使用されたトークンの総数（プロンプト + 補完）。
    </ResponseField>
  </Expandable>
</ResponseField>
