はじめに
今回の記事は、Gemini API で Google検索を用いたグラウンディングを試してみる話です。
●Google 検索によるグラウンディング | Gemini API | Google AI for Developers
https://ai.google.dev/gemini-api/docs/grounding?hl=ja&lang=javascript
グラウンディングというのは、LLM の出力を検証可能な情報源(今回の場合は Google検索の結果)に結びつけて回答の正確さを高めたり、最新の情報を扱えたりする仕組みのようです。
また、リリースされたのは昨年10月だったようです。
Gemini 2.5 Flash で試す
それを、以下の記事を書いた時にも使っていた「Gemini 2.5 Flash」でやってみました。
●Gemini 2.5 Flash の情報を見てみて API からの利用を少し試す - Qiita
https://qiita.com/youtoy/items/e5bc98c12aeffd26b7bb
【余談】 検索絡みで以前試したこと
少し本題とずれるかもしれないですが、今回の内容と「検索」というキーワードで少しつながりがあるかもしれない内容を、前に試して以下の記事に書いてみています。
●Tavily Search による API経由での検索を JavaScript SDK で試す - Qiita
https://qiita.com/youtoy/items/8133a9a11fd190b8a2f0
とある背景があって、検索絡みのお試しを少しやってみていたりします。
公式情報を見てみる & 実際に試していく
まずは、もう少し公式の情報を見てみます。
Vertex AI の場合
以下は「Vertex AI」のページですが、こちらでは複数のグラウンディングの項目が記載されています。
●Grounding overview | Generative AI on Vertex AI | Google Cloud
https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/overview
書き出してみたものが以下になります。
- Grounding with Google Search
- Grounding with Google Maps in Vertex AI
- Grounding with your data
- Grounding with Elasticsearch
- Web Grounding for Enterprise
自分の場合、Gemini API をよく使うので、上記は参考程度として Gemini API を使う話の内容を見ていきます。
Gemini API の場合
Gemini API のドキュメントだと、冒頭にも掲載した以下のドキュメントが出てきました。
●Google 検索によるグラウンディング | Gemini API | Google AI for Developers
https://ai.google.dev/gemini-api/docs/grounding?hl=ja&lang=javascript
Configure Search Grounding(検索グラウンディングを構成する)
という部分などに Gemini API を利用した JavaScript のサンプルのコードもあります。
試したコードと実行結果
サンプルコードをもとにした、以下の内容を試してみることにしました。
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });
async function main() {
const response = await ai.models.generateContent({
model: "gemini-2.5-flash-preview-04-17",
// model: "gemini-2.0-flash",
contents: "直近1週間の生成AIに関する話題は?箇条書きで示して。",
config: {
tools: [{ googleSearch: {} }],
},
});
console.log(response.text);
console.log(
response.candidates[0].groundingMetadata.searchEntryPoint.renderedContent
);
}
main();
環境変数 GEMINI_API_KEY に APIキーをセットして、@google/genai - npm をインストールしてから、上記を実行します。
得られた結果は以下です。
1つ目は利用したモデルがサンプルそのままの「gemini-2.0-flash」で、2つ目は利用するモデルを「gemini-2.5-flash-preview-04-17」に変えて試したものです。
それぞれ、検索した情報を含むと思われる結果を得ることができました。
モデルの情報の参照元
なお、利用したモデルの名前に関して以下を参照しました。
●Gemini models | Gemini API | Google AI for Developers
https://ai.google.dev/gemini-api/docs/models