LoginSignup
0
0
生成AIに関する記事を書こう!
Qiita Engineer Festa20242024年7月17日まで開催中!

Farfalle と Ollama で LLM を利用した検索エンジンを試す

Last updated at Posted at 2024-06-11

はじめに

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/ にアクセスします。

farfalle_01

右下が Local になっている事を確認し、その上のモデル名部分を押すと、モデル選択ができます。

farfalle_02

'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 氏について尋ねてみました。

farfalle_03

生年が変になっていますが、それ以外は合っていそうです。情報源へのリンクがあるので、内容の確認はしやすくなっています。また、一般的な検索エンジンと同様に関連画像も表示されています。

farfalle_04

関連する検索文が表示されるので、続けて質問してみたところ、(多分)正しく答えてくれました。

farfalle_05

まとめ

Perplexity の様な AI 搭載の対話型検索エンジンをローカルのみで動かせる Farfalle を試してみました。本家の様にフォーカスを選ぶ事はできませんが、十分に便利だと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0