0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ollama + Open WebUIでAIチャットボットをホスティングし、RAGを試してみる

Last updated at Posted at 2024-12-01

TL;DR

ローカルのWindows PCで、
Open WebUIとOllamaを使ってAIチャットボットをホスティングし、プロンプトを叩いてみました。

AIチャットボット構築

Ollama

Ollamaにつきましては、
公式サイトで配布されているインストーラーをポチポチするだけでインストールできます。

インストール後、Ollamaを起動し、
ログにollamaサーバーが起動した旨が記載されていれば概ね問題なさそうです。

スクリーンショット 2024-09-08 212938.png

app.log:

time=2024-09-08T17:30:36.144+09:00 level=INFO source=server.go:135 msg="starting server..."
time=2024-09-08T17:30:36.576+09:00 level=INFO source=server.go:121 msg="started ollama server with pid 16112"

Open WebUI

Dockerイメージが公式から配布されていまして、以下のdocker-compose.yamlでWebUIをホスティングすることができます。

version: '3'
services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    volumes:
      - ./docs:/app/backend/data/docs # RAG用のドキュメント格納場所
    restart: always
    ports:
      - "3000:8080"
    environment:
      - WEBUI_AUTH=False
      - DOCS_DIR=/app/backend/data/docs
    extra_hosts:
      - "host.docker.internal:host-gateway"

起動後、管理者パネル>モデル> Ollama.com からモデルをプルから使用するLLMのモデルをダウンロードすることが可能です。ここでは gemma2:2bというモデルを取り上げます。

管理者パネル画面: http://localhost:3000/admin/settings

スクリーンショット 2024-09-08 214636.png

RAGを使わずにプロンプトを叩いてみる

まず、RAGを使わずに普通にgemma2:2bでプロンプトを叩いてみます。

プロンプト:

琵琶湖に生息する魚は?

応答:

琵琶湖には、様々な種類の魚が生活しています。主な魚種としては、以下のようなものが挙げられます:

**1. 重要な食用魚:**

* **マス(サケ):**  琵琶湖の代表的な魚で、食用として広く知られています。
* **イカナゴ:**  琵琶湖特有の淡水魚で、食用に利用されます。

**2. 他の食用魚:**

* **コイ:**  琵琶湖の湖底に生息する魚で、食用に利用されます。
* **アナゴ:**  琵琶湖の湖底に生息する魚で、食用に利用されます。

**3. 水辺の魚:**

* **サクラマス:**  琵琶湖の湖水に生息する、サケ科の淡水魚。

**4. 珍しい魚:**

* **ハゼ:**  琵琶湖の淡水に生息するハゼ類は、食用に利用されます。
* **ヒラメ:**  琵琶湖の湖底に生息する魚で、食用に利用されます。


これらの魚種以外にも、様々な種類の魚が琵琶湖に生息しています。

詳細な情報については、以下を参照ください。

* **琵琶湖の魚図鑑:** https://www.japanseafish.com/
* **琵琶湖観光協会:** https://www.biwa-kanko.jp/

ちらほら海水魚が混ざっていたりして、情報に誤りがありそうです。
URLも存在しないものになっています。

1.gif

RAGの設定を行う

docker-compose.yamlのほうでマウントしている./docsディレクトリ配下に次のテキストファイルを配置します。

doc.md:

琵琶湖には、ピラニア、ホホジロザメ、アカエイ、アリゲーターが生息しています。
その他の生物は生息していません。

※ RAGの検索結果を分かりやすくするために極端な内容にしています

ファイルを配置した後、管理者パネルでスキャンを実行すると設定完了です。

scan.png

RAGを使ってプロンプトを叩いてみる

次に、RAGを有効にした状態で、同じプロンプトを再度投げてみました:

biwa.png

ドキュメントの内容に基づいた回答が返ってきましたが、途中で英語が混ざっている点に改善の余地があります。

おわりに

このブログでは、OllamaOpen WebUIを使用したAIチャットボットのホスティング方法、およびRAGの設定とテストについて解説しました。RAG設定により、ローカルに保存されたドキュメントから情報を取得して使用することができますが、言語の一貫性や内容の正確性には注意が必要です。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?