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

> Box AIのリクエスト処理、入力制限、モデルの動作、エージェント上書きシステムに関する技術リファレンス。

# Box AI

export const SignupCTA = ({children}) => {
  return <div className="flex flex-wrap items-center gap-4 p-5 rounded-lg border border-gray-200 dark:border-gray-700 my-6" style={{
    background: "linear-gradient(135deg, rgba(0, 97, 213, 0.06), rgba(0, 97, 213, 0.02))"
  }}>
      <div className="flex-1 text-sm leading-relaxed text-gray-700 dark:text-gray-300" style={{
    minWidth: "280px"
  }}>
        {children}
      </div>
      <div className="flex flex-col items-center gap-2">
        <a href="https://account.box.com/signup/developer#ty9l3" className="signup-cta-button inline-flex items-center whitespace-nowrap px-5 py-2 text-sm font-semibold text-white no-underline">
          {translate("Get started for free")}
        </a>
        <a href="https://account.box.com/developers/console" className="signup-cta-login text-xs text-gray-500 dark:text-gray-400 no-underline whitespace-nowrap">
          {translate("Already have an account? Log in")}
        </a>
      </div>
    </div>;
};

export const MultiRelatedLinks = ({sections = []}) => {
  if (!sections || sections.length === 0) {
    return null;
  }
  return <div className="space-y-8">
      {sections.map((section, index) => <RelatedLinks key={index} title={section.title} items={section.items} />)}
    </div>;
};

export const RelatedLinks = ({title, items = []}) => {
  const getBadgeClass = badge => {
    if (!badge) return "badge-default";
    const badgeType = badge.toLowerCase().replace(/\s+/g, "-");
    return `badge-${badge === "ガイド" ? "guide" : badgeType}`;
  };
  if (!items || items.length === 0) {
    return null;
  }
  return <div className="my-8">
      {}
      <h3 className="text-sm font-bold uppercase tracking-wider mb-4">{title}</h3>

      {}
      <div className="flex flex-col gap-3">
        {items.map((item, index) => <a key={index} href={item.href} className="py-2 px-3 rounded related_link hover:bg-[#f2f2f2] dark:hover:bg-[#111827] flex items-center gap-3 group no-underline hover:no-underline border-b-0">
            {}
            <span className={`px-2 py-1 rounded-full text-xs font-semibold uppercase tracking-wide flex-shrink-0 ${getBadgeClass(item.badge)}`}>
              {item.badge}
            </span>

            {}
            <span className="text-base">{item.label}</span>
          </a>)}
      </div>
    </div>;
};

export const Link = ({href, children, className, ...props}) => {
  const localizedHref = localizeLink(href);
  return <a href={localizedHref} className={className} {...props}>
      {children}
    </a>;
};

このセクションには、Box AIを利用するための開発者向けガイドが含まれています。API機能の概要、クイックスタート、参照リンクについては、[Box AI API](/ai/box-ai-api)のページを参照してください。

以下のガイドでは、コードの作成を始める前に知っておくべき事項について解説しています。具体的には、Box AIがリクエストをどのように処理するか、各種エンドポイントに適用される制限、エージェントの上書きを利用してモデルの動作を制御する方法、自身のユースケースに合ったチュートリアルを見つける方法などです。

<SignupCTA>
  無料の開発者アカウントで、Box AI APIや開発者コンソール、開発を始めるために必要なすべての機能にアクセスできます。
</SignupCTA>

## リクエストが処理される仕組み

Box AIエンドポイントにリクエストを送信すると、Boxがモデルのインフラストラクチャを自動的に処理します。リクエストは以下の段階を経て処理されます。

* **ファイルの取得**: Boxは、指定された`items`配列からファイルコンテンツを読み取ります。`content`パラメータ (省略可) を含めると、ファイルに保存されているコンテンツではなく、そのテキストが主な入力として使用されます。`POST /ai/ask`では、`items`のエントリを[Box Hub](/guides/hubs-api/index) (`"type": "hubs"`) にすることもできます。この場合、単体のファイルではなく、Hub内のインデックスが作成されているコンテンツが検索されます。詳細については、[Hubについて質問する](/guides/box-ai/ai-tutorials/ask-questions#ask-questions-about-a-hub)を参照してください。
* **レプリゼンテーションの生成**: テキストベースのファイルの場合、Boxはドキュメントをテキストレプリゼンテーションに変換します。画像の場合、Boxはサポートされるエンドポイントで自動的にOCRを適用します。
* **モデルのルーティング**: Boxは、そのエンドポイントおよびモードに対応したデフォルトモデルにリクエストをルーティングします。これは`ai_agent`パラメータを使用して上書きできます。
* **レスポンスの生成**: LLMがプロンプトに従ってファイルコンテンツを処理し、結果を返します。長文ドキュメントの場合、Boxはトークンのウィンドウ処理を行います (`long_text`構成では、埋め込みデータを使用してコンテンツをチャンクに分割します)。

<Note>
  Box AIはマルチモーダルリクエストをサポートしません。同じリクエストで画像とテキストの両方を送信した場合、テキストのみが処理されます。
</Note>

## 入力制限

以下の制限は、Box AIのすべてのエンドポイントに適用されます。ほとんどの場合、以下の制限値を超過してもエラーは発生しません。制限値になるよう切り捨てられ、可能な範囲で処理が行われます。

### テキストとプロンプトの制限

| 制約                                       | 上限値                            |
| ---------------------------------------- | ------------------------------ |
| プロンプトの長さ                                 | 10,000文字                       |
| 単一ファイルのテキストレプリゼンテーション (`single_item_qa`) | 2 MBのテキスト。2 MBを超過した分は切り捨てられます。 |
| 複数のファイル (`multiple_item_qa`)             | 最大25ファイル                       |
| (`text_gen`) の項目配列                       | 1ファイルのみ                        |
| `extract`および`extract_structured`の項目配列    | 1ファイルのみ                        |

### 画像の制限

| 制約                      | 上限値                       |
| ----------------------- | ------------------------- |
| 解像度                     | 1024 x 1024ピクセル           |
| 1リクエストあたりの画像数またはページ数の上限 | 5。これを超えた場合、最初の5つのみ処理されます。 |

### OCRおよびファイル形式のサポート

OCRは、すべてのエンドポイントで利用**できるわけではありません**。

| エンドポイント                       | OCR    | サポートされているファイル形式   |
| ----------------------------- | ------ | ----------------- |
| `POST /ai/text_gen`           | いいえ    | テキストベースのファイル      |
| `POST /ai/extract`            | いいえ    | テキストベースのファイル      |
| `POST /ai/extract_structured` | ○ (自動) | PDF、TIFF、PNG、JPEG |

### 言語のサポート

Box AIは、英語、日本語、フランス語、スペイン語など、多くの言語で使用できます。ただし、基になるモデルは、主に英語でトレーニングされているため、他の言語でプロンプトを入力した場合、結果の品質が低下する可能性があります。

`extract_structured`エンドポイントは、以下の複数言語を明示的にサポートしています。

* 英語、日本語、中国語、韓国語
* キリル文字ベースの言語 (ロシア語、ウクライナ語、ブルガリア語、セルビア語)

<Tip>
  言語を日本語に切り替えると、より適切な結果が得られます。
</Tip>

## `ai_agent`上書きシステム

Box AIエンドポイント`POST /ai/ask`、`POST /ai/text_gen`、`POST /ai/extract`、`POST /ai/extract_structured`では、オプションの`ai_agent`パラメータを指定して、デフォルトのモデル構成を上書きすることができます。この方法によって、実行するLLM、その動作、およびLLMに与える指示を制御できます。

### 上書きを使用するタイミング

* **モデルバージョンの固定**: Boxでは、デフォルトのモデルが定期的に更新されます。ダウンストリームプロセスで出力の整合性が求められる場合は、特定のモデルを固定することで、予期せぬ変更を防ぐことができます。
* **モデルの切り替え**: モデルによって得られる結果は異なります。<Link href="/guides/box-ai/ai-models/index">サポートされているモデルのリスト</Link>にある任意のモデルに切り替えることで、ユースケースに合わせて最適化できます。
* **プロンプトのカスタマイズ**: `prompt_template`および`system_message`パラメータを使用すると、アプリケーションコードを変更することなく、LLMの動作を制御できます。
* **創造性の調整**: `temperature`や他の`llm_endpoint_params`を調整して、出力の確定性と創造性の度合いを制御します。

### 仕組み

<Steps>
  <Step title="デフォルト構成を取得する">
    現在のデフォルト値を取得するには、必要な`mode` (`ask`、`text_gen`、`extract`、または`extract_structured`) を指定して、<Link href="/reference/get-ai-agent-default">`GET /2.0/ai_agent_default`</Link>を呼び出します。
  </Step>

  <Step title="構成を変更する">
    必要なフィールド (`model`、`prompt_template`、`system_message`、`llm_endpoint_params`、または`num_tokens_for_completion`) を変更します。他のフィールドは変更しないでください。
  </Step>

  <Step title="リクエストに構成を戻す">
    変更した構成を、`POST`リクエストの`ai_agent`パラメータとして指定します。Boxでは、そのリクエストに対してのみ、この上書きが適用されます。
  </Step>
</Steps>

### エンドポイントごとの構成構造

`ai_agent`オブジェクトの構造は、エンドポイントごとに異なります。これは、各エンドポイントでコンテンツの処理方法が異なるためです。

| エンドポイント                       | エージェントの種類                     | 構成キー                                                             |
| ----------------------------- | ----------------------------- | ---------------------------------------------------------------- |
| `POST /ai/ask`                | `ai_agent_ask`                | `basic_text`, `basic_text_multi`, `long_text`, `long_text_multi` |
| `POST /ai/text_gen`           | `ai_agent_text_gen`           | `basic_gen`                                                      |
| `POST /ai/extract`            | `ai_agent_extract`            | `basic_text`, `long_text`                                        |
| `POST /ai/extract_structured` | `ai_agent_extract_structured` | `basic_text`, `long_text`                                        |

`ask`エンドポイントは単一項目モードと複数項目モードの両方、および短いドキュメントと長いドキュメントの両方を処理するため、4つの構成キーがあります。`multiple_item_qa`モードを使用する場合は、`_multi`バリアントが適用されます。

`long_text`構成の場合、Boxは埋め込みモデルを使用してコンテンツをチャンクに分割します。埋め込みモデルとチャンク化戦略を、上書きの一部として構成できます。

### プロバイダごとのLLMパラメータの違い

`llm_endpoint_params`オプションは、モデルプロバイダによって異なります。

| プロバイダ                                                                         | パラメータの種類        | 主な違い                                            |
| ----------------------------------------------------------------------------- | --------------- | ----------------------------------------------- |
| <Link href="/reference/resources/ai-llm-endpoint-params-openai">OpenAI</Link> | `openai_params` | `temperature`**または**`top_p`を使用し、両方を使用しない        |
| <Link href="/reference/resources/ai-llm-endpoint-params-google">Google</Link> | `google_params` | `temperature`は、`top_p`および`top_k`と連携する           |
| <Link href="/reference/resources/ai-llm-endpoint-params-aws">AWS</Link>       | `aws_params`    | Googleと同様に、`temperature`は`top_p`および`top_k`と連携する |

上書きの例の詳細については、<Link href="/guides/box-ai/ai-agents/ai-agent-overrides">AIモデルの上書き</Link>ガイドと<Link href="/guides/box-ai/ai-tutorials/default-agent-overrides">上書きのチュートリアル</Link>を参照してください。

### モデルのバージョン管理

Boxでは、各AIエージェントの構成スナップショットを最低12か月間は保証しており、新バージョンがリリースされた際には6か月の移行期間が設けられています。デフォルトモデルの変更内容は、<Link href="/changelog">開発者向け変更ログ</Link>に掲載されます。サービスの中断を防ぐため、上書きを使用してエージェントの構成を特定のモデルバージョンに固定してください。

詳細については、<Link href="/guides/box-ai/ai-agents/ai-agent-versioning">AIエージェントの構成のバージョン管理</Link>を参照してください。

## Box AI for UI Elements

<Link href="/guides/embed/ui-elements/preview#box-ai-ui-element">Box AI for UI Elements</Link>統合により、質問回答機能がアプリケーション内のコンテンツプレビューに直接組み込まれます。これにより、エンドユーザーはUIを離れることなくBox AIを操作できるようになります。

## \[ユーザーアクティビティ] レポート

[\[ユーザーアクティビティ\] レポート][uar]では、Box AIとのやり取りが追跡されます。Box管理者は、以下の操作の種類で絞り込むことができます。

| 操作の種類        | 説明                                  |
| ------------ | ----------------------------------- |
| **AIクエリ**    | ユーザーがBox AIに対してクエリを実行し、レスポンスを受け取った  |
| **AIクエリの失敗** | ユーザーがBox AIに対してクエリを実行したが、レスポンスがなかった |

[uar]: https://support.box.com/hc/en-us/articles/4415012490387-User-Activity-Report

## このセクションのガイド

<CardGroup cols={2}>
  <Card title="チュートリアル" icon="graduation-cap" href={localizeLink("/guides/box-ai/ai-tutorials/index")}>
    質問、テキストの生成、抽出、モデルの上書きといったエンドポイントごとのステップバイステップ形式のガイド。
  </Card>

  <Card title="モデルの上書き" icon="sliders" href={localizeLink("/guides/box-ai/ai-agents/index")}>
    デフォルトのモデル、プロンプト、LLMパラメータを上書きします。デフォルトの構成リファレンスとバージョン管理ポリシーも含まれています。
  </Card>

  <Card title="サポートされているモデル" icon="microchip" href={localizeLink("/guides/box-ai/ai-models/index")}>
    すべてのコアモデルおよび顧客希望で有効化できるモデルのリスト。機能レベル、コンプライアンスバッジ、API名が含まれます。
  </Card>

  <Card title="クイックスタート" icon="rocket" href={localizeLink("/ai/box-ai-api#quick-starts")}>
    Python SDKのチュートリアルに従って、要約と抽出を数分間で実行してみましょう。
  </Card>
</CardGroup>

## Box AIの実際の動作をご確認ください

これらのエンドツーエンドのチュートリアルでは、Box AIを他のプラットフォーム機能と組み合わせて、本番環境に対応した自動化を構築する方法を紹介します。

<CardGroup cols={2}>
  <Card title="請求書の取り込み自動化" icon="file-invoice" href={localizeLink("/guides/tutorials/invoice-intake")} arrow="true">
    Box AI Extractとメタデータを活用して買掛金処理を自動化します。すべての請求書から仕入先、合計金額、日付を抽出できます。
  </Card>

  <Card title="営業用RFP回答集" icon="magnifying-glass" href={localizeLink("/guides/tutorials/sales-rfp-answer-bank")} arrow="true">
    Box HubsでAI搭載のナレッジベースを構築し、営業担当者が承認済みの提案書を自然言語で照会できるようにします。
  </Card>
</CardGroup>
