DifyでOpenAI Web search機能を使ってみた

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3764962/b0af3eb0-ace0-4b64-b11b-ad9da3fc67a5.png)


## １．はじめに

OpenAIが2025年3月に公開したGPT-4o Search PreviewとGPT-4o mini Search Previewは、大規模言語モデルに直接Web検索機能を組み込んだ画期的なモデルです。この記事では、これらの新しいモデルの特徴、料金体系、Difyでの実装方法、そして実際の使用経験について詳しく解説します。DifyではOpenRouterを通じて利用可能ですが、最新情報の精度には課題があることも明らかになりました。

## ２．Web searchとは

Web Searchとは2025年3月12日にOpenAI公開した「[エージェント開発のための新たなツール](https://openai.com/ja-JP/index/new-tools-for-building-agents/)」の記事のなかで「Web検索ツールとして紹介されたGPT-4oのファインチューニングモデルです。

Web検索についてはgpt-4o及びgpt-4o-miniモデルでもファンクションコールとして利用できるようですが、この記事で発表された gpt-4o-search-preview 、gpt-4o-mini-search-preview という

モデルは驚くことに大規模言語モデル自体がWeb検索をしてくれるモデルとなっています。

素晴らしいモデルにも関わらず、殆ど告知もされてなく、「[エージェント開発のための新たなツール](https://openai.com/ja-JP/index/new-tools-for-building-agents/)」に記載の以下の説明だけです

```
Web 検索ツールは Responses API を利用するすべての開発者の皆さまにプレビュー版として提供されます。
また、Chat Completions API を通じてファインチューニングされた検索用モデルである gpt-4o-search-preview および gpt-4o-mini-search-preview に直接アクセスすることも可能です。
料金は GPT‑4o 検索が 1,000 クエリあたり 30 US ドル、GPT‑4o mini 検索が 1,000 クエリあたり 25 US ドルとなります。ぜひ 
Playground⁠（新しいウィンドウで開く） で Web 検索をお試しいただき、さらに詳しい情報はこちら⁠（新しいウィンドウで開く）をご覧ください。
```

もう少し詳しい説明を求めてOpenAIのサイトを検索したら「Web search」というページに以下の記載がありました

```
-----翻訳-----
Web search（ウェブ検索）
応答を生成する前に、モデルが最新の情報をウェブから検索することを可能にします。
Chat Completions APIを使用することで、ChatGPTの検索機能で使用される微調整されたモデルとツールに直接アクセスできます。

Chat Completionsを使用する場合、モデルは常にクエリに応答する前にウェブから情報を取得します。web_search_previewをgpt-4oやgpt-4o-miniなどのモデルが必要な時のみ呼び出すツールとして使用するには、Responses APIに切り替えてください。

現在、Chat CompletionsでWebサーチを使用するには、以下のいずれかのモデルを使用する必要があります：

gpt-4o-search-preview
gpt-4o-mini-search-preview
-----原文-----
Web search
Allow models to search the web for the latest information before generating a response.
Using the Chat Completions API, you can directly access the fine-tuned models and tool used by Search in ChatGPT.

When using Chat Completions, the model always retrieves information from the web before responding to your query. To use web_search_preview as a tool that models like gpt-4o and gpt-4o-mini invoke only when necessary, switch to using the Responses API.

Currently, you need to use one of these models to use web search in Chat Completions:

gpt-4o-search-preview
gpt-4o-mini-search-preview
```

どうやらOpenAI側でファンクションコールの「web_search_preview」を実装してくれているモデルとしてgpt-4o-search-preview、gpt-4o-mini-search-previewが位置づけられているようです。

## ３．GPT-4o Search Previewとは

OpenAIの公式ドキュメントに「[GPT-4o Search Preview](https://platform.openai.com/docs/models/gpt-4o-mini-search-preview)」、「[GPT-4o mini Search Preview](https://platform.openai.com/docs/models/gpt-4o-search-preview)」というドキュメントがありますので、そこで行われているGPT-4oとの価格比較などを引用します。

### 3.1. GPT-4o Search Preview

以下が「[GPT-4o Search Preview](https://platform.openai.com/docs/models/gpt-4o-mini-search-preview)」ページの概要説明の日本語訳です。

```
GPT-4o Search Previewは、Chat Completions APIを使用して[Web検索](https://platform.openai.com/docs/guides/tools-web-search?api-mode=chat)クエリを理解して実行するように訓練された特殊なモデルです。
トークンの手数料に加えて、Web検索クエリにはツールコールごとに手数料がかかります。詳細については、[価格](https://platform.openai.com/docs/pricing)ページをご覧ください。
```

![gpt-4o-search-preview-price.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3764962/76cca9e1-e4b0-4835-bde4-6aa9eb41bd4a.png)

### 3.2. GPT-4o mini Search Preview

以下が「[GPT-4o mini Search Preview](https://platform.openai.com/docs/models/gpt-4o-search-preview)」ページの概要説明の日本語訳です。

```
GPT-4o mini Search Previewは、Chat Completions APIを使用して[Web検索](https://platform.openai.com/docs/guides/tools-web-search?api-mode=chat)クエリを理解し、実行するように訓練された特殊なモデルです。
トークンの手数料に加えて、Web検索クエリにはツールコールごとに手数料がかかります。詳細については、[価格](https://platform.openai.com/docs/pricing)ページをご覧ください。
```

### 3.3. Web Search

「[価格](https://platform.openai.com/docs/pricing)」ページのBuilt-in toolsにWeb Searchツールの価格が記載されていて、GPT-4o Search-previewでは30.00USD～50.00USD/1,000回検索、GPT-4o mini Search Previewでは27.50USD～30.00USD/1,000回検索でした。高いのか安いのかよくわからないですね。

![gpt-4o-mini-search-preview-price.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3764962/96c701ab-51f8-4a3b-b7cc-5393d275589e.png)

## ４．どこから使えるのか？

OpenAIのモデルですので当然OpenAI APIでは利用できます、API利用は少し面倒なので、PlayGround感覚でDifyで実装するためにこちらのモデルがどのルートで使えるのかを調べてみました。

私はOpenAI API、Azure OpenAI、OpenRouterを従量課金で契約しているので、今回はこの３つのルートで2025年4月30日時点の情報で比較します。

なお、DifyではLLMを多数持つモデルプロバイダーを考慮して、モデルの追加は「セットアップ」と「モデルを追加」という２つの方式が使えます。
今回はこの２つの方法でgpt-4o-search-preview、gpt-4o-mini-search-previewモデルが追加できるかを調査し**結論としてモデルプロバイダーをOpenRouterルートにすると利用できることが分かりました。**

| No | モデルプロバイダー | Version | 調査日 | APIのサポート | セットアップ(*1) | モデルを追加 |
| --- | --- | --- | --- | --- | --- | --- |
| 1 | OpenAI | 0.0.22 | 2025年4月30日 | ○ | ×：gpt-4o-search-preview、gpt-4o-mini-search-previewともにデフォルトには存在していません。 | ×：gpt-4o-search-preview、gpt-4o-mini-search-previewともに「Base model gpt-4o-search-preview not found、「Base model gpt-4o-mini-search-preview not found」エラーで登録できず |
| 2 | Azure OpenAI | 0.0.14 | 2025年4月30日 | × | ー | ー |
| 3 | OpenRouter | 0.0.8 | 2025年4月30日 | ○ | ×：gpt-4o-search-preview、gpt-4o-mini-search-previewともにデフォルトには存在していません。 | **○：gpt-4o-search-preview、gpt-4o-mini-search-previewともに登録可能** |

(*1)念のため[langgenius/dify-official-plugins](https://github.com/langgenius/dify-official-plugins)のGitHubサイトでgpt-4o-search-preview、gpt-4o-mini-search-previewを検索してみましたが、issuesなども上がっていませんでしたので「セットアップ」でデフォルトのモデルとして表示されることは無さそうです。
(*2) Azure OpenAIでのサポートはMS LearnのQuestionに「[When the OpenAI gpt-4o-search-preview model will be available on Azure](https://learn.microsoft.com/en-us/answers/questions/2261004/when-the-openai-gpt-4o-search-preview-model-will-b)」というQ&Aが投稿されており、このなかでMicrosoftは「近い将来に利用可能になる」と書き込みを2025年4月25日にしています。

## ５．使ってみる

Difyで基本的なチャットフローと作成してgpt-4o-search-previewを言語モデルにして「アメリカの大統領は誰ですか？」と質問してみましたが
GPT-4oのカットオフデートは2023年10月ですので、通常のGPT-4oではそれ以降の時事ネタには答えられないのですが、gpt-4o-search-previewでは

しっかり答えます。
但し、「大谷翔平の子供の性別は？」など2025年4月19日に発表された情報については

「2024年12月29日、大谷翔平選手は妻・真美子さんの妊娠を発表しました。その際、エコー写真とともにピンク色のベビー服や水色のベビーシューズの画像を投稿しましたが、子供の性別については明言されていません。 ([daily.co.jp](https://www.daily.co.jp/mlb/2024/12/29/0018494402.shtml?utm_source=openai))一部では、ピンク色のベビー服から女の子ではないかとの推測もありますが、公式な発表はなく、現時点で性別は公表されていません。」

などとお茶を濁してきます。
Brave Searchで検索してRAGをした方がまだ精度は高いかなぁという印象です。

![dify-gpt-4o-search-preview.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3764962/0a808097-84f0-45d1-9598-b6da8fc199ff.png)

Brave Searchでも検索してみました
「大谷翔平選手の子供の性別については、現時点では明かされていないようです。最近の報道によれば、彼の妻・真美子さんが出産間近であることは伝えられていますが、性別に関する情報は公開されていないようです。詳細な情報が待たれます。」
あれ？...
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3764962/317ae7d4-40ea-43a7-809a-db96dc123b62.png)

因みにFelo.aiではFacebookなどの情報も参照して「女の子」と答えています。恐るべしAI検索エンジン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3764962/b5fb85a6-bcb5-4b48-a32e-33c893f2c8f1.png)



## ６．まとめ

OpenAIの新しいWeb検索機能であるGPT-4o Search PreviewとGPT-4o mini Search Previewについて、Difyでの実装と利用可能性を検証しました。
これらのモデルは、最新のウェブ情報を取得して応答を生成する特殊なモデルで、1,000クエリあたり27.50〜50.00ドルの料金で利用可能です。

調査の結果、2025年4月30日時点では、OpenRouterを通じてのみDifyでの実装が可能であることが判明しました。
OpenAI APIでは登録エラーが発生し、Azure OpenAIではまだサポートされていません。

実際の使用テストでは、2023年10月以降の情報も取得できることが確認できましたが、非常に最近の情報（数週間以内）については精度に課題があることが分かりました。
現時点では、RAG（Retrieval-Augmented Generation）など他の手法の方が、より正確な情報提供が可能かもしれません。

## ７．参考URL

https://openai.com/ja-JP/index/new-tools-for-building-agents/

https://platform.openai.com/docs/guides/tools-web-search?api-mode=chat

https://platform.openai.com/docs/models/gpt-4o-search-preview

https://platform.openai.com/docs/models/gpt-4o-mini-search-preview

https://platform.openai.com/docs/pricing