使ってわかるCopilot+ PC

第107回

「GenieX」をサーバーモードで動かし、「AnythingLLM」と連携してGUIでローカルAIチャットする手順

「AnythingLLM」のチャットウインドウ

「GenieX」のAIチャットをGUIで使いたい

 前回、「GenieX」というAIツールを使って、Snapdragon XのNPUでAIチャットするという話題をお伝えした。今回はその続きで、「GenieX」をCLIで使うのではなく、「AnythingLLM」と連携させてGUI上で使う手順をお伝えする。

 簡単に言うと、「GenieX」をサーバー、「AnythingLLM」をクライアントとして動かす。この構造はローカルAIではよく使われるので、覚えておくとさまざまなローカルAIの利用のコツが掴みやすくなると思う。

「AnythingLLM」と連携させる

 まず下準備として、前回紹介した「GenieX」と、「AnythingLLM」をインストールする。「AnythingLLM」については、以前試した記事があるのでそちらを参考に。なお今回は「AnythingLLM」はただのGUIとして使うため、「AnythingLLM」側でのAIモデルのダウンロードは不要だ。

 環境が整ったら、「GenieX CLI」を起動し、使用するAIモデルをインストールしておく(こちらも前回の記事を参照)。その後、下記のコマンドを入力する。

geniex serve

 これは「GenieX」をサーバーモードで動かすという指示。前回は「PowerShell」によるCLIでのチャットを行う手順だったが、今回はCLIでの入力は受け付けず、クライアントからの接続待ちの状態になる。

コマンドを入力し、サーバーモードで動作させた状態。テキスト入力待ちにはならず、接続用URLだけを表示する

 次に「AnythingLLM」の設定から[AIプロバイダー]-[LLM]とたどってLLMの設定を開く。その中の[LLMプロバイダー]の項目で[Local AI]を選択する。文字通り、ローカルAIサーバーにアクセスして使用するものだ。

 これを選ぶと、下にいくつかの設定項目が表示されるので、順に設定していく。

[LLMプロバイダー]の設定画面

 まず[Local AI Base URL]から設定する。「GenieX」をサーバーモードで動かした時に、『Local hosting on』に続いてURLが表示されている(色がやや見づらい)ので、それをコピーして入力。さらにURLの最後に「/v1」を付け加える。筆者の環境では、『http://127.0.0.1:18181/v1』と入力した。

 ちなみにこの『Local hosting on』に続くURLをWebブラウザーに入力すると、「GenieX」に関する情報が表示される。これが出れば「GenieX」がサーバーモードで動作していることが確認できるので、うまくいかない際の原因切り分けにも使える。

「GenieX」に表示されたURLをWebブラウザーに入力すると、こんな画面が出る
「GenieX」側にもアクセスされた時の反応が見える

 [Model context window]は、チャットAIの記憶力にあたるもの。今回はテスト段階なので、初期設定の『4096』のままにしておく。チャット内容をより長く記憶させたい場合は数字を大きくすればいいが、メモリ使用量が増える。またAIモデルによってそれぞれ上限値が設定されている。

 [Local AI API Key]は、AIクライアントツールにはほぼ必ずある設定だが、ローカルAIの場合は空欄でなければ何でもよいという場合が多い。筆者は『dummy』と入れておいた。

 ここまで設定すると、[Chat Model Selection]の項目が表示されるようになる。これは使用するAIモデルの選択で、先に「GenieX」でインストール済みのAIモデルがリストアップされるので、使用するAIモデルを選ぶ。「GenieX」側がサーバーモードで起動するだけでよかったのは、「AnythingLLM」側からAIモデルを選択できるためだ。

[Chat Model Selection]から、「GenieX」にダウンロード済みのAIモデルを選べる

AIツールの連携で使い道が広がるのがローカルAIの醍醐味

 この状態で適当なワークスペースを作成してチャットを始めると、さきほど選んだチャットAIが応答する。CLIからGUI上でのチャットインターフェイスに代わっただけで、AIの性能はCLIの時と変わらない。しかし見た目にわかりやすく、フォントもチャット向けに適切な物が使えるので、使い勝手は良くなる。

「AnythingLLM」から「GenieX」のAIモデルを呼び出してチャット。QAIRT(Qualcomm AI Runtime)対応モデルを使うと、NPUを使って回答しているのがわかる

 さきほどのチャットAIの設定は、OpenAI API互換の仕組みで動いている。これによって、「GenieX」以外のローカルAIサーバーにも接続できるし、本家OpenAIへの接続や、他のAIサービスへの接続にも対応している。

 自分でチャットAIサーバーを立てるというと、かなり難しそうだと感じる方も多いと思うが、実際それほど難しいことはない。多くのチャットAIツールにはサーバー機能が搭載されており、適切にサーバー動作させれば、「AnythingLLM」などのツールと簡単に連携できるようになっている。

 例えば「AnythingLLM」は、今回はただのAIチャットのインターフェイスとして用いているが、プロジェクトごとに独自の情報を持たせてデータベース化するRAG(Retrieval-Augmented Generation)を活用できるという特徴がある。自分の好きなチャットAIモデルを別のAIサーバーツールで動かして、「AnythingLLM」のRAGを活用するという使い方が想定される。

 これがわかると、自分だけのローカルAI環境構築が面白くなってくる。ぜひいろいろお試しいただきたい。

著者プロフィール:石田賀津男(いしだ かつお)

1977年生まれ、滋賀県出身

ゲーム専門誌『GAME Watch』(インプレス)の記者を経てフリージャーナリスト。ゲーム等のエンターテイメントと、PC・スマホ・ネットワーク等のIT系にまたがる分野を中心に幅広く執筆中。1990年代からのオンラインゲーマー。窓の杜で連載『石田賀津男の『酒の肴にPCゲーム』』(AKIBA PC Hotline!に移動)、『使ってわかるCopilot+ PC』などを執筆。

・著者Webサイト:https://ougi.net/