◉ AI×ビジネス活用 / 2026年08月

中学生にも分かる 自分の資料に答えるAI検索アプリの作り方 #6

2026年08月4日 読了目安:約17分 著者:AIFRONTNEWS編集部 File Search / OpenAI API / RAG

自分の資料に答えるAI検索アプリ、いよいよ公開できますか?

この回では、保存されたファイルやベクトルストアを安全に「消せる」管理機能と、料金・認証・容量・ログを事前に点検するチェックを加えます。

準備からCodexへの依頼、動作確認、公開前チェックまでを一つひとつ画面操作でたどります。

この回のゴール

  • できること:アプリ内のアップロード一覧と削除、OpenAI側(File Search/ベクトルストア)の削除、公開前チェックの画面を追加する。
  • 用意するもの:VS Code、OpenAI Codex拡張、OpenAIアカウントとAPIキー(環境変数で管理)、OpenAIダッシュボード。
  • 大切な約束:APIキーやIDの実値を画面やコードに書かない。匿名アップロードのまま公開しない。料金や仕様は変わるため公式ページで確認する。
最初に知っておきたい用語
  • RAG:質問に関係する資料を先に探し、その内容を見ながらAIが答える仕組み。
  • File Search:OpenAIが提供する資料検索の機能。ベクトルストアに登録したファイルを探して使う。
  • ベクトルストア:資料を意味で探せるように数値の形で整理して保管する場所。
  • Responses API:AIに質問を送り、回答を受け取るためのOpenAIのAPI。
  • 環境変数:パソコンの中に秘密をしまう引き出しのような設定。コードに鍵を書かないために使う。
  • 認証:利用者が誰かを確かめる仕組み。ログインのこと。
  • 監査ログ:いつ誰が何をしたかを後から確認できる記録。
  • ソフトデリート:見えなくするが完全には消さない削除方法。元に戻せるようにするために使う。

1. この記事でできること

今回は「消せる設計」と「公開前チェック」を最小構成で追加します。
前回までは、資料の登録・質問・回答・参照元表示ができました。今回は、保存データの一覧と削除、料金・認証・容量・ログの点検を足します。
イメージは、家の片づけで「棚のラベル付けとゴミ出し日を確認する」に近いです。たとえ話ですが、実際にはOpenAIのFile Searchとベクトルストアの削除APIを正しく呼び分けます。

2. 完成イメージ

日常の例えで言うと、学級の掲示板に「持ち物リスト」と「忘れ物の回収箱」を置く感じです。リストで状況を見て、箱から要らない物を回収します。技術的にはアプリ側の表示削除とOpenAI側のストレージ削除を分けます。

3. 最初に知っておきたいこと

たとえば家計簿では「食費」「光熱費」「日用品」を分けますね。ここでも「モデル」「ツール」「保存」を分けて考えます。事実の確認は公式ドキュメントとダッシュボードで行います。

4. 対象読者

RAGアプリ公開前点検をしたい初心者向けガイド
Photo by Thomas Bormans on Unsplash

「配布前の最終チェックリストを作る」感覚です。配る前に中身をもう一度点検します。

5. 必要なものと入れ方

VS Code

  1. これは何?:ノートのようにファイルを開いて編集できる作業机です。
  2. 用意するもの:インターネットに繋がるPC、Webブラウザ。
  3. 入れ方・開き方:公式サイトからダウンロードし、案内に従ってインストール。アプリを起動します。
  4. 最初の設定:左の四角いアイコン(拡張機能)を開けるようにしておきます。
  5. できたか確認:「Visual Studio Code」というタイトルと、左にアイコンの列が見えたら成功です。

OpenAI Codex 拡張

  1. これは何?:作りたいものを日本語で伝えると、コードを提案・修正してくれる相棒です。
  2. 用意するもの:OpenAIのアカウント、サインイン用のメール。
  3. 入れ方・開き方:VS Codeの拡張機能アイコンを押し、検索欄に「Codex」と入力し、OpenAIのCodex拡張を選んで「インストール」。インストール後、サイドバーのCodexアイコンを押してチャット欄を開きます。
  4. 最初の設定:案内に従ってサインインします。Chat欄に「こんにちは」と送れることを確認します。
  5. できたか確認:右側にCodexのチャットが開き、入力欄が表示されれば成功です。

OpenAI Platform(ダッシュボード)

  1. これは何?:料金や使用量、ファイル管理を確認する管理画面です。
  2. 用意するもの:OpenAIアカウント、Webブラウザ。
  3. 入れ方・開き方:Webブラウザで開き、アカウントでサインインします。
  4. 最初の設定:UsageやFiles、Playgroundなどのメニュー位置を把握します。
  5. できたか確認:Usageでグラフ、Filesでファイル一覧が見えればOKです。

Node.js(今回の実行環境)

  1. これは何?:ブラウザの外でJavaScriptを動かすためのエンジンです。
  2. 用意するもの:インストーラーを動かせるPC。
  3. 入れ方・開き方:公式サイトからLTS版をダウンロードしてインストール。VS Codeでプロジェクトフォルダを開きます。
  4. 最初の設定:プロジェクトを前回の続きとして開きます。
  5. できたか確認:Codexに「依存関係を確認して」と伝え、エラーがないことを確認します。

工具箱をそろえるイメージです。ドライバー(VS Code)、補助ロボ(Codex)、倉庫の管理盤(OpenAI Platform)を準備します。

6. エージェントと作るものの全体像

管理ページと削除API連携の全体像フローチャート
Photo by Hanna Morris on Unsplash

今回の最小成果物は次の3点です。

流れは「アップロード→索引→検索→削除要求→OpenAI側削除」。
権限は管理者のみが操作し、監査ログで誰が何をしたかを残します。
たとえれば、図書室の本(ファイル)を台帳(一覧)で見て、廃棄票(削除)を切り、倉庫(OpenAI側)からも確実に回収します。

7. 手順1: ツールを準備する

目的と全体の流れ

VS Codeで前回までのプロジェクトを開き、Codexと会話できる状態にします。

読者が行う画面操作

成功の見分け方

つまずいたら

Codexのサインイン画面で止まる場合は、OpenAI Platformにブラウザでサインインできるか先に確認します。

8. 手順2: APIキーを安全に用意する

APIキーを環境変数で安全に扱う設定
Photo by FlyD on Unsplash

目的

APIキーを環境変数で管理し、コードや画面に出さないようにします。開発・本番のキーは分け、上限やアラートも設定します。

読者が行う画面操作

成功の見分け方

つまずいたら

キーの貼り付けは行いません。必要ならCodexに「環境変数から読む仕組みとダミー値で動作確認できるように」と伝えます。

9. 手順3: エージェントにアプリを作ってもらう

目的

管理ページの追加、ファイル一覧・削除、ベクトルストア削除、認証と上限、監査ログ、公開前チェック表を最小構成で実装します。

このボックスをコピーして、VS Code内のCodexチャットに送ります

Codexに送るプロンプト

目的:RAGアプリ(前回までのプロジェクト)に「アップロード一覧・削除」「OpenAI側のファイル/ベクトルストア削除」「公開前チェック」機能を最小構成で追加してください。
必ず守ること:
- OpenAI Responses APIとFile Searchを使う。Assistants API主体の実装にはしない。
- APIキー、ベクトルストアIDなどの秘密はサーバー側の環境変数のみで管理。.envにプレースホルダーを用意し、実値は書かせない。ブラウザやGitに流さない。
- アプリ側の削除(表示/自前DB)とOpenAI側の削除(Files/ベクトルストア)を明確に分け、両方の状態を画面で確認できるUIを用意する。
- 管理ページ(/admin など)を追加し、管理者のみアクセス可にする。認証は簡易ログインでもよいが、Cookieセッションで保護する。
- 「アップロード一覧」では、アプリ側の登録記録とOpenAI側のFiles/ベクトルストアのIDを突き合わせて表示する。
- 「削除」操作は2段階:まずアプリ側をソフトデリート→次にOpenAIのFiles削除APIとベクトルストア削除APIを順に呼ぶ。成功/失敗を監査ログに記録。
- 監査ログ:時刻・操作者・対象ID・結果(成功/失敗と理由)をサーバー側に保存。本文やAPIキーは残さない。
- 認証必須化:匿名アップロード不可。ユーザーごとにデータ分離(自分の資料だけ見える)。
- 容量/回数上限:ユーザーごとにアップロード容量(月間合計MB)と質問回数(日次)を設定し、超えたら丁寧なメッセージ。
- 公開前チェック表:画面に(1)料金確認リンク(OpenAI Pricing)(2)Usageダッシュボードへの導線(3)環境変数の検査結果(設定済/未設定)(4)認証の有無(有/無)(5)ログ有効(有/無)(6)上限値の現在値 を一覧表示。
- 前回までの機能(アップロード、質問、回答、参照元表示)を壊さない。必要なら既存UIを最小の変更で。
- 資料は安全なダミーサンプルのみを使う。個人情報や第三者の著作物は使わない。
- 実装前に、わからない点(既存のフォルダ構成や使用フレームワークなど)があれば日本語で質問してから進める。
必要なファイル:ルーティング、コントローラ、ビュー(管理ページ)、認証・上限制御、監査ログ保存、File Searchの削除呼び出し、.envテンプレート、READMEの動作確認手順。
動作確認:
1) ダミーファイルをアップロード→一覧に表示され、OpenAI側のIDも見える。
2) 削除を実行→アプリ側がソフトデリートされ、OpenAI側のFiles/ベクトルストアも削除される。結果が監査ログに記録される。
3) 公開前チェック表にすべての項目が表示され、リンクが動く。
失敗時:画面に理由を表示し、質問回数や容量の上限に達した場合は再開時刻や対処を提案して。

Codexが作るものと、あなたが確認する点

10. 手順4: 動かして確認する

アップロードから削除までの動作確認フロー
Photo by Alvaro Reyes on Unsplash

目的

ダミーファイルのアップロードから削除までを通しで試し、OpenAI側でも消えたことを確かめます。料金の増分はダッシュボードで見ます。

読者が行う画面操作

成功の見分け方

つまずいたら

一覧にIDが出ない場合は、Codexに「索引時に保存するIDの項目名と保管場所を教えて」と質問します。

11. 手順5: エージェントと直す

目的

権限や削除の失敗を再現し、Codexに修正を依頼します。

読者が行う画面操作

Codexに送る内容

「この操作で403と出た」「このIDで削除に失敗し、監査ログのメッセージはこう」と、画面に見える現象だけを伝えます。秘密情報は送らないようにします。

成功の見分け方

12. よくあるエラー

RAG公開時のよくあるエラーと対処
Photo by حامد طه on Unsplash

権限エラー(401/403)

存在しないファイルID/ベクトルストアID

レート制限・費用上限

13. 次に試すこと

14. まとめ

RAGアプリ公開前の最終まとめ
Photo by Glenn Carstens-Peters on Unsplash

公開の鍵は「消せる設計」と「確認できる運用」です。小さく作って安全に広げましょう。
前回の機能を保ちつつ、今回は保存データの削除と公開前チェックを追加しました。
続けて試す場合は、前回の記事も復習に役立ちます:中学生にも分かる 自分の資料に答えるAI検索アプリの作り方 #5

出典・参考