はじめに
Perplexica は、前回紹介した Farfalle と同様に Perplexity の様なAI搭載の対話型検索エンジンです。LLMとして、ローカルの Ollama が利用できます。また、ローカルで動作するメタ検索エンジン SearXNG を使用しています。
セットアップ
インストール
公式リポジトリで紹介されている Docker Compose を使う方法でインストールします。
git clone https://github.com/ItzCrazyKns/Perplexica.git
cd Perplexica
cp sample.config.toml config.toml
ここで、 config.toml
を編集します。Ollamaを使う場合、OLLAMA
のみ設定すればOKです。
# ... (前略) ...
OLLAMA = "http://host.docker.internal:11434"
また、docker-compose.yaml に以下を追記して、Ollama が同時に起動する様にすると便利です。
services:
# ... 中略 ...
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]
networks:
- perplexica-network
設定が済んだら、起動します。
...と行きたいところですが、2024/6/18時点ではコードにバグがあるため、ファイルの修正が必要です。具体的には、 ui/components/EmptyChat.tsx
と ui/components/Navbar.tsx
の
ThemeSwitcher
の次の size={17}
を削除します。
参考:
--- a/ui/components/EmptyChat.tsx
+++ b/ui/components/EmptyChat.tsx
@@ -12,7 +12,7 @@ const EmptyChat = ({
}) => {
return (
<div className="relative">
- <ThemeSwitcher className="absolute top-2 right-0 lg:hidden" />
+ <ThemeSwitcher size={17} className="absolute top-2 right-0 lg:hidden" />
<div className="flex flex-col items-center justify-center min-h-screen max-w-screen-sm mx-auto p-2 space-y-8">
<h2 className="text-black/70 dark:text-white/70 text-3xl font-medium -mt-8">
--- a/ui/components/Navbar.tsx
+++ b/ui/components/Navbar.tsx
@@ -50,7 +50,7 @@ const Navbar = ({ messages }: { messages: Message[] }) => {
</div>
<p className="hidden lg:flex">{title}</p>
- <ThemeSwitcher className="lg:hidden ml-auto mr-4" />
+ <ThemeSwitcher size={17} className="lg:hidden ml-auto mr-4" />
<div className="flex flex-row items-center space-x-4">
<Share
修正が済んだら、今度こそ起動します。
docker compose up -d
設定
http://localhost:3000/
にアクセスします。
設定画面で、Chat model Provider に Ollama を選択し、Chat Model で使いたいモデルを選択します。Farfalle と違って、選択できるモデルに制限はありません。また、Embedding model Provider も Ollama を選択し、Embedding Model で使いたいモデルを選択します。
検索実行
前回と同じく、NVIDIA の CEO である Jen-Hsun Huang 氏について尋ねてみました。
情報源が最初に表示され、画像や動画が右側に表示されるのは、本家 Perplexity と良く似ています。また、本家と同様に、フォーカスを選択できますし、ライブラリ機能もある様です。
更に、Copilot モードと言うものがあります。まだ開発途中ですが、さまざまなクエリを生成して検索を強化し、より関連性の高いインターネットソースを見つけるモードだそうです。
まとめ
Perplexity の様な AI 搭載の対話型検索エンジンをローカルのみで動かせる Perplexica を試してみました。名前も構成も本家を強く意識した作りになっています。モデルの選択に制限が無い点やembedding modelも利用している点など、Farfalleより高機能・高性能が期待できますが、バグを放置したまま2週間ほど更新が止まっているのが気がかりです。