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

# 企業のドキュメントリポジトリをアクセス制御されたAIナレッジベースに変える

> Box HubsとBox AI Askを併用して、アクセス制御されたAIナレッジベースを構築します。回答はBoxの権限を引き継ぐほか、ベクトルデータベースの構築は不要です。

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>;
};

承認済みのコンテンツを<Link href="/guides/hubs-api">Box Hub</Link>に集約し、それを<Link href="/guides/box-ai/ai-tutorials/ask-questions#ask-questions-about-a-hub">Box AI Ask</Link>を使って検索することができます。Hub内の項目にはBoxによりインデックスが作成され、ユーザーからリクエストを受信するたびに、ユーザーの権限が確認されます。回答に際して参照されるのは、呼び出し元がBoxで開けるコンテンツのみです。また、ベクトルデータベースの構築は不要です。

## このパターンを採用している理由

共有ナレッジベースは、個人用フォルダでは不要な以下の4つの質問に答えられる必要があります。

* あるファイルを誰が読み取りできて、誰が変更できるか?
* どのバージョンが最新か?
* AIによる参照が承認されたコンテンツと、下書き段階であったり、内容が古くなっていたりするコンテンツを区別できているか?
* 回答では出典ドキュメントの引用情報を提示できるか?

Boxには、コンテンツのバージョン、コラボレーション情報、監査履歴がすでに保存されています。Hubは、そのようなコンテンツを厳選して表示するためのものです。Box AI Askは、Hubのインデックスを検索し、呼び出し元の権限に応じた回答を、その引用情報も含めて返す役割を果たします。

## ナレッジベースの作成

<Steps>
  <Step title="リポジトリをBox内に維持する">
    情報の出典となるファイルは、Boxのフォルダに保存します。AIシステムに対してデフォルトで企業全体のデータに対するアクセス権限を付与してはなりません。まずは、ユースケースに対応するうえで最小限のフォルダに絞りましょう。
  </Step>

  <Step title="ステージング段階のコンテンツと承認済みのコンテンツを分ける">
    新しいファイルや更新があったファイルは、まずステージング領域に格納しておき、レビューを終えた時点で、Hubに追加したフォルダに移動させます。レビュー状態の追跡には、所有者、ドメイン、承認ステータスなどのメタデータを使用します。詳細については、<Link href="/guides/metadata">メタデータ</Link>と (値がドキュメント内にある場合には) <Link href="/guides/box-ai/ai-tutorials/extract-metadata-structured">Box AI Extract</Link>を参照してください。
  </Step>

  <Step title="承認済みのファイルをHubに公開する">
    <Link href="/guides/hubs-api/hubs/create-hub">Hubs API</Link>を使用してHubを作成し、承認済みのフォルダまたはファイルを<Link href="/guides/hubs-api/hubs-items/hub-items">Hub項目</Link>として追加します。次に、<Link href="/guides/hubs-api/hubs-collaborations/hub-collaborations">Hubのコラボレーション</Link>を通じてユーザーやグループを招待します。Hubへのアクセス権限は、ファイルの権限を置き換えるものではありません。コラボレータであっても、開く許可が与えられていないファイルは閲覧できません。
  </Step>

  <Step title="Box AI Askを使用してHubにクエリを実行する">
    HubでAIを有効にします (`is_ai_enabled`)。詳細については、<Link href="/guides/hubs-api/hubs/update-hub">Hubの更新</Link>を参照してください。次に、<Link href="/reference/post-ai-ask">`POST /2.0/ai/ask`</Link>を呼び出し、`"type": "hubs"`を指定してHubを項目として渡します。すると、Hubのインデックスが検索され、リクエスト元のIDのユーザーがアクセスできるドキュメントに基づいて回答が返されます。引用情報を有効にすると、回答で出典ファイルが明示されます。詳細については、<Link href="/guides/box-ai/ai-tutorials/ask-questions#ask-questions-about-a-hub">Hubについて質問する</Link>を参照してください。
  </Step>
</Steps>

## 権限

Box HubsとBox AIには、それぞれに独自の権限システムはありません。ウォーターフォール型の権限、コラボレーション、スコープはいずれも、認証済みのユーザーやアプリケーションから引き継がれます。

* エージェントに接続したり、Askを呼び出したりしても、企業内のファイルが外部に公開されることはありません。
* ユーザーがBox内の特定のファイルへのアクセス権限を持たない場合、そのファイルはBox AIの回答から除外されます。
* 専用のサービスアカウントは、そのアカウントが明確な意図をもって作られ、監査の対象となっており、かつ、承認済みのコンテンツを対象としたコラボレーションを設定したIDである場合にのみ使用します。ユーザー権限によるアクセス制御を回避するためにサービスアカウントを使用することはないようにしてください。

エージェントの接続については、<Link href="/guides/box-mcp/permission-aware-access">権限に応じたエージェントの安全なアクセス権限</Link>を参照してください。

## ベクトルデータベースの使用が必要な場面

コンテンツがすでにBoxにあり、権限に応じた回答が必要な場合には、HubsとAskの併用で対応できます。

独自のRAGパイプラインを構築するのは、Box AIにはない検索エンジンが必要な場合、Boxとそれ以外の情報源とが混在したインデックスが必要な場合、または独自のチャンク化やランク付けが必要な場合に限定することをお勧めします。なお、コンテンツをエクスポートするときは、構築するパイプラインでBoxの権限を強制するとともに、ファイル、バージョン、コラボレーションの変更に応じて常にデータを最新の状態に保つようにしてください。詳細については、<Link href="/ai/rag">Boxに保存されている企業ドキュメントを対象としたRAGの構築</Link>を参照してください。

## 具体例

<CardGroup cols={2}>
  <Card title="カンパニーブレインの作成" href={localizeLink("/tutorials/company-brain")} icon="brain" arrow="true">
    ユーザーとエージェントの双方が共有するナレッジレイヤーを作成します。フォルダ、Box AIによるレビュー、ガバナンスメタデータ、Hubs、Askを使用します。
  </Card>

  <Card title="営業用RFP回答集" href={localizeLink("/tutorials/sales-rfp-answer-bank")} icon="magnifying-glass" arrow="true">
    Hubをプロビジョニングし、厳選されたRFPコンテンツを追加したうえで、HubをCRMに埋め込み、営業担当者からの質問にBox AIを使って回答できるようにする方法を紹介します。
  </Card>
</CardGroup>

<RelatedLinks
  title="関連するガイド"
  items={[
{ label: translate("Box Hubs overview"), href: "/guides/hubs-api", badge: "GUIDE" },
{ label: translate("Ask questions to Box AI"), href: "/guides/box-ai/ai-tutorials/ask-questions", badge: "GUIDE" },
{ label: translate("Why Box for developers"), href: "/guides/getting-started/why-box", badge: "GUIDE" },
{ label: translate("Build RAG over enterprise documents"), href: "/ai/rag", badge: "GUIDE" }
]}
/>
