はじめに
Farfalle は Perplexity の様なAI搭載の対話型検索エンジンです。LLMとして、ローカルの Ollama が利用できます。また、当初は検索に Tavily などのAPI keyが必要でしたが、ローカルで動作するメタ検索エンジン SearXNG でも動作する様になったため、完全ローカルで実行できます。
セットアップ
インストール
公式リポジトリで紹介されている Docker Compose を使う方法を少しアレンジして、インストールします。
git clone https://github.com/rashadphz/farfalle.git
cd farfalle
cp docker-compose.dev.yaml docker-compose.yaml
docker-compose.yaml
を以下の様に修正・追記して、検索エンジンを searXNG にするとともに、ollama が同時に起動する様にします。
services:
backend:
# ... (中略) ...
environment:
# ... (中略) ...
- SEARCH_PROVIDER=${SEARCH_PROVIDER:-searxng} # tavily から変更
# ... (中略) ...
ollama:
image: ollama/ollama
container_name: ollama
ports:
- 11434:11434
volumes:
- $HOME/.ollama:/root/.ollama
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
公式の docker image もありますが、searXNG を別で起動しておく必要があるなど面倒なので、上記の様に Docker Compose を使う方法が楽だと思います。
修正が済んだら、起動します。
docker compose up -d
設定
http://localhost:3000/
にアクセスします。
右下が Local
になっている事を確認し、その上のモデル名部分を押すと、モデル選択ができます。
'Local' (Ollama)の場合、 llama3
, gemma
, mistral
, phi3:14b
が利用できます。
注意点として、ここに表示されているモデルのみが利用でき、自由にモデルを選択することはできません(2023/6/11時点)。モデルの種類が固定されているのは、性能を担保する関係で理解できなくもありませんが、量子化タイプも選べないのは少し残念です。Ollamaはデフォルトで Q4_0 を使用するので、新しい量子化方式の Q4_K_M が使えなかったり、メモリに余裕があっても Q5 以上が使えなかったりするのは勿体ないですね。Ollama の CLI で cp をして名前を上書きすればどのモデルでも使えると思いますが、未確認です。
2024/6/16 追記:
LiteLLM を使うと上記モデル以外にも様々なモデルが使用できるようになりました。
検索実行
NVIDIA の CEO である Jen-Hsun Huang 氏について尋ねてみました。
生年が変になっていますが、それ以外は合っていそうです。情報源へのリンクがあるので、内容の確認はしやすくなっています。また、一般的な検索エンジンと同様に関連画像も表示されています。
関連する検索文が表示されるので、続けて質問してみたところ、(多分)正しく答えてくれました。
まとめ
Perplexity の様な AI 搭載の対話型検索エンジンをローカルのみで動かせる Farfalle を試してみました。本家の様にフォーカスを選ぶ事はできませんが、十分に便利だと思います。