サイトによっては、リクエストの保存、進捗の記録、接続済みアプリから取得した情報の表示が必要です。保存したいデータ、情報の取得元、アクセスを許可する相手を ChatGPT に伝えてください。
ストレージとサインイン機能の選択
新規プロジェクトでは、Sites が推奨するサイト用のスターターテンプレートから始められます。既存のプロジェクトでは、デプロイを依頼する前に、そのプロジェクトで Sites に対応したデプロイ用の成果物を生成できるか、ChatGPT に確認を依頼してください。
ChatGPT が必要なストレージとユーザー識別機能を選べるよう、サイトで実現したいことを伝えてください。
| サイトの要件 | Sites に依頼する内容 |
|---|---|
| コンテンツが主体のウェブサイトやランディングページ | サイトの利用に必要な場合に限り、アプリケーションの状態を永続化する構成 |
| レコード、ユーザーの進捗、ゲームのスコアの保存 | 構造化データを永続化するためのリレーショナルデータベース D1 |
| 画像、文書、音声、動画などのアップロード | ファイルを保存するためのオブジェクトストレージ R2 |
| アップロードしたファイルのメタデータ検索 | メタデータは D1 に、ファイルの内容は R2 に保存する構成 |
| サイトを利用しているワークスペースメンバーを識別する必要がある内部サイト | ワークスペースでの認証に基づくユーザー識別 |
| 一般ユーザー向けのサインインや外部の ID プロバイダーの利用 | 認証機能を備えたサイト |
選択したテーマやバナーを閉じたかどうかといった一時的な表示状態には、永続ストレージを依頼しないでください。公開後のサイトでも保持されることをユーザーが期待するプロダクトデータには、永続ストレージを依頼してください。
ChatGPT でのサインインの追加
公開サイトは誰でも閲覧できる状態のまま、訪問者が必要に応じて ChatGPT でサインインできるように設定できます。サインインすると、進捗の保存、表示内容のパーソナライズ、個人に紐づくレコードの管理など、ユーザーの識別が必要な機能を利用できます。ワークスペース限定のサイトでは、すでに ChatGPT のユーザー情報に基づいて共有設定が適用されています。
Sites にサインイン機能の追加を依頼します。
サインインの仕組み
Sites は、プラットフォームが提供するパスでサインインとサインアウトを処理し、完了後に訪問者をサイトに戻します。
<a href="/signin-with-chatgpt">Sign in with ChatGPT</a>
<a href="/signout-with-chatgpt">Sign out</a>訪問者がサインインすると、Sites は次のリクエストヘッダーを通じてユーザー情報をサーバーに渡します。
oai-authenticated-user-emailには、認証済みのメールアドレスが含まれます。oai-authenticated-user-full-nameには、空でないプロフィール名が含まれる場合があります。名前は任意項目として扱い、取得できない場合はメールアドレスを使用してください。
認可の判定はサーバー側のコードで行い、姓と名を別々に渡すヘッダーには依存しないでください。
プラグインを使ったユーザーデータの取り込み
Sites では、プラグインを使って、閲覧者がそれぞれ自分で接続したアプリからデータを読み込むサイトを構築できます。たとえば課題ダッシュボードでは、自分が開くと自分の担当課題が、チームメンバーが開くとそのメンバーの担当課題が表示されます。訪問者は各自で ChatGPT を使ってサインインし、使用する接続済みアカウントと、許可するアクセス範囲を選びます。
ワークスペースでプラグインの利用を有効にし、サイトの公開範囲をそのワークスペース内に限定する必要があります。訪問者はワークスペースのメンバーである必要があり、アプリへのアクセスには各自の既存の権限を使用します。管理者は、Sites でのプラグイン利用の有効化で、プラグインごとの権限とテナントの制限を確認できます。
接続済みアプリのデータを使ったサイトの構築
- ChatGPT Work または Codex にサイトの構築を依頼します。使用するプラグインのコネクタ名と実行したい処理を伝えるか、利用できるプラグインを尋ねます。
- 実際のデータでプレビューを試します。エージェントは、サイトの構築時とプレビュー時に、あなたが利用できる接続を使用します。
- ワークスペース向けにサイトを公開し、そのリンクをチームメンバーと共有するようエージェントに依頼します。
依頼の例です。
元の文書へのリンクを表示する文書検索サイトや、チケットとメッセージをまとめたプロジェクトの概要ページも作成できます。
データの読み込み
ページの読み込み時に、Sites は訪問者自身の接続と権限を使って、接続済みアプリからデータを取得します。キャッシュと再読み込みは Sites が管理します。手動で更新する機能が必要な場合は、ChatGPT Work または Codex に追加を依頼してください。
既定では、コネクタがカーソルを返すと、Sites は「さらに読み込む」操作で次のページを取得します。
技術リファレンス:プラグインの検出
Sites は getContext() を使って、プラグインで利用できるアクションを調べます。この関数はキャッシュされたツール名、説明、スキーマを返します。プラグインの検出結果は更新しません。
接続済みアプリでサポートされるアクションとその利用条件については、ヘルプセンターの「ChatGPT Sites の作成と利用」を参照してください。
訪問者による接続の選択
アプリと連携する機能を使うには、訪問者が ChatGPT でサインインし、サイトが要求するアプリへのアクセス権限を確認します。使用する接続済みアカウントと許可するアクセス範囲を選んでから、サイトに戻ります。サイトを共有しても、あなたの接続済みアカウントへのアクセス権は付与されません。サイトは、各訪問者がアクセスを許可したアプリからデータを取得します。
訪問者はアプリへのアクセスを許可せずにサイトを利用できますが、そのアクセスを必要とする機能は使えません。アプリを利用できない場合は、対象のワークスペースでアプリが接続され、ワークスペースの設定で利用が許可されているか確認してください。