中級 11 分ウェブ検索

Perplexica:自分の LLM を使うセルフホスト型 Perplexity ローカル

Perplexityは、自然言語で質問すると、青いリンクの一覧ではなく、出典を明示した要約回答を受け取れるという使い方を広めました。Perplexicaは、それとまったく同じ仕組みを自分の環境で再現します。SearXNG経由でウェブを検索し、Ollamaで動くローカルLLMに回答を書かせる、オープンソースのウェブ検索エンジンです。このガイドでは、Dockerで構成全体を構築し、検索モード(おなじみの「focus」)を解説します。また、オリジナルと比べて得られるものと失うものを率直に示します。

著者 Thomas P.·更新 2026-08-27·Windows・macOS・Linuxでテスト済み
i
要約
PerplexicaはPerplexityをローカルで再現します。SearXNG経由でWebを検索し、Ollama上のLLMに出典を引用した回答を書かせます。・スタックはSearXNG、Ollama、Perplexicaの3要素で、Dockerを使って約10分で導入できます。・Ollamaのモデルが2つ必要です。回答を作成するチャットモデル(7〜14B)と、出典をランキングするnomic-embed-textなどの埋め込みモデルです。・MITライセンスのオープンソースプロジェクトで、リクエストがネットワーク外に出ることはありません。

#PerplexityではなくPerplexicaを選ぶ理由

Perplexityは優れた製品ですが、クラウドサービスです。クエリは相手のサーバーに送信され、無料版には制限があり、回答を生成するモデルはユーザーの管理下にありません。Perplexicaはこのロジックを逆転させます。これはオープンソースプロジェクト(MITライセンス、GitHubで入手可能)であり、ユーザー自身がホストする三つのコンポーネントをオーケストレーションします。クエリはネットワーク外に送信されず、費用はかからず、回答に使用するモデルをユーザーが選択できます。

その利点はイデオロギー的なものだけではありません。ローカルな回答エンジンであれば、クォータによる制限を受けることなくソースを照会でき、ホームラボでバックグラウンドタスクとして動作させ、そのインターフェースを通じて他のツールの検索基盤としても利用できます。その代わり、品質はローカルモデルと SearXNG インスタンスの健全性に直接依存します。このガイドでは、この2点に特に重点を置いています。

i
Perplexicaが実際に実現していること
質問をすると、Perplexicaはその検索クエリを言い換えてSearXNGで検索し、上位の検索結果を取得して、関連する内容を抽出します。その後、番号付きの出典を引用しながら要約を作成するよう、利用中のLLMに依頼します。これは、リアルタイムのウェブ検索にRAGを適用したパイプラインです。

#Perplexica + SearXNG + Ollama スタック

ローカルAIキット

お使いのマシンで、プライベートかつ無料のChatGPTを1時間で構築 — LM Studio、Ollama、Open WebUI、ご自身のドキュメント、クラウド不要。

  • 永久に利用できるオンラインスペース
  • PDF + ファイル
  • 生涯アップデート

構成要素は三つあり、それぞれの役割は明確です。どの要素が何を担当するかを理解しておくと、回答が不適切な場合のトラブルシューティングがずっと簡単になります。三つのうち、どれを調べればよいか分かるからです。

SearXNG
Google、Bing、DuckDuckGo、Wikipediaなど数十の検索エンジンの結果を、トラッキングなしで集約する自由ソフトウェアのメタ検索エンジンです。実際にウェブ検索を行うのは、このメタ検索エンジンです。Perplexicaはこれなしでは動作しません。
Ollama
ローカルLLMをhttp://localhost:11434で提供するデーモンです。情報源に基づいて最終的な回答を生成するのは、このデーモンです。また、抜粋の関連性を順位付けするための埋め込みモデルも提供します。
Perplexica
全体を統括するオーケストレーターであり、ウェブインターフェースでもあります。質問を言い換え、SearXNGを制御し、ページの内容を抽出し、埋め込みによる再ランキングを管理して、Ollamaに送る最終プロンプトを組み立てます。
→
モデルは1つではなく2つ
Perplexicaには、文章を作成するチャットモデルと、類似度を測って抜粋を並べ替える埋め込みモデルという、2つの異なるモデルが必要です。アプリケーションを設定する前に、Ollamaで両方をダウンロードしておいてください。

#前提条件

特に特殊なことはありませんが、ハードウェアおよびバージョンに関する注意点はいくつかあります。

Docker + Docker Compose
スタック全体をコンテナでデプロイします。Docker Desktop(Windows/Mac)、またはDocker EngineとComposeプラグイン(Linux)があれば十分です。これが公式に推奨されているインストール方法です。
Ollamaがインストールされ、起動されている
デーモンが稼働しており、接続できる必要があります。ollama listで確認してください。Ollamaがホストマシン上で、PerplexicaがDocker内で動作している場合、使用するアドレスはlocalhostではなくhttp://host.docker.internal:11434です。
チャットモデル
Q4_K_Mの7〜8Bモデル(VRAM約5GB)が、実用的な最低ラインです。14Bモデル(約9GB)なら、はるかに信頼性の高い要約を作成できます。最終的な回答の質は、この選択に直接左右されます。
埋め込みモデル
軽量で高速なモデルで、例えば nomic-embed-text があります。内部での順位付けの調整にのみ使用し、文章の生成には使用しません。
~5GBのディスクスペースと少しのRAM
Dockerイメージ(Perplexica + SearXNG)とキャッシュ用です。モデルは、それとは別にOllamaが管理します。
ターミナル
# Récupérer les deux modèles nécessaires côté Ollama
ollama pull qwen3.5:9b         # modèle de chat (rédaction)
ollama pull nomic-embed-text   # modèle d'embeddings (reclassement)

# Vérifier qu'ils sont bien là et qu'Ollama répond
ollama list

#Dockerを使って10分でインストール

公式のインストール方法では、プロジェクトの Git リポジトリを使います。そこには、Perplexica と専用の SearXNG インスタンスの両方を事前設定した docker-compose.yaml が含まれています。SearXNG を別途インストールする必要はありません。Docker Compose がその処理を行います。

  1. 01
    リポジトリをクローンする
    GitHub から Perplexica プロジェクトを取得し、フォルダに移動してください。以下すべてはそのフォルダ内で実行されます。
  2. 02
    設定ファイルの作成
    リポジトリには設定ファイルのテンプレートsample.config.tomlが用意されています。これをconfig.tomlとしてコピーしてください。Perplexicaは起動時にこのファイルを読み込み、使用するバックエンドを把握します。
  3. 03
    Compose設定を確認する
    docker-compose.yamlでは、perplexica(アプリ)、searxng、必要なネットワーク関連のサービスという三つのサービスを定義しています。デフォルトでは、Webインターフェースはポート3000で公開されます。
  4. 04
    スタックを起動
    docker compose upを実行すると、初回起動時にイメージがビルドされ、その後すべてが起動します。初回はイメージのダウンロードとビルドに数分かかると見込んでください。
  5. 05
    インターフェースを開く
    http://localhost:3000 にアクセスしてください。チャット画面が表示されれば、作業は半分完了です。あとはモデルを接続するだけです。
ターミナル
# 1. Cloner le projet officiel
git clone https://github.com/ItzCrazyKns/Perplexica.git
cd Perplexica

# 2. Préparer la config à partir du modèle fourni
cp sample.config.toml config.toml

# 3. Construire et démarrer toute la stack (Perplexica + SearXNG)
docker compose up -d

# 4. Suivre les logs si besoin
docker compose logs -f perplexica
!
composeファイルの正確なファイル名を確認してください
リポジトリのバージョンによって、ファイル名はdocker-compose.yamlまたはdocker-compose.ymlになり、公開されるサービスの名前も少し異なる場合があります。プロジェクトの更新が速いため、覚えているコマンドに頼らず、クローンしたリポジトリのREADMEを確認してください。

#Perplexica に Ollama を接続する

モデルを設定する方法は2つあります。起動前に config.toml ファイルで設定する方法と、起動後にウェブインターフェースの設定画面で設定する方法です。初めて使う場合はインターフェースのほうが簡単で、再現可能なデプロイにはファイルが便利です。

重要なポイントは Ollama のアドレスです。Perplexica はコンテナ内で動作しており、その場合、localhost はコンテナ自体を指し、あなたのマシンを指しません。Ollama がホスト上でインストールされている場合は、Windows/Mac、およびホスト設定が正しい Linux では host.docker.internal を localhost の代わりに使用してください。

config.toml
# Extrait de configuration côté Ollama
# Depuis un conteneur, on ne peut PAS utiliser localhost pour joindre l'hôte
[MODELS.OLLAMA]
API_URL = "http://host.docker.internal:11434"

# Sur une machine Linux, si host.docker.internal ne résout pas,
# ajoutez dans docker-compose : extra_hosts: ["host.docker.internal:host-gateway"]
  1. 01
    設定を開く
    ウェブインターフェースでは、設定アイコンをクリックするとモデル提供元の選択が可能です。提供元として Ollama を選択してください。
  2. 02
    OllamaのURLを入力する
    APIのアドレス(Dockerの場合、host.docker.internal:11434)を入力してください。Perplexicaはその後 Ollama に問い合わせ、自動的に利用可能なモデルをリストアップします。
  3. 03
    チャットモデルの選定
    応答を生成するモデルを選択してください(例:qwen3.5:9b)。これは品質の鍵となる1番目の要素です。
  4. 04
    埋め込みモデルを選択
    抜粋の順位付けをやり直すために、nomic-embed-text(または同等のモデル)を選択してください。有効な埋め込みがないと、ソースの順位付けの精度が低下します。
  5. 05
    最初の質問をする
    最近の事実について質問してテストしてください。回答の下に番号付きの出典が表示されれば、一連の処理全体が機能しています。
→
Ollama と Perplexica を同じ Docker Compose 構成にまとめる
すべてをまとめて管理するために、docker-composeにOllamaをサービスとして追加することもできます。この場合、URLはサービス名を使ったhttp://ollama:11434になり、host.docker.internalは不要になります。

#フォーカスモード:学術、動画、Redditなど

これはPerplexicaを代表する機能です。あらゆる場所を同じ方法で検索するのではなく、「focus mode」を選ぶことで、SearXNGの検索対象を特定の種類の情報源に絞り、文章の書き方も調整します。適切なモードを選ぶと、関連性が大きく変わります。

All Mode
デフォルトモード:ウェブ全体を対象とする一般的な検索。特定の分野に限定されない、答えが一つに定まらない質問に使用する。
Academic Search
科学的な情報源や研究論文を中心に検索します。文献レビューや高度に専門的な技術の質問に最適です。
Writing Assistant
ウェブ検索を行わないモードです。PerplexicaはLLMだけを使って文章を作成したり、言い換えたりします。外部の情報源が必要ない場合に便利です。
YouTube Search
動画を対象に検索します。回答は関連するYouTubeコンテンツに基づき、リンクも付いています。チュートリアルや実演を見る際に役立ちます。
Wolfram Alpha Search
計算、科学、事実に関するデータについての質問には、Wolfram Alphaに基づいて回答します。
Reddit Search
Redditのディスカッションを検索:口コミ、実際の体験、コミュニティの議論。意見や製品に関する質問に非常に役立ちます。
i
フォーカスはSearXNGに作用し、モデルには作用しません
モードを変えると、主にSearXNGがどの情報源を検索するかと、Perplexicaがそれらをどう絞り込むかが変わります。LLM自体は変わりません。文章を作成するのは、常にOllamaで使っているモデルです。不適切なモードでは不適切な情報源が選ばれ、どれほど優れた要約でも、的外れな情報源を使ったことは補えません。

#実際の回答の質

率直に言うと、小型のローカルモデルでは、Perplexity を支える最先端モデルに比べて、要約の文章は滑らかさやきめ細かさで劣ります。ただし、パイプラインもモデルと同じくらい重要です。最終的な仕上がりを左右する調整要素は 3 つあります。

チャットモデルのサイズ
これが最も大きな要因です。7〜8Bモデルは適切な回答を作成しますが、ときには内容が浅くなります。14Bモデルは引用に関する指示によく従い、より整った要約を作成できます。さらに大きい32Bモデル(VRAM約19GB)になると、満足できる利用体験に近づきます。
SearXNGの稼働状態
検索エンジンがブロックされたり、レート制限に達したりすると、SearXNGが返す検索結果が少なくなり、回答の内容もその分乏しくなります。内容の薄い回答は、LLMではなく情報源の不足が原因であることが多くあります。
利用可能なコンテキスト
Perplexicaは、複数のページからの抜粋をプロンプトに組み込みます。コンテキストの短いモデルでは、参照元の内容が途中で切り詰められ、情報が失われます。十分なコンテキスト長を持つモデルを優先してください(最低8k、可能ならそれ以上)。
→
期待に届かない回答の原因を診断する
まず、引用されている情報源を確認してください。情報源が少ない、またはまったくない場合、問題はSearXNGにあります(検索エンジンがブロックされている、検索クエリの言い換えが不適切など)。適切な情報源があるのに、回答のまとめ方が弱い場合は、モデルの問題です。より大きなモデルにするか、別のモデルに切り替えてください。まずこの切り分けをすることで、改善すべき箇所を取り違えずに済みます。

#Perplexityと比較:得られるものと失うもの

Perplexica は完全なクローンではなく、そう主張するのは不誠実です。自分の状況で手間をかける価値があるかを判断できるよう、メリットとデメリットを現実的に整理します。

得られるメリット — 機密性
あなたのネットワークからいかなるリクエストも送出されません。検索テーマや回答内容も第三者を経由しません。機密性の高い運用においては、これが極めて重要です。
メリット — コストと利用制限
料金はかかりません。リクエストの制限もありません。ハードウェアが処理できるだけの検索を実行でき、API料金なしで他のツールと統合できます。
得られるメリット — 制御
モデルと、SearXNG経由で検索する検索エンジンを選べます。また、全体をホームラボで長期的にセルフホストできます。
表現の洗練が失われます
Perplexityのクラウドモデルはより大規模で、より洗練されています。性能が控えめなハードウェアでは、ローカルで作成する要約は精彩に欠け、不正確な記述も増えます。
失うもの — 導入するだけで得られる堅牢性
Perplexityはインフラを代わりに管理してくれます。自分の環境でSearXNGがレート制限に引っかかったり、OllamaがVRAMを使い切ったりした場合は、自分で原因を診断して修正する必要があります。
一部の機能が失われます
洗練されたモバイルアプリはなく、複数ステップのPro Searchも同じ完成度には達しておらず、独自の連携機能もありません。Perplexicaは主要な機能をカバーしていますが、商用製品の使い勝手をすべて備えているわけではありません。

#よくある問題のトラブルシューティング

Perplexica は Ollama を認識できません
原因はほぼいつも接続先アドレスです。Docker内から接続する場合は、localhost を host.docker.internal に置き換えてください(Linuxでは、extra_hosts に host-gateway を追加します)。Ollama が正常に接続を待ち受けていることを確認し、必要なら localhost 以外からの接続も受け入れるようにしてください。
応答にソースが含まれていません
SearXNGが何も返しません。SearXNGの画面を直接開いて、検索を試してください。検索に失敗する場合、一部の検索エンジンがブロックされているか、レート制限にかかっています。有効な検索エンジンの数を減らすか、しばらく待ってください。
モデルのリストは空です
Perplexica は設定の読み込み時に Ollama に問い合わせます。リストが空の場合は、API の URL が間違っているか、Ollama にモデルがありません。ホスト側で ollama list を実行して確認してください。
応答が非常に遅い
チャットモデルが VRAM に収まらないほど大きく、処理の一部が CPU に回っている可能性が高いです。より軽い量子化(Q4_K_M)か、より小さいモデルに切り替えてください。GPU が実際に使われているかも確認してください。
エンベディングエラー
埋め込みモデルが選択されていないか、ダウンロードされていません。ollama pull nomic-embed-text を実行し、設定でそのモデルを明示的に選択してください。
ポート 3000 はすでに使用されています
別のサービスがそのポートを使用しています。docker-composeのポートマッピングを変更し(例:3001:3000)、スタックを再読み込みしてください。

#さらに詳しく

Perplexicaの性能は、それを支えるモデルとインフラの性能を超えることはありません。これらのガイドは、Perplexicaが依存する基盤を強化します。

Ollama とは何か、どのように機能するか
チャットモデルと埋め込みをポート11434で提供するデーモンで、文章生成の品質全体を左右する基盤となるコンポーネントです。
量子化の選び方
Q4_K_M、Q5_K_M、Q8_0:VRAMと品質のトレードオフを理解し、お使いのグラフィックカードに合った要約用モデルを選ぶ。
AnythingLLM:ローカルで本番運用できるRAG
ウェブ検索からさらに進み、同じOllamaバックエンドで自分の文書を使ったRAGを構築するために。
このガイドは役に立ちましたか?

ご意見、誤りのご指摘、補足はありますか?ぜひお知らせください。皆さんにとってより良いガイドにするために役立ちます。