FESSでOpenFOAMアドバイザーを作る2025年9月15日 | |
はじめに全文検索サービスのFESSを利用してOpenFOAMアドバイザーを作れないかという試み。 環境
FESSとOpenSearchはセットアップ済みとする。 動機と方針Open WebUIのRAGでOpenFOAMアドバイザーを作れないか試みたが、全文検索的な情報の取り方もしたいなあと思い、FESSの利用を試みたしだい。 方針
全文検索クローラの設定文書を検索するには、まず文書の情報を集める(クロールする)必要がある。それを行うのがクローラである。注意点としては、FESSサービスはfessユーザー/fessグループになっているので、クローラがアクセスする場所へのアクセス権を適切に設定する必要がある。たとえば、ユーザーpenguin/グループpenguinのホームディレクトリにアクセスさせたければ、次のようにfessをpenguinグループに入れるなどである。 クローラの設定
右上に [クローラーの実行] ボタンがあるので、そこで [今すぐ開始]。
クロールの情報は [システム情報]-[クロール情報] で確認できる。インデックスのサイズが 0 でなければうまくいっている。 Webのクロールをするには、[クローラー]-[ウェブ]で行う。
Webのクロールの場合、robots.txtでクロールを拒否されることがある。robots.txtを無視してよい状況であれば、設定で無視させることができる。 以下を設定
ここでは、ローカルのファイル(Open WebUIでOpenFOAMアドバイザーを作ってみたときに用意したもの)を参照するようにした。 FESSのインデックスは、OpenSearchのfess.searchに入る。 注意 全般の設定で [以前のドキュメントを削除] を -1 にしておかないと、クロールしたものが自動的に消える。 チャットボットChainlitを使う。ベースのコードはOllamaのquen3-coder:30bとかに書いてもらう。 「ユーザーの自由な問い合わせに対して、OpenSearchに対して検索をかけ、返ってきたファイル名やスコア、ハイライトを使って、返ってきたものを出典としてリンクを示しながら、返答するチャットボットをOllamaとChainlitで作りたい。OpenSearchのインデックスにはFESSのもの(fess.search)を使うものとする。すべてPythonで簡潔に。」 パッケージのインストール 初期化
ファイルアップロードさせたくない場合は、以下のように設定する。 ロゴ ファイルは
| |
| PENGUINITIS | |