この記事について
Today, we're launching the File Search Tool, a fully managed RAG system built directly into the Gemini API that abstracts away the retrieval pipeline so you can focus on building. File Search provides a simple, integrated and scalable way to ground Gemini with your data, delivering responses that are more accurate, relevant and verifiable.
2025年11月6日、Gemini APIにおいて、 File Search Toolが利用可能になったようです。簡単ではありますが、その機能について試してみました。
特徴
How File Search works の箇所に記載がありました。

記載内容を訳すと、以下のようでした。
-
統合された開発体験
ファイルの保存・分割(チャンク化)・埋め込み生成・コンテキストの動的注入など、RAGに必要な処理を自動で管理してくれるようです。generateContent API内で動作するため、導入が容易。 -
高性能なベクター検索
最新の Gemini Embeddingモデル が使用されており、単語の一致に頼らず意味や文脈を理解して検索し、関連する情報を正確に抽出する。 -
自動引用機能
回答中に使用されたドキュメント部分を自動で明示する引用(citation)を付与し、出典確認を容易にしている。 -
多様なファイル形式に対応
PDF、DOCX、TXT、JSON、主要なプログラミング言語ファイルなど、幅広いフォーマットをサポートしてナレッジベースを構築可能。
試してみる
事前準備として、Gemini APIキーを払い出しておく必要がありそうです。
Google AI Studioに、デモ用のアプリが用意されているようです。

APIキーをセット
Select Gemini API Key to Beginというボタンを押下し、APIキーをセットします。
Google Cloud Projectを選択すると、自動的に利用可能なAPIキーが表示されるようでした。

ファイルをアップロード
自らファイルをアップロードするか、事前に用意されているドキュメントを使用する形になりそうです。
ひとまず例として準備されているLG Washer Manualを利用してみます。
※おそらく、洗濯機の取扱説明書かと思われます。
Upload and Chatボタンを押下すると、以下のような表示がされます。




Chat with Documents
実際にチャットをしてみます。
How can I troubleshoot common issues or error codes?
(エラーコードが出た時の対処法)と聞くと、ドキュメントに基づいて回答を返してくれているようでした。

他のドキュメントでも試してみる
自らドキュメントをアップロードした場合はどうなのかも検証してみます。
令和5年版高齢社会白書(全体版)(PDF版)をアップロードして試してみます。
日本の高齢化について何が記載されている?と質問すると、うまく内容を要約して回答してくれているようでした。

どの部分から回答を導き出したか、という点も記載してくれていそうです。

Sourcesの部分を見ると、以下のようで、抽出元の箇所を確認することができました。

サポートされているファイル形式
上記に記載がありますが、幅広いドキュメント形式をサポートしているようです。

料金体系
ドキュメントをIndexに登録する時と、抽出されたドキュメントトークン(通常のコンテキストトークンとしてカウント)に課金が発生するようです。

まとめ
簡単ではありますが、 新しく発表されたFile Search Toolを試してみました。回答の根拠として引用箇所を取得してくれるのは生成内容の信頼性の確認の観点で便利だなと感じました。
PythonのSDK経由でも利用できるので(サンプルコードはこちらに記載されているようです)、RAGアプリケーションに比較的容易に組み込むことができそうです。
精度面の比較は現状できておりませんが、RAGを行う際のアプローチが増えた、という点で期待が高まりますね。
おまけ
サンプルコードを動かしてみました。なぜか私の環境だと、サンプルコードそのままだとエラーとなってしまい動きませんでした。
file_search_store_names=[file_search_store.name]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='?
以下だと動きました。
※1.前提: CloudShellで試してみました。
※2.事前にgoogle-genaiライブラリをpip install --upgrade google-genaiで最新のバージョンにアップグレードしておく必要がありました。
※3.Google Gen AI SDK documentationを参照しました。
Pythonで呼び出してみた際の実行コード
from google import genai
from google.genai import types
import time
import os
GEMINI_API_KEY = "your-api-key"
client = genai.Client(api_key=GEMINI_API_KEY)
# ファイル検索ストア作成
file_search_store = client.file_search_stores.create(
config={"display_name": "your-file-store-name"}
)
print("Created store:", file_search_store.name)
# ファイルをアップロード&インポート
operation_name = client.file_search_stores.upload_to_file_search_store(
file="path-to-your-file",
file_search_store_name=file_search_store.name,
)
print("Upload operation:", operation_name)
# インポート完了待ち
operation = client.operations.get(operation_name)
while not operation.done:
print("Waiting for import to complete...")
time.sleep(5)
operation = client.operations.get(operation_name)
print("Import completed")
# 質問を実行
response = client.models.generate_content(
model="gemini-2.5-flash",
contents="your-query-to-document",
config=types.GenerateContentConfig(
tools=[
types.Tool(
file_search=types.FileSearch(
file_search_store_names=[file_search_store.name],
)
)
]
),
)
print(response.text)
実行結果
同一階層に先ほどテストしたPDFファイルを配置し、upload_to_file_search_store( file="path-to-your-file",の部分に先ほどの令和5年版高齢社会白書(全体版)(PDF版)を指定し、
contents="高齢化の現状について教えて",として呼び出してみると、ドキュメントの抽出結果を得られました。


