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

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

2026年08月2日 読了目安:約18分 著者:AIFRONTNEWS編集部 File Search / RAG / Responses API

自分のPDFに「この表の意味は?」と聞いたら、そのページを根拠に答えてくれる小さなWebアプリを、あなたも作ってみませんか。

この回では、架空のサンプルPDFをOpenAIのベクトルストアに登録し、Responses APIとFile Searchで探してから答える“最初の回答”をブラウザに表示します。

準備から安全なAPIキー管理、Codexへの依頼、動作確認、直し方までを順に進めます。

この回のゴール

  • できること:PDFを1つ登録し、File Searchの根拠を使ってResponses APIが作る回答をブラウザに表示。
  • 用意するもの:VS Code、OpenAI Codex、OpenAIアカウントとAPIキー、Node.js LTS、普段使うブラウザ。
  • 大切な約束:APIキーやベクトルストアIDはサーバーだけで扱い、画面やコード例に実値を書かない。
最初に知っておきたい用語
  • RAG:質問に答える前に、関連する資料を探してから文章を作る仕組み。
  • File Search:OpenAIが用意する資料検索の道具。登録先としてベクトルストアを使う。
  • ベクトルストア:資料を“意味”で探せるように整理して置く保管場所。
  • Responses API:見つけた資料の断片を根拠に、回答文を作るAPI。
  • APIキー:サービスを使うための秘密の鍵。人目に出さない。
  • VS Code:コードを書く編集アプリ。拡張機能で機能を足せる。
  • Codex:VS Code内でコード作成を手伝うAI。日本語で依頼できる。

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

この回では、1つのPDFを登録して、File Searchで根拠を取り出し、Responses APIで作った回答をブラウザに表示します。
たとえるなら、1冊のノートにしおりを付け、質問に合うページを開いて、その内容を見ながら説明する流れです。技術的には、PDF→ベクトルストア→検索→回答生成→表示を最短距離で通します。

2. 完成イメージ

RAGミニアプリのUIイメージ:質問欄と回答欄と参照表示
Photo by Puscas Adryan on Unsplash

完成後は、机の上に「質問メモ」「答えの紙」「参照したページの付せん」を並べるイメージです。アプリでは次のように見えます。

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

ベクトルストアは、本棚のしおりの束のようなものです。似た内容を素早く見つけます。正確には、文章を数の並び(ベクトル)に変えて、近い意味を探す仕組みです。
File Searchは、PDFから必要な部分を探す係。Responses APIは、見つけた根拠を元に文章を作る係です。
APIキーは金庫の鍵。コードや画面に直接置かず、サーバーの環境変数だけで使います。料金・対応モデル・上限は変わる可能性があるため、OpenAIの公式ドキュメントとPlatformの画面で都度確認してください(本記事末の出典参照)。

4. 対象読者

初心者向けRAG実践記事の対象読者イメージ
Photo by Chris Ried on Unsplash

RAGの準備を終え、まず1つのPDFで動く形にしたい人向けです。VS CodeでCodexを試したい初心者を想定し、約60分で到達を目指します。
前回の準備がまだの人は、こちらを先に読んでください:中学生にも分かる 自分の資料に答えるAI検索アプリの作り方 #1

5. 必要なものと入れ方

ここでは、今回使う道具を、何のためか→用意するもの→入れ方→最初の設定→できたか確認、の順で説明します。家に新しい家電を置くときに、場所と配線を決めて電源を入れるのと同じ流れです。

VS Code

  1. これは何?:ノートと鉛筆が一つになった作業机。ファイルを並べて編集できます。
  2. 用意するもの:インターネット接続、Windows/macOSのPC、メールで受け取れるアカウント。
  3. 入れ方・開き方:公式のダウンロードページからインストールし、案内に従って起動します。
  4. 最初の設定:日本語表示やテーマは好みでOK。作業用の空フォルダを1つ作り、VS Codeで「フォルダを開く」を選びます。
  5. できたか確認:「エクスプローラー」に開いたフォルダ名が表示され、左右に編集画面が見えればOK。

OpenAI Codex(VS Code拡張)

  1. これは何?:隣で相談に乗ってコードを書いてくれる家庭教師。
  2. 用意するもの:ブラウザ、OpenAIアカウント(ChatGPTアカウントでも可)、サインイン用のメール。
  3. 入れ方・開き方
    • VS Code左側の四角いアイコン「拡張機能」を開く。
    • 検索欄に「Codex」と入力する。
    • OpenAIのCodex拡張を選び、「インストール」を押す。
    • 画面の案内に従ってサインインする。
    • 左側または下部に現れる「Codex」のチャット欄を開く。
  4. 最初の設定:作業フォルダを開いた状態で、Codexの設定に「対象フォルダ」が合っているか確認します。
  5. できたか確認:チャット欄に「こんにちは」と送って、応答が返れば有効です。

OpenAI Platform(Responses API+File Search)

  1. これは何?:AIに質問して答えを作るキッチンと、材料の棚(ベクトルストア)。
  2. 用意するもの:OpenAIアカウント、APIキー。
  3. 入れ方・開き方:ブラウザでアカウントにサインインし、必要に応じてAPIキーを発行します(発行手順は出典「OpenAI API keys」を参照)。
  4. 最初の設定:料金・モデル・上限は必ずPlatformの画面で最新を確認。利用には費用が発生する場合があります。
  5. できたか確認:APIキーが作成され、控えを安全に保存できていれば準備完了。

Node.js LTS

  1. これは何?:アプリを手元で動かすコンロ。サーバーの動作に使います。
  2. 用意するもの:Windows/macOSに合うインストーラーを公式から入手。
  3. 入れ方・開き方:インストーラーの案内に従ってインストールし、VS Codeの統合ターミナルを開けることを確認します。
  4. 最初の設定:特になし。プロジェクト作成はCodexに任せます。
  5. できたか確認:VS CodeのターミナルにNode.jsとnpmのバージョンが表示されればOK(表示方法はCodexに聞きます)。

ブラウザ

  1. これは何?:出来上がった料理を盛り付けて見るお皿。アプリの画面を開きます。
  2. 用意するもの:普段使っているChrome/Edge/Safari等。
  3. 入れ方・開き方:特になし。後でURLを開きます。
  4. 最初の設定:ポップアップブロックや拡張は今回は不要です。
  5. できたか確認:URLを開いて画面が表示されればOK。

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

フロントとサーバー構成、ベクトルストアの流れの図
Photo by Hal Gatewood on Unsplash

家の間取りを先に決めると片付けやすいのと同じで、構成を先に共有します。

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

目的と流れ

作業机(VS Code)と家庭教師(Codex)を使える状態にします。ここが整うと、以降はプロンプト中心で進められます。

読者が行う操作

終えたら確認

つまずいたら

拡張が見つからない、応答がない場合は、ネット接続やサインイン状態を見直し、Codexのエラーメッセージを確認してください。

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

APIキーを安全に保管するイメージ図
Photo by Towfiqu barbhuiya on Unsplash

目的と流れ

APIキーをサーバーだけで読めるようにします。合い鍵を家の外に置かないのと同じ考え方です。

読者が行う操作

Codexに頼むこと

.envに保存し、gitignoreで保護し、サーバー側だけで読み込む設計を実装するよう後の手順で依頼します。フロントへは送らない方針です。

終えたら確認

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

ここからが本番。Codexに、今回の回だけの要件をまとめて依頼します。家づくりの設計図を手渡すイメージです。下のボックスをコピーして、VS Code内のCodexチャットに送ります。

Codexに送るプロンプト

今回の回「#2: PDFを登録して最初の質問に答える」の最小アプリを、前回の構成を壊さずに作ってください。次を満たしてください。

- 目的:架空のサンプルPDFを1つサーバー側で自動生成し、OpenAIのベクトルストアに登録。Responses API+File Searchで検索して根拠付きの“最初の回答”をブラウザに表示。
- 技術:Node.js(Express 等)でサーバー、フロントはシンプルなHTML/JS。OpenAI公式SDKを使い、Responses APIのtoolsでFile Searchを有効化。Assistants APIは使わず、Responses APIを主実装にする。
- 安全:APIキーとベクトルストアIDはサーバーの環境変数で管理。.envに保存し、gitignoreで保護。ブラウザへ返さない。APIの生レスポンスやキーを画面に出さない。
- サンプルPDF:サーバー起動時または初回アクセス時に、サンプル内容(会社名や個人情報に依らない架空の文章)でPDFを自動生成し、ベクトルストアに登録。登録が「処理中」「利用可能」を判別できる状態管理を実装。
- エンドポイント:
  1) /api/status ベクトルストアの状態(未作成/処理中/利用可能)を返す(秘密情報は返さない)。
  2) /api/ask 質問文字列を受け取り、Responses API+File Searchで回答を生成。回答文と引用のメタ情報(File Searchが返す参照ファイル名等)だけを返す。根拠本文の扱いは公式ガイドに従い、過度な生データを返さない。
- フロント:
  - 入力欄、送信ボタン、回答欄、「処理中/利用可能」の表示。「最初の回答」までの最小UI。
  - 回答の下に参照元(File Searchが返すファイル名)を一覧表示。ページ番号などAPIが返さない情報は推測で作らない。
- モデル・上限:固定値にせず、設定ファイルで変更できるように。最新版はOpenAI公式ドキュメントで確認する注記をコードコメントに。
- 依頼:必要なファイル一覧、実装手順、起動・確認方法、失敗時のチェックリストをREADMEにまとめる。ユーザーに手入力のコマンドやIDを求めず、VS Codeのタスクやnpm scriptを用意。疑問点があれば作業前に質問してから進めてください。

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

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

ブラウザでRAGアプリを動かして確認する様子
Photo by Campaign Creators on Unsplash

目的と流れ

アプリを起動し、PDF登録の完了を待ってから質問して、根拠付きの最初の回答を表示します。炊飯器の「炊飯中」から「保温」に変わるのを待ってよそう感覚です。

読者が行う操作

ログの見方

CodexがREADMEに書いた「起動ログで見るべき行」を参考に、ベクトルストア作成・ファイル登録・索引化完了の順でメッセージを確認します。

終えたら確認

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

目的と流れ

回答が浅い、遅い、根拠が足りない場合に、Codexへ改善を依頼します。料理の塩加減を少しずつ調整するイメージです。

追加プロンプト例

12. よくあるエラー

よくあるエラーと対処のチェックリスト
Photo by David Pupăză on Unsplash

13. 次に試すこと

14. まとめ

RAG最小構成のまとめと今後の拡張
Photo by Octavian-Dan Craciun on Unsplash

最小構成で、根拠付きの“最初の回答”まで到達しました。ここまでの設計は、安全に拡張できます。次回以降は、登録や表示の精度と体験を少しずつ育てます。

次は、より丁寧な参照表示や操作性を整える回へ進みます。

参考文献・出典