Ollamaを使ってみる その6(ネットでの検索結果との併用、Node-RED)

はじめに

 今回は以前試していたPythonによる検索と、ローカルLLMを組み合わせてみました。

 LLMが学習していないデータを、ネット上の最新の情報で補うというやり方に、RAG(Retrieval-Augmented Generation)という名前がつけられていることを最近知りました。

▼IBMのRAGに関する記事はこちら。エージェント型というものもあるようですね。

https://www.ibm.com/jp-ja/think/topics/agentic-rag?mhsrc=ibmsearch_a&mhq=rag

▼AWSのRAGに関する記事はこちら

https://aws.amazon.com/jp/what-is/retrieval-augmented-generation

 RAGと呼んでいいのかは分かりませんが、ネットでの検索結果とローカルLLMの組み合わせを、Node-REDで試してみました。

▼以前の記事はこちら

Ollamaを使ってみる その4(LLM同士の会話、Gemma3:4B、Python、Node-RED)

はじめに  今回はOllamaを利用して、ローカルLLM同士で会話させてみました。  以前の記事でPythonのライブラリを利用して、会話の履歴を保持したままやり取りできるよう…

Ollamaを使ってみる その5(画像とテキストのマルチモーダル処理、llama3.2-vision)

はじめに  今回はOllamaでllama3.2-visionを利用して、画像とテキストのマルチモーダル処理を試してみました。  最近GPT4oの画像に対する推論も試したことがあるのです…

フローを作成する

 Node-REDでのPythonの実行は、私が開発したpython-venvノードを利用しています。Pythonの仮想環境を作成して、Node-REDのノードとしてコードを実行できます。

▼年末に開発の変遷を書きました。

https://qiita.com/background/items/d2e05e8d85427761a609

 検索には、PythonのDuckDuck Goを利用できるパッケージを使います。

▼以下の記事で利用しています。

Pythonで検索してローカルLLMで要約してみる(Ollama、Node-RED)

はじめに  今回は情報収集を自動化したかったので、Pythonで検索するプログラムを試してみました。  いつも通りNode-REDで実行できるようにして、他のノードと組み合わ…

 ローカルLLMはOllamaのPythonライブラリを利用して、TCPサーバーとして起動します。会話の履歴も保持することができます。

▼以下の記事で利用しています。

Ollamaを使ってみる その3(Pythonでの利用、Node-RED、Gemma3:4B)

はじめに  今回はPythonでのOllamaの利用方法を確認して、サーバーとして実行できるようにしてみました。  これまでOllamaを利用するときは、Node-REDのollamaノードを…

 試行錯誤の末、最終的に以下のようなフローになりました。

▼フローの全体はこちら

 検索結果はJSONファイルに保存されます。その内容にURLが含まれるので、リンク先のHTML形式のデータから必要な内容を読み込み、1つのテキストファイルにします。その後、ローカルLLMに送信しています。

▼以下のような内容がローカルLLMに送信されています。

 ダッシュボード画面は、Dashboard 2.0を利用しています。検索やローカルLLMとの対話ができるようになっています。

▼以下のような画面になっています。

実行してみる

 ローカルLLMが知らないであろう新しい情報として、去年の12月にGitHubに公開されたばかりのGenesisについて聞いてみました。

▼Genesisについては、以下の記事で試したことがあります。

Genesisを使ってみる その1(環境構築、サンプルプログラムの実行)

はじめに  今回はGenesisという物理シミュレーションソフトウェアを試してみました。  3か月ほど前に公開されたばかりで、デモ動画が面白そうでした。グラフィックはUnr…

 Genesis Simulationという単語で検索した結果を、Gemma3:4Bに渡してみました。

▼検索結果を要約してくれています。

 この結果をもとに、さらに質問できるようにしてみました。検索機能と併用する前に、Gemma3:4BがGenesisについて知っているかを聞いてみました。

▼スマートフォン用のゲームらしいものが提示されました。知らないようです。

 検索を実行した後に、同じ質問をしてみました。

▼最新のGenesisについての回答が返ってきています。

 ChatGPTにも同じ質問をしてみました。

▼全然違うものが提示されました。

▼検索機能を有効にすると、最新の情報を参照した回答が返ってきました。

 MuJoCoについても聞いてみました。

▼MuJoCoについては、以下の記事で試したことがあります。

MuJoCoを使ってみる その1(環境構築、サンプルプログラムの実行)

はじめに  今回は物理シミュレーションを行うことができる、MuJoCoというソフトウェアを試してみました。  MuJoCoは以前の記事でGenesisを試していたときに見つけました…

 MuJoCo simulationで検索してみました。

▼検索を実行すると要約してくれました。

 回答が英語だったので、日本語に直してもらいました。

▼日本語で要約してくれています。MuJoCo Playgroundの内容でした。

 MuJoCo Playgroundについてははじめて知りました。また試してみようと思います。

▼サイトに面白そうなデモ動画がありました。

https://playground.mujoco.org

▼MuJoCo PlaygroundのGitHubのリポジトリはこちら

https://github.com/google-deepmind/mujoco_playground

▼arxivに論文がありました。2025年の2月なので、2か月程前ですね。最新すぎて知らなかったようです。

https://arxiv.org/html/2502.08844v1

最後に

 Node-REDで検索機能とローカルLLMを併用することができました。やはりローカルLLMは最新の情報については知らないようなので、検索機能は重要になりそうです。

 私も最新の情報を追うのは大変で、今回の検索結果で出てきたMuJoCo Playgroundは知りませんでした。フローをさらに拡大して、情報収集を自動化していきたいなと思っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です