Open WebUI: Ollamaと一緒に数分でローカルChatGPTを構築

Open WebUIのフルポテンシャルを解放し、ロードバランシング、API統合、画像生成、および強化生成のための詳細なステップとサンプルコードを使って、AIプロジェクトを新たな高みに昇華させましょう!

Anakin AIを無料で利用開始

Open WebUI: Ollamaと一緒に数分でローカルChatGPTを構築

Start for free
目次

以下のHTMLコードを日本語に翻訳してください。 次のようなURLを確認してください: https://anakin.ai/apps/keyword または https://anakin.ai/blog/keyword が https://anakin.ai/ja-jp/apps/keyword https://anakin.ai/ja-jp/blog/keyword に変換されるようにします。 以下はHTMLコードです:

オープンWebUI:言語モデルのパワーを解き放つ

オープンWebUI(以前はOllama WebUIとしても知られていました)は、ユーザーフレンドリーなWebインターフェースを介して大規模言語モデル(LLM)の機能を利用し、相互作用することを可能にする強力なオープンソースプラットフォームです。 Hugging Face Transformersライブラリをベースに構築されたOpen WebUIは、自然言語処理(NLP)タスクに対して最新の言語モデルをシームレスに探索し利用する方法を提供します。

この記事では、Open WebUIの詳細、機能、インストールプロセス、およびサンプルコードの効果的な使用方法について詳しく説明します。また、Alejandro AOによるYouTubeビデオ「Creating a ChatGPT like UI for all your AI projects」でデモンストレーションされているように、AIプロジェクトでChatGPTのようなUIを作成するプロセスにも触れます。

💡
AIの最新トレンドに興味がありますか?

それなら、Anakin AIを見逃すことはできません!

Anakin AIは、ワークフローの自動化に必要なオールインワンのプラットフォームであり、簡単に使用できるノーコードアプリビルダー、Llama 3ClaudeGPT-4Uncensored LLMsStable Diffusionを使用して強力なAIアプリを作成することができます...

数分で夢のAIアプリを作成しましょう。Anakin AIを使用すれば、数週間かかりません!
Anakin.ai - One-Stop AI App Platform
Anakin.ai - One-Stop AI App Platform

Open WebUIの機能

Open WebUIは、開発者や研究者が言語モデルを利用する際の魅力的な選択肢となるさまざまな機能を提供しています:

直感的なWebインターフェース:Open WebUIは、複雑なセットアップやコーディングの必要なく、クリーンで直感的なWebインターフェースを提供します。

複数のモデルのサポート:Open WebUIは、GPT-2、GPT-Neo、BERTなど、さまざまな言語モデルをサポートしています。この柔軟性により、ユーザーは特定のユースケースに最適なモデルを選択することができます。

リアルタイム推論:Open WebUIを使用すると、ユーザーは入力テキストに対してリアルタイムで推論を実行し、選択した言語モデルとパラメータに基づいて出力を生成することができます。

カスタマイズ可能なパラメータ:Open WebUIでは、温度、top-k、top-pなどのさまざまなパラメータをカスタマイズできます。これにより、生成された出力を好みに合わせて微調整することができます。

APIの統合:Open WebUIでは、既存のアプリケーションやワークフローに簡単に組み込めるAPIエンドポイントを提供しており、言語モデルへのプログラムからのアクセスを可能にしています。

ローカルとリモートのRAGの統合:Open WebUIは、Retrieval Augmented Generation(RAG)をサポートしており、ローカルおよびWebベースのコンテンツをチャットにシームレスに統合することができます。この機能はまだアルファフェーズであり、時々問題が発生する可能性があります。

プロンプトのプリセットサポート:ユーザーは、チャット入力で「/コマンド」を使用してインスタントでプリセットのプロンプトにアクセスできるため、事前定義された会話開始者を簡単に読み込んで対話を加速することができます。プロンプトはOpen WebUI Communityの統合を介してインポートすることもできます。

RLHFアノテーション:Open WebUIでは、サムズアップとサムズダウンでメッセージを評価できるようにすることで、強化学習のためのデータセットの作成を容易にします。これらのメッセージは、ローカルに保存されたデータの機密性を確保しながら、モデルのトレーニングや微調整に利用することができます。

モデルファイルビルダー:Open WebUIにはモデルファイルビルダーも含まれており、ユーザーはWeb UIを介して簡単にOllamaモデルファイルを作成および追加できます。ユーザーはキャラクター/エージェントの作成やチャット要素のカスタマイズ、Open WebUI Communityの統合を介したモデルファイルの簡単なインポートも行えます。

画像生成の統合:Open WebUIは、AUTOMATIC1111 API(ローカル)とDALL-Eを使用して、画像生成機能をシームレスに統合します。これにより、ダイナミックな視覚コンテンツを使用してチャットエクスペリエンスを豊かにすることができます。

Open WebUIのインストール方法

Open WebUIを使い始めるには、以下のステップバイステップの手順に従ってください:

リポジトリのクローン

git clone https://github.com/open-webui/open-webui.git
cd open-webui

依存関係のインストール

pip install -r requirements.txt

アプリケーションの実行

python app.py

Webインターフェースへのアクセス
Webブラウザを開き、http://localhost:5000に移動してOpen WebUIインターフェースにアクセスします。

Open WebUIの使用方法

Open WebUIを起動している場合、その機能を探索することができます。以下はOpen WebUIの使用方法に関するステップバイステップガイドです:

  • 言語モデルの選択:Open WebUIインターフェースのドロップダウンメニューから、使用したい言語モデルを選択します。
  • 入力テキスト:提供されたテキストエリアに入力テキストまたはプロンプトを入力します。このテキストは、言語モデルが応答を生成するための出発点として機能します。
  • パラメータの調整(オプション):必要に応じて、温度やtop-k、top-pなどの生成パラメータを調整して生成される出力のランダム性と多様性を制御することができます。
  • 出力の生成:「生成」ボタンをクリックして推論プロセスを開始します。Open WebUIは、選択した言語モデルに入力テキストを送信し、生成された出力をインターフェースに表示します。
  • 繰り返しと微調整:入力テキストを変更し、パラメータを調整し、目的の結果を得るまで、入力テキストを変更し、パラメータを調整し、新しい出力を生成することができます。

Open WebUIを使用したAIプロジェクトのChatGPTのようなUIの作成方法

Alejandro AOによるYouTubeビデオ「Creating a ChatGPT like UI for all your AI projects」では、AIプロジェクト用にChatGPTのようなユーザーフレンドリーなチャットインターフェースを作成する手順が提供されています。以下は主な手順の概要です:

  • プロジェクトのセットアップ:新しいプロジェクトディレクトリを作成し、create-react-appコマンドを使用して新しいReactアプリケーションを初期化します。
  • 依存関係のインストール:チャットインターフェースとAPI通信を容易にするために、react-chat-uiaxiosなどの必要な依存関係をインストールします。
  • チャットコンポーネントの作成:「Chat」という新しいコンポーネントを作成し、react-chat-uiから必要なコンポーネントをインポートし、メッセージとユーザー入力の初期状態を設定します。
  • チャット機能の実装:ユーザーの入力を処理し、バックエンドAPIにメッセージを送信し、応答を受け取るための関数を定義します。ステートを適切に更新して、チャットインターフェースにメッセージを表示します。
  • バックエンドAPIとの統合:バックエンドサーバーにメッセージを送信し、言語モデルから生成された応答を受け取るためにaxiosを使用します。
  • チャットインターフェースのスタイリング:CSSスタイルを適用して、チャットインターフェースの外観をカスタマイズし、視覚的に魅力的でユーザーフレンドリーにします。
  • テストと微調整:アプリケーションを実行し、チャット機能をテストします。スムーズで応答性のあるユーザーエクスペリエンスを確保するために、必要に応じてコードを反復して微調整します。

これらの手順に従うことで、AIプロジェクト用のChatGPTのようなUIを作成し、ユーザーに直感的かつ魅力的な方法で言語モデルと対話する手段を提供することができます。

Open WebUIの高度な使用のヒント

Open WebUIは、幅広い機能とカスタマイズオプションを提供する強力なプラットフォームです。本記事では、Open WebUIの最大限の活用方法についていくつかの高度なヒントやテクニックを探っていきます。ロードバランシング、OpenAI APIエンドポイント、画像生成、およびRetrieval Augmented Generation(RAG)などのトピックについて説明します。

Open WebUIにおけるOllamaのロードバランシング

ロードバランシングを使用すると、複数のOllamaインスタンスに処理負荷を分散して、パフォーマンスと信頼性を向上させることができます。環境変数を使用してOpen WebUIを複数のOllamaインスタンスに接続する方法について説明します。

Docker Runを使用する場合

Dockerを使用してOpen WebUIを実行し、複数のOllamaインスタンスに接続するには、次のコマンドを使用します:

docker run -d -p 3000:8080 \
  -v open-webui:/app/backend/data \
  -e OLLAMA_BASE_URLS="http://ollama-one:11434;http://ollama-two:11434" \
  --name open-webui \
  --restart always \
  ghcr.io/open-webui/open-webui:main

OLLAMA_BASE_URLS環境変数には、セミコロン(;)で区切られた各OllamaインスタンスのベースURLを指定します。両方のOllamaインスタンスで同じバージョンが実行され、各共有モデルに一致するタグが含まれていることを確認してください。

Docker Composeを使用する場合

docker-composeを使用する場合、docker-compose.yamlファイルでOLLAMA_BASE_URLS環境変数を定義します:

services:
  open-webui:
    environment:
      - OLLAMA_BASE_URLS=http://ollama-one:11434;http://ollama-two:11434

または、docker-compose.yamlファイルと同じディレクトリにある.envファイルでOLLAMA_BASE_URLS変数を定義できます:

OLLAMA_BASE_URLS="http://ollama-one:11434;http://ollama-two:11434"

モデルの整合性の確保

問題を防ぐために、両方のOllamaインスタンスが同じバージョンで実行され、共有モデルごとに一致するタグがあることを確認してください。Settings > Models画面で「Update All Models」ボタンを使用して、モデルをインスタンス間で同期することができます。

Open WebUIにおけるOpenAI APIエンドポイント

Open WebUIでは、環境変数を使用して複数のOpenAI(または互換性のある)APIエンドポイントを設定することができます。これにより、異なるAPIプロバイダー間を切り替えたり、複数のプロバイダーを同時に使用したりすることができます。

Docker Runを使用する場合

Dockerを使用してOpen WebUIを実行し、複数のOpenAI APIエンドポイントを設定するには、次のコマンドを使用します:

docker run -d -p 3000:8080 \
  -v open-webui:/app/backend/data \
  -e OPENAI_API_BASE_URLS="https://api.openai.com/v1;https://api.mistral.ai/v1" \
  -e OPENAI_API_KEYS="<OPENAI_API_KEY_1>;<OPENAI_API_KEY_2>" \
  --name open-webui \
  --restart always \
  ghcr.io/open-webui/open-webui:main

<OPENAI_API_KEY_1><OPENAI_API_KEY_2>を実際のAPIキーに置き換えてください。

Docker Composeを使用する場合

docker-compose.ymlファイルでOPENAI_API_BASE_URLSOPENAI_API_KEYSの環境変数を定義します:

services:
  open-webui:
    environment:
      - 'OPENAI_API_BASE_URLS=${OPENAI_API_BASE_URLS}'
      - 'OPENAI_API_KEYS=${OPENAI_API_KEYS}'

これらの変数の値を.envファイルで定義することもできます:

OPENAI_API_BASE_URLS="https://api.openai.com/v1;https://api.mistral.ai/v1"
OPENAI_API_KEYS="<OPENAI_API_KEY_1>;<OPENAI_API_KEY_2>"

Open WebUIによる画像生成

Open WebUIは、AUTOMATIC1111とOpenAI DALL·Eの2つのバックエンドを介して画像生成をサポートしています。

AUTOMATIC1111を使用する場合

AUTOMATIC1111を画像生成に使用するには、次の手順に従ってください:

AUTOMATIC1111をインストールし、次のコマンドで起動します:

./webui.sh --api --listen

Dockerを使用する場合、次のコマンドを使用します:

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -e AUTOMATIC1111_BASE_URL=http://host.docker.internal:7860/ -e IMAGE_GENERATION_ENABLED=True -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

Open WebUIで、Settings > Imagesに移動し、AUTOMATIC1111のAPIがアクセス可能なアドレスを「API URL」フィールドに入力します。

ComfyUIを使用する場合

ComfyUIは、画像生成モデルを管理および操作するための代替インターフェースです。ComfyUIを設定するには、次の手順を実行します:

ComfyUIのソフトウェアパッケージをGitHubからダウンロードして展開します。

次のコマンドでComfyUIを起動します:

python main.py

VRAMの低いシステムの場合、--lowvramフラグを使用します:

python main.py --lowvram

Dockerを使用する場合、次のコマンドを使用します:

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -e COMFYUI_BASE_URL=http://host.docker.internal:7860/ -e IMAGE_GENERATION_ENABLED=True -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

Open WebUIで、Settings > Imagesに移動し、ComfyUIのAPIがアクセス可能なアドレスを「API URL」フィールドに入力します。

OpenAI DALL·Eを使用する場合

OpenAI DALL·EをOpen WebUIで画像生成に使用するには、次の手順に従ってください:

OpenAIからAPIキーを取得します:

  • OpenAIのウェブサイト(https://www.openai.com/)にアクセスしてアカウントを登録します。
  • APIセクションに移動し、APIキーを生成します。

Open WebUIを設定してOpenAI DALL·Eを使用するようにします:

  • Open WebUIで、Settings > Imagesセクションに移動します。
  • 画像生成バックエンドとして「OpenAI」を選択します。
  • 提供されたフィールドにOpenAIのAPIキーを入力します。

DALL·Eモデルを選択します:

  • Settings > Imagesセクションで、使用したいDALL·Eモデルを選択します。
  • DALL·E 2は、256x256、512x512、または1024x1024の画像サイズをサポートしています。
  • DALL·E 3は、1024x1024、1792x1024、または1024x1792の画像サイズをサポートしています。

DALL·Eを使用して画像を生成します:

  • テキスト生成モデルを使用して、画像生成のプロンプトを作成します。
  • 応答が完了したら、画像ボタンをクリックして、プロンプトに基づいて画像を生成します。

OpenAI APIを使用して画像を生成するためのサンプルコード:

import openai

openai.api_key = "YOUR_API_KEY"

response = openai.Image.create(
    prompt="A beautiful sunset over a serene beach",
    n=1,
    size="1024x1024"
)

image_url = response['data'][0]['url']
print(image_url)

Open WebUIにおけるRetrieval Augmented Generation(RAG)

Retrieval Augmented Generation(RAG)を使用すると、さまざまなソースからのコンテキストをチャットに組み込むことができます。さまざまなソースからのテキストは、RAGテンプレートと組み合わせられ、ユーザーのプロンプトの先頭に接頭辞として追加されます。

チャットに外部ソースを含める

RAGを起動するために、プロンプトを#記号で始めます。

  • 利用可能なソースのリストが表示されます。

リストから希望するソースを選択します。

  • 選択した後、プロンプトの上部にドキュメントアイコンが表示され、取得が成功したことが示されます。

ローカルソース

RAGのソースとしてローカルドキュメントを使用するには:

Open WebUIのDocumentsセクションで、ファイルをアップロードします。

  • Documentsセクションに移動し、「Upload」ボタンをクリックします。
  • 使用したいローカルファイルを選択します。

RAGを有効にし、アップロードしたローカルドキュメントをソースとして選択します。

ウェブから取得する

RAGのソースとしてWebページを使用するには:

プロンプトを#に続けて目標のURLを入力します。

  • Open WebUIは、指定したURLのコンテンツを取得して解析します。

ヒント:より良い結果を得るために、冗長な情報を避けるために生のバージョンまたは読みやすいバージョンのページへのリンクを使用します。

Webページを取得して解析するためのサンプルコード:

import requests
from bs4 import BeautifulSoup

url = "https://example.com/article"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")

content = soup.find("div", class_="article-content").get_text()
print(content)

ドキュメントの解析

Open WebUIは、ローカルおよびリモートのドキュメントからコンテンツを抽出するためにさまざまなパーサーを使用します。パーサの処理はシステム内部で行われます。

RAGテンプレートのカスタマイズ

RAGテンプレートを変更するには:

  1. Open WebUIのDocumentsセクションに移動します。
  2. 「settings」アイコンをクリックします。
  3. 必要に応じてRAGテンプレートをカスタマイズします。

これらの高度な機能とテクニックを活用することで、Open WebUIの利便性を向上させ、AIプロジェクトの潜在能力を最大限に引き出すことができます。さまざまなソース、テンプレート、画像生成オプションを試して、パワフルで魅力的なAIアプリケーションを作成してください。

結論

Open WebUIは、大規模言語モデルと対話するための強力で使いやすいプラットフォームを提供します。直感的なWebインターフェース、複数のモデルのサポート、カスタマイズ可能なパラメータなどを備えたOpen WebUIは、開発者や研究者がLLMの機能を探索し活用するのに最適なツールです。

💡
AIの最新トレンドに興味がありますか?

それなら、Anakin AIを見逃すことはできません!

Anakin AIは、ワークフローの自動化に必要なオールインワンのプラットフォームであり、簡単に使用できるノーコードアプリビルダー、Llama 3ClaudeGPT-4Uncensored LLMsStable Diffusionを使用して強力なAIアプリを作成することができます...

数分で夢のAIアプリを作成しましょう。Anakin AIを使用すれば、数週間かかりません!

インストール手順、ChatGPTのようなUIの作成、提供されたコードサンプルの利用に従って、Open WebUIをすばやく始めて、さまざまなNLPタスクに対して高品質なテキスト出力を生成できるようになります。テキスト生成、質問応答、または他の言語関連のアプリケーションに取り組んでいる場合、Open WebUIは柔軟で使いやすいソリューションを提供します。

Open WebUIに更に深く進む際には、ドキュメンテーションやコミュニティのリソースを探索して、さらなるガイダンスや高度な使用例を見つけてください。Open WebUIを活用することで、言語モデルのパワーを最大限に活用する可能性は無限大です。