OpenAI Responses API 入門 (10) - File search
「Responses API」の「File search」ついてまとめました。
前回
1. File search
「File search」は「Response API」の組み込みツールの1つです。セマンティック検索とキーワード検索によってベクターストアから取得した情報をプロンプトに追加することができます。ベクターストアはあらかじめ複数のファイルをアップロードして準備しておきます。モデルはユーザー入力に応じて、ファイル検索するかしないかを決定します。

2. ベクトルストアの利用料金
ベクトルストアの利用料金は、チャンクサイズとそれに対応する埋め込みによって決まります。すべてのベクトルストアで使用される合計ストレージに基づいて料金が請求されます。
・1GB まで無料
・1GB を超えると1GB あたり 0.10 ドル/日
3. OpenAI API の準備
「Google Colab」での「OpenAI API」の準備手順は次のとおりです。
(1) パッケージのインストール。
「Responses API」と「Agent SDK」のパッケージをインストールします。
# パッケージのインストール
!pip install -U openai openai-agents(2) 環境変数の準備。
左端の鍵アイコンで「OPENAI_API_KEY」を設定してから、以下のセルを実行してください。
import os
from google.colab import userdata
# 環境変数の準備 (左端の鍵アイコンでOPENAI_API_KEYを設定)
os.environ["OPENAI_API_KEY"] = userdata.get("OPENAI_API_KEY")(3) クライアントの準備。
from openai import OpenAI
# クライアントの準備
client = OpenAI()4. ベクトルストアの作成
(1) ベクトルストアの作成。
# ベクトルストアの作成
vector_store = client.vector_stores.create(
name="My Vector Store",
)
print(vector_store.id)(2) ファイルをColabにアップロード。
今回は、「OpenAI GPT-4.5 System Card」のPDFをアップロードしました。

(3) ファイルをOpenAIのサーバにアップロード。
# ファイルをOpenAIのサーバにアップロード
client.vector_stores.files.upload_and_poll(
vector_store_id=vector_store.id,
file=open("gpt-4-5-system-card-2272025.pdf", "rb")
)アップロードしたファイルはDashboardのStorageでも確認できます。

5. File searchの実行
(1) メッセージリストの準備。
# メッセージリストの準備
messages = [
{
"role": "user",
"content": "GPT-4.5の性能について教えて。",
}
](2) 推論の実行。
# 推論の実行
response = client.responses.create(
model="gpt-4o",
tools=[
{
"type": "file_search",
"vector_store_ids": [vector_store.id]
}
],
input=messages,
)
print(response.output_text)GPT-4.5は、より広範な知識ベースとユーザーの意図に対する整合性の強化、感情的な知性の向上を特徴としています。具体的には、執筆、プログラミング、実践的な問題解決において、より自然なインタラクションを可能にし、誤情報(ハルシネーション)の発生が減少しています。
また、GPT-4.5は、高度なステアラビリティ(操作性)と、人間の意図やニーズをより深く理解することで、創造的な執筆やデザインの手助けをする能力に優れています。
安全性についても、GPT-4.5は従来のモデルと比較して大幅な改良が加えられていることが報告されています。リスク評価では、中リスクとして分類されており、特にC解 Persuasion(説得)において優れた性能を示しています。6. 出力と引用
「File search」を使用したモデルの出力には、次の情報が含まれます。
・file_search_call : 検索呼び出しID を含む出力項目。
・message : 以下を含む出力項目
・message.content[0].text : 出力テキスト
・message.content[0].annotations : 引用URLのリスト
(1) 出力と引用の確認。
# 出力と引用の確認
for event in response.output:
print(event)ResponseFileSearchToolCall(
id='fs_67d6c6b4722c8191ba52063f1335fa5b0ce16a9a934dfca4',
queries=[
'GPT-4.5の性能について教えて',
'GPT-4.5 performance',
'GPT-4.5 capabilities',
'how does GPT-4.5 perform',
'GPT-4.5 features'
],
status='completed',
type='file_search_call',
results=None
)
ResponseOutputMessage(
id='msg_67d6c6b7c9808191910be46eca1ecad50ce16a9a934dfca4',
content=[
ResponseOutputText(
annotations=[
AnnotationFileCitation(
file_id='file-FYBCZaopwF7Sujt946yE86',
index=130,
type='file_citation',
filename='gpt-4-5-system-card-2272025.pdf'
),
AnnotationFileCitation(
file_id='file-FYBCZaopwF7Sujt946yE86',
index=212,
type='file_citation',
filename='gpt-4-5-system-card-2272025.pdf'
),
AnnotationFileCitation(
file_id='file-FYBCZaopwF7Sujt946yE86',
index=326,
type='file_citation',
filename='gpt-4-5-system-card-2272025.pdf'
),
AnnotationFileCitation(
file_id='file-FYBCZaopwF7Sujt946yE86',
index=326,
type='file_citation',
filename='gpt-4-5-system-card-2272025.pdf'
)
],
text='''
GPT-4.5は、より広範な知識ベースとユーザーの意図に対する整合性の強化、
感情的な知性の向上を特徴としています。具体的には、執筆、プログラミング、
実践的な問題解決において、より自然なインタラクションを可能にし、
誤情報(ハルシネーション)の発生が減少しています。
また、GPT-4.5は、高度なステアラビリティ(操作性)と、
人間の意図やニーズをより深く理解することで、
創造的な執筆やデザインの手助けをする能力に優れています。
安全性についても、GPT-4.5は従来のモデルと比較して
大幅な改良が加えられていることが報告されています。
リスク評価では、中リスクとして分類されており、
特にC解 Persuasion(説得)において優れた性能を示しています。
''',
type='output_text'
)
],
role='assistant',
status='completed',
type='message'
)7. サポートファイル
サポートファイルは、次のとおりです。

8. 制限事項
制限事項は、次のとおりです。
・プロジェクトは、すべてのファイルの合計サイズが 100 GB に制限されています。
・ベクトルストアは、合計 10,000 ファイルに制限されています。
・個々のファイルは最大 512 MB です (ファイルあたり約 500 万トークン)
