うたカモ技術ブログ

OpenWrt 個人開発 oasis

【個人開発】OpenWrt専用AIアシスタントツール Oasisの導入と使い方

post:     update: 

この記事は作成中です。
この記事で紹介するOasisがサポートするOpenWrtバージョンは最新の24.10です。 開発中のOpenWrt 25.xxでは、パッケージマネージャーソフトがOPKGからAPKに移行した影響でOasisの依存モジュールがAPK対応中となっています。 そのため、現時点ではOasisのAPKパッケージ(OpenWrt 25.xx以降)を使用したインストールは100%失敗しますのでご注意ください。

今回は私が開発したOpenWrt専用AIアシスタントツール Oasisの導入と使い方について紹介します。

Oasisはユーザーの依頼に従ってAIがOpenWrtの設定を変更することを可能にするアプリケーションです。 Oasisをインストールすることで、ユーザーはOpenWrtデバイスを介してAIと会話できるようになります。

これにより、ユーザーは日本語や英語などの自然言語でAIにネットワークやWI-Fiなどの設定変更を依頼 することが可能になります。

AIはOpenWrtの仕様に基づいた詳細な設定変更をユーザーに代わって実施します。

今回は、そんなOasisの導入と使い方について紹介します。

目次

  1. Oasisとは?
  2. インストール方法
  3. Oasisの使い方
  4. AIの回答を調整する方法
  5. おわりに

Oasisとは?

この記事の冒頭でも説明したようにOasisはOpenWrtデバイスとAIサービスを連携させる機能を持ったアプリケーションです。

ここでは、Oasisが出来る事を簡単に説明します。

AIとの会話

OasisをインストールしたOpenWrtデバイスは、コンソール(CUI)とWebUIの両方からAIと会話することが可能になります。

[WebUIを利用したAIとの会話]
luci-app-oasisパッケージをインストールするとOpenWrtのLuCIにOasis用のページが追加されます。 このページの「Chat with AI」タブのチャットインタフェースからAIと会話することができます。

以下はWebUI上でOasisを使用した様子を動画にしたものです。※この動画ではOllamaを使用しています。

[コンソール(CUI)を利用したAIとの会話]
oasisパッケージをインストールするとコンソールからAIと会話できるようになります。 このパッケージはluci-app-oasisの依存パッケージにもなっており、AIとの会話制御はこのソフトウェアが担当しています。 つまり、このソフトウェアがOasisのコアソフトウェアです。

以下はコンソール上でOasisを使用した様子を動画にしたものです。※この動画ではOllamaを使用しています。

このように、OasisはLuCIのWebUIとコンソールの両方から利用することができます。

現在、コンソール上からAIと会話してもAIから提供されたOpenWrtの設定変更の提案をOasisは認識しません。 そのため、AIと会話のみができる状況です。AIの提案を認識するには追加でluci-app-oasisをインストールする必要があります。 以上の理由により、これ以降の使い方の説明は全てluci-app-oasisによって提供されるWebUIをベースに紹介します。

AIによる設定変更の提案

Oasisを介してAIと会話すると、AIはユーザーに対してOpenWrtの設定変更について案内したり、回答を出します。 (これは予めOpenWrtについての質問に答える役割をAIに伝え、調整を掛けているからです。)

会話の中でOpenWrtの設定変更に関する情報(提案)がユーザーに送られるとOasisはその内容を分析します。

分析の結果、AIから提供された提案内容にOpenWrtが認識できる設定変更コマンド(UCIコマンド)が存在することが分かると、 Oasisはユーザーに対してAIの提案を基に設定変更を実施するか否かをポップアップで通知します。

ユーザーはAIからの設定変更の提案を確認し、承認する場合はApplyボタンを押します。これで設定変更が適用されます。 もし、ここで提案内容を取り消したり、何故そのような設定になるのかAIに確認を取ったり、微調整を追加でお願いしたい場合 などはCancelボタンを押した上でAIに追加の質問することができます。

Applyボタンを押して設定変更を適用すると、OpenWrtはAIの提案内容に基づいた設定変更を実施してネットワーク・Wi-Fi の再起動を実施します。設定を適用すると以下のようにプログレスバーが表示されます。

これでAIの提案内容を基にOpenWrtの設定が変更されました。 後は次節で説明する「設定変更を最終確定するか取り消す(ロールバックする)か」を決めることで一連の操作が完了します。

重要:ロールバック機能について

注意

次の説明の操作は設定が適用されてから5分(変更可能)以内に実施してください。

もし、5分を超える場合は自動でロールバック処理が実行され、AIによる設定変更は取り消されます。 これはAIによる設定変更によってOpenWrtデバイスが文鎮化(Brick)するのを防ぐ措置です。

※文鎮化(Brick)とは
端末へのアクセス手段が全て絶たれた結果、もう文鎮(置物)としての役割しかない状態のことです。 つまり、端末が大破して本来の用途に利用できなくなったのと変わりのないことを言います。

上記までの操作で設定変更を適用すると、通信断が発生します。

このとき、適用した設定変更がネットワークに影響を与えないものであった場合はOasisによるページ更新機能 またはユーザーによるWebページの更新ボタン押下などで再びLuCI内のAIチャットページに戻ることができます。

ネットワークに影響を与える設定を適用した結果、OpenWrtデバイスのIPアドレスが変更になった場合は 新しいIPアドレスを特定してください。この間に電源断を実施し、システムを再起動しても構いません。 再起動後にロールバック機能の監視時間である5分が再設定されます。

OasisのAIチャットページが表示されると以下のポップアップで設定変更を最終確定するか聞かれます。

ユーザーはポップアップに表示されるFinalizeボタンを押すことでAIによる設定変更を最終確定します。 逆にRollbackボタンを押した場合は以前の設定に戻ります。

Rollbackを実施して設定を戻す場合、OpenWrtはシステム再起動(reboot)になります。

Oasisを利用してAIによる設定変更を適用した場合は、必ず上記の操作を実施する必要があります。 上記の操作を実施しない場合は設定適用から5分後に自動でロールバックが実行されます。

インストール方法

ここではOasisのインストール方法について説明します。

インストール方法はいくつかありますので、簡単な方法から掲載します。

その1:LuCIで配布パッケージをインストールする

1:Oasisパッケージのダウンロード
OasisのGitHubにアクセスしてReleasesにある最新版のOasisをクリックします。(現在の最新はv1.0-betaです。)

この中で拡張子が「ipk」のパッケージをクリックしてダウンロードします。

2:LuCI経由でOpenWrtデバイスにOasisをアップロードしてインストールする
次はLuCIにアクセスしてメニューバーのSystemからプルダウンメニューのSoftwareをクリックします。

次に「Upload Package...」をクリックします。

続いて「Browse...」をクリックして先ほどダウンロードしたoasis_1.0-r1_all.ipkを選択します。

すると、以下のようにUploadボタンが出現するのでこれをクリックします。

パッケージが認識されると以下の表示がでますので、「Install」を押します。

正常にインストールが完了すると以下の画面になります。

この操作をluci-app-oasisに対しても実施すればインストール完了です。

最後にOpenWrtデバイスを再起動することでOasisが利用できるようになります。

QA1:oasisパッケージのインストールが失敗する場合

恐らく、依存パッケージのluci-compatまたはlua-curl-v3が予めインストールされていないことが原因である可能性が高いです。

この問題を解決するにはOpenWrtデバイスをインターネットにアクセスできるようにする必要があります。

OpenWrtデバイスがインターネットにアクセスできれば、上記のインストール操作後に必要な依存パッケージをリポジトリから探し出して問題を解決できるようになります。

インターネットにアクセスするためのOpenWrtの設定例は以下の記事を参考にしてください。

  1. LuCIによる無線LANアクセスポイント(AP)設定
  2. LuCIによるルーター設定

QA2:QA1の解決策を実施してもOasisパッケージがインストールできない場合

そのOpenWrtデバイスに対応するリポジトリの中に、luci-compatやlua-curl-v3パッケージが存在しないことが考えられます。

この問題を解決するには、読者ご自身のPC上にOpenWrtのビルドシステム(buildroot)を構築した上で、不足しているluci-compatまたは lua-curl-v3をそのOpenWrtデバイス用に作成する必要があります。

そして、作成したluci-compatやlua-curl-v3を上記で紹介したLuCIを用いてOpenWrtデバイスに アップロードし、追加インストールしてください。

これによって、Oasisパッケージのインストールを阻害する依存関係の問題は解決されます。

読者ご自身のPC上にOpenWrtのビルドシステムを構築してパッケージを作成する手順についてはこの記事の Oasisパッケージを予め入れたOpenWrtイメージを作成してインストールする(例:Raspberry Pi5)を参照してください。

この作業を全てやった上で次のコマンドでluci-compatまたはlua-curl-v3を単体ビルド(作成)することができます。

kamo@kamo:~/openwrt$ make package/luci-compat/compile
kamo@kamo:~/openwrt$ make package/lua-curl-v3/compile

作成されたパッケージは./openwrt/bin/packages/<architecture>/luciとpackagesに入っていますので、 続けてSCPコマンドでOpenWrtデバイスにアップロードしてインストールしてみてください。

その2:コンソールを使用して配布パッケージをインストールする

1:OasisパッケージのダウンロードとOpenWrtデバイスへのアップロード
OasisのGitHubにアクセスしてReleaseをクリックします。

この中で拡張子が「ipk」のパッケージをクリックしてダウンロードします。

ダウンロードしたパッケージをSCPコマンドでOpenWrtデバイスにアップロードします。(以下はWindowsのコマンドプロンプトから SCPコマンドを利用してOpenWrtデバイスにパッケージをアップロードした際のコンソール画面の結果です。)

C:\Users\xxxx\Downloads>scp -O ./oasis_1.0-r1_all.ipk root@192.168.1.1:/root
root@192.168.1.1's password:
oasis_1.0-r1_all.ipk          100%   13KB  12.8MB/s   00:00

C:\Users\xxxx\Downloads>scp -O ./luci-app-oasis_1.0-r1_all.ipk root@192.168.1.1:/root
root@192.168.1.1's password:
luci-app-oasis_1.0-r1_all.ipk 100%  111KB 111.2KB/s   00:00

2:OpenWrtのコンソールにアクセスしてパッケージをインストール】
OpenWrtデバイスにパッケージをアップロードできたらSSH接続をしてコンソールにアクセスします。 (以下はWindowsのコマンドプロンプトからOpenWrtデバイスに対してSSH接続をした際の結果です。)

C:\Users\xxxx>ssh root@192.168.1.1
root@192.168.1.1's password:


BusyBox v1.36.1 (2025-01-29 21:37:05 UTC) built-in shell (ash)

    _______                     ________        __
    |       |.-----.-----.-----.|  |  |  |.----.|  |_
    |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
    |_______||   __|_____|__|__||________||__|  |____|
            |__| W I R E L E S S   F R E E D O M
    -----------------------------------------------------
    OpenWrt 24.10-SNAPSHOT, r28421-1a75172721
    -----------------------------------------------------
root@OpenWrt:~#

そして次のコマンドを実行して先ほどアップロードしたパッケージをインストールします。

root@OpenWrt:~# opkg install oasis_1.0-r1_all.ipk
Installing oasis (1.0-r1) to root...
Configuring oasis.
root@OpenWrt:~# opkg install luci-app-oasis_1.0-r1_all.ipk
Installing luci-app-oasis (1.0-r1) to root...
Configuring luci-app-oasis.
root@OpenWrt:~# service rpcd reload   # Oasisを利用するために必要な制御モジュールの情報を更新します。(デバイスの再起動でもOK)

これでOasisのインストールが完了しました。

QA1:oasisパッケージのインストールが失敗する場合

恐らく、依存パッケージのluci-compatまたはlua-curl-v3が予めインストールされていないことが原因である可能性が高いです。

そのため、OpenWrtデバイスをインターネットにアクセスできるようにする必要があります。

インターネットにアクセスできれば、上記のインストールコマンドの実行後に必要な依存パッケージをリポジトリから探し出して問題を解決できるようになります。

OpenWrtデバイスがインターネットにアクセスするための設定例は以下の記事を参考にしてください。

  1. LuCIによる無線LANアクセスポイント(AP)設定
  2. LuCIによるルーター設定

QA2:QA1の解決策を実施してもOasisパッケージがインストールできない場合

そのOpenWrtデバイスに対応するリポジトリの中に、luci-compatやlua-curl-v3パッケージが存在しないことが考えられます。

この問題を解決するには、読者ご自身のPC上にOpenWrtのビルドシステム(buildroot)を構築した上で、不足しているluci-compatまたは lua-curl-v3をそのOpenWrtデバイス用に作成する必要があります。

そして、作成したluci-compatやlua-curl-v3を上記で紹介したSCPコマンドを用いてOpenWrtデバイスに アップロードし、追加インストールしてください。

これによって、Oasisパッケージのインストールを阻害する依存関係の問題は解決されます。

読者ご自身のPC上にOpenWrtのビルドシステムを構築してパッケージを作成する手順についてはこの記事の Oasisパッケージを予め入れたOpenWrtイメージを作成してインストールする(例:Raspberry Pi5)を参照してください。

この作業を全てやった上で次のコマンドでluci-compatまたはlua-curl-v3を単体ビルド(作成)することができます。

kamo@kamo:~/openwrt$ make package/luci-compat/compile
kamo@kamo:~/openwrt$ make package/lua-curl-v3/compile

作成されたパッケージは./openwrt/bin/packages/<architecture>/luciとpackagesに入っていますので、 続けてSCPコマンドでOpenWrtデバイスにアップロードしてインストールしてみてください。

その3:Oasisパッケージを予め入れたOpenWrtイメージを作成してインストールする(例:Raspberry Pi5)

OpenWrtイメージを作成する実行環境OSについて

OpenWrtイメージを作成するにはUbuntuなどのLinuxディストリビューションが必要です。

もし、読者の方がWindowsやMacなどお持ちでしたらWSLやApple Silicon、Dockerなどの仮想環境上でLinuxを実行することができます。

仮想環境上のLinux(Ubuntu)で次の手順を実施してください。ちなみに、この記事はWSL上に構築したUbuntuでOpenWrtイメージやパッケージを作成した結果を基に書いています。

読者ご自身のPC上で、OasisパッケージをプリインストールしたOpenWrtイメージを作成してデバイスにインストールする方法もあります。

1:OpenWrtのビルドシステム(buildroot)をPC上に構築する
次は最新安定版であるOpenWrt 24.10のイメージ(Raspberry Pi5用)を作成するコマンドです。これらを全て実行することで ビルドシステムの構築が完了します。

kamo@kamo:~$ git clone https://github.com/openwrt/openwrt.git
kamo@kamo:~$ cd openwrt
kamo@kamo:~/openwrt$ git checkout openwrt-24.10
kamo@kamo:~/openwrt$ echo "src-git ai https://github.com/utakamo/oasis.git" >> feeds.conf.default
kamo@kamo:~/openwrt$ ./scripts/feeds update -a
kamo@kamo:~/openwrt$ ./scripts/feeds install -a
kamo@kamo:~/openwrt$ ここでOpenwrtの公式サイトに掲載されている必須パッケージをインストールする
kamo@kamo:~/openwrt$ make menuconfig

1-1:ターゲットデバイスの設定
上記のコマンドが正常に実行されると次のメニューコンフィグが表示されます。

このメニュー項目のTarget Systemを選択します。

そして、今回はRaspberry Pi5用のファームウェアイメージを作成するのでRaspberry Piのターゲットファミリである Broadcom BCM27xxをチェックします。

次にメニュー項目のSubtargetを選択してRaspberry Pi5のハードウェアを意味するBCM2712 boardsにチェックを入れます。

補足:別のRaspberry Piシリーズをターゲットにしたいとき

別のRaspberry Piシリーズ用のOpenWrtイメージを作成したい場合は以下の表を参考にしてください。

モデル ターゲット名
Raspberry Pi1 BCM2708
Raspberry Pi2 BCM2709
Raspberry Pi3 BCM2710
Raspberry Pi4 BCM2711
Raspberry Pi5 BCM2712

チェックを入れ終えると、メニュー項目にTarget Profile (Raspberry Pi 5)が表示されます。 ここまでの操作で特定のハードウェア(今回はRaspberry Pi5)向けにOpenWrtイメージをビルドする準備ができました。

次は必要なパッケージをプリインストール対象に設定する作業に入ります。

1-2:LuCIをプリインストール対象に設定する
まず、メニュー項目のLuCIを選択します。

続いてCollectionsを選択すると次の画面が出てきますので、luciluci-ssl にチェックを入れます。

これでOpenWrtイメージの中にWebUIであるLuCIがプリインストールされるようになります。

1-3:Oasisをプリインストール対象に設定する
次はOasisパッケージをプリインストール対象にする設定です。

メニュー項目のutakamoを選択します。

次にluci-app-oasisをチェックします。(このときに依存パッケージのoasisも自動でチェックが付きます。)

これでOpenWrtイメージを作成する作業は一通り完了です。 コンフィグ画面下部のExitを押してユーザー操作をコンソールに戻してください。

2:ファームウェアの作成
次のコマンドでビルドを開始します。

kamo@kamo:~/openwrt$ make V=s

上記のコマンドの実行が終わった後は、./openwrt/bin/targets/<Target System>/<Sub target>にOpenWrtのファームウェアイメージが格納されています。

この記事ではRaspberry Pi5をターゲットデバイスにOpenWrtイメージを作成しましたので次のようにイメージファイルが作成されています。 OpenWrtのファームウェアイメージは赤字で表示されているファイルの中でfactoryという名前が付いているものです。 (今回はデフォルト設定通りにファイルシステム別で2つのイメージファイルが作成されています。)

kamo@kamo:~/openwrt/bin/targets/bcm27xx/bcm2712$ ls
config.buildinfo                                          openwrt-bcm27xx-bcm2712-rpi-5.manifest
feeds.buildinfo                                           packages
openwrt-bcm27xx-bcm2712-rpi-5-ext4-factory.img.gz         profiles.json
openwrt-bcm27xx-bcm2712-rpi-5-ext4-sysupgrade.img.gz      sha256sums
openwrt-bcm27xx-bcm2712-rpi-5-squashfs-factory.img.gz     version.buildinfo
openwrt-bcm27xx-bcm2712-rpi-5-squashfs-sysupgrade.img.gz

上記のmake V=sが完了した以降はmake package/oasis/compilemake package/luci-app-oasis/compileでパッケージ単体をビルドすることも可能になります。

3:OpenWrtイメージをMicroSDカードに書き込む
最後に上記で作成したOpenWrtイメージをMicroSDカードに書き込みます。

今回はRaspberry Pi Imagerを利用します。 これはRaspberry Pi公式サイトが配布しているRaspberry Pi専用書き込みツールです。 ubuntu・Mac OS・windows版があります。

次のコマンドでインストールして起動します。

kamo@kamo:~$ sudo apt update
kamo@kamo:~$ sudo apt install rpi-imager
kamo@kamo:~$ rpi-imager

無事起動すると以下の画面が表示されますので、「デバイスを選択」をクリックします。

すると、Raspberry Piシリーズの一覧が出ますので「Raspberry Pi5」を選択します。 (※正直な話、この操作はRaspberry Pi OSを書き込むときのものなので、 OpenWrtイメージの書き込みとは関係ないですが一応やってください。)

次に「OSを選択」をクリックして、一番下にある「Use Custom」を選択してください。

エクスプローラーが立ち上がりますので作成したOpenWrtイメージを選択します(※)。

エクスプローラーでOpenWrtイメージが見つからないとき

仮想環境ではない純粋なUbuntu上でOpenWrtイメージの作成とRaspberry Pi Imagerを使用すれば、 「Use Custom」を選択した際に出るエクスプローラで直ぐにイメージファイルを見つけることができます。

しかし、Windowsなどの仮想環境上でUbuntuを利用している場合はホスト環境のデスクトップなどに ファイルをコピーしてから再度Raspberry Pi Imagerを起動してください。これで恐らく容易に見つけられます。

ちなみに、WindowsのWSLでUbuntuを利用していた場合、\\wsl.localhost\Ubuntu\home\<user name>\openwrt\bin\targets\bcm27xx\bcm2712 などのようなパスでアクセスすることができます。

次に「書き込み」を選択してMicro SDカードをクリックします。

そして最後に「次へ」をクリックするとMicro SDカードに対してOpenWrtイメージの書き込みが開始されます。

書き込みが完了したら、Micro SDカードをRaspbbery Pi5に挿入して電源を入れるとOpenWrtデバイスとして使用できるようになります。

OpenWrtのビルドシステムでパッケージを単体作成してインストールする

上記でOpenWrtイメージを作成すると、以降は次のコマンドでoasisとluci-app-oasisパッケージの単体作成ができるようになります。

kamo@kamo:~/openwrt$ make package/luci-compat/compile
kamo@kamo:~/openwrt$ make package/lua-curl-v3/compile

作成されたパッケージは./openwrt/bin/packages/<architecture>/luciとpackagesに入っていますので、 続けてSCPコマンドでOpenWrtデバイスにアップロードしてインストールしてみてください。

なお、上記の例で作成したOpenWrtイメージはRaspberry Pi5のものですが、oasisとluci-app-oasisパッケージ単体であればハードウェア(デバイス)依存は ありません。そのため、ここで作成したoasisとluci-app-oasisはどんなデバイスにでもインストールすることが可能です。

Ollamaを使用する方法

この節では、Ollamaを使用する際の設定やネットワーク構成について説明します。

PCにOllamaをインストールして必要な設定変更を実施する

まず、OpenWrtデバイスと連携するPCにOllamaをインストールして必要な設定変更を実施します。

Ollamaのインストールと設定については以下のリンクを参考に実施してください。

  1. 【Ollama】無料で手持ちPCに自分だけのAI(LLM)を簡単に導入する方法 - ollamaのインストール
  2. 【Ollama】無料で手持ちPCに自分だけのAI(LLM)を簡単に導入する方法 - 宅内ネットワーク(LAN)内で家族もAIを利用できるようにする方法

なお、この記事で紹介する使用例ではLLMモデルとしてgemma2:2bを使用しますので、 Ollamaのインストール後はこのLLMをダウンロードしてください。(上記の記事でもgemma2:2bを例にしていますので参考にしてください。)

OasisとOllamaが連携できるネットワーク構成パターン

OllamaをインストールしたPCをどのように配置すればOasisと連携できるかをネットワーク構成パターン別に紹介します。

以下のように列挙しましたが、基本的にはどんなネットワーク構成でも連携可能です。

その1: P2P接続 (OpenWrt初期状態)
OpenWrtの初期状態のときのネットワーク構成です。このとき、OpenWrtデバイスは有線LANでPCと接続することで 通信が可能です。このとき、PC側にOllamaがインストールされていればOasisと連携できます。

その2:OpenWrtをメインルーターとして利用しているとき
OpenWrtを既にメインルーターとして使用している場合は、OllamaをインストールしたPCを同じLANセグメント所属させればOKです。 そのため、以下の図のようにユーザーが使用するPCにOllamaをインストールしても良いですし、AIサーバー用のPCを用意してそこに Ollamaを入れても良いです。

その3:OpenWrtをAPとして利用しているとき
OpenWrtをアクセスポイント(AP)として使用している場合は、OpenWrtが所属するLANセグメントにOllamaをインストールしたPC を所属させればOKです。そのため、以下の図のようにユーザーが使用するPCにOllamaをインストールしても良いですし、AIサーバー用のPCを用意してそこに Ollamaを入れても良いです。

その4:OpenWrtをサブルーター(二重ルーター)として利用しているとき
OpenWrtをサブルーターとして使用している場合は、メインルーターのLANセグメントまたはサブルーターのLANセグメントに OllamaをインストールしたPCを所属させればOKです。そのため、以下の図のようにユーザーが使用するPCにOllamaをインストールしても良いですし、 AIサーバ用のPCを用意してそこにOllamaを入れても良いです。

OasisがOllamaと連携するための設定

上記で説明した準備を全て実施した後は、Oasisの設定にOllamaの情報を保存することで連携ができます。

次はOpenWrtデバイス(192.168.1.1/24)とOllamaをインストールしたPC(192.168.1.245/24)が接続された状態(つまり、上記のネットワーク構成パターンその1の状態)のときに OpenWrtのOasisとOllamaを連携させるときの設定例です。(この例では使用するLLMモデルをgemma2:2bとしています。)

Oasisの設定はLuCIのメニューバーの「Network」のプルダウンにある「Oasis」をクリックして表示されるSettingタブで実施できます。 (上記の場合、OpenWrtデバイスのLuCIには「http://192.168.1.1」でアクセス可能です。)

以下のSettingタブが表示されたら「Add」ボタンをクリックしてください。

するとAIサービスを使用すために必要な設定項目が出てきますので必要な情報を入力します。

通常、Ollamaとチャットをするにはhttp://<ip address>:11434/api/chatという形式のURLパスをエンドポイントとして 指定する必要があります。そのため、ここではエンドポイントがhttp://192.168.1.245:11434/api/chatと設定しました。

また、APYキーは設定されていませんので無し(未入力)として、LLMモデルをgemma2:2bとしています。

必要な設定を入力したら「Apply」ボタンを押して設定を更新し、「Chat with AI」タブに表示を切り替えてAIに話掛けて見てください。

ここまでの設定が正しければ、AIからの応答が返ってきます。これでOasisを介してAIが利用できるようになりました。

OpenAIを使用する方法

OpenAIのAPIキーを作成する(※課金が必要)

OpenAIとOasisを連携するにはOpenAIのAPIキーが必要です。そのため、課金をしてOpenAIのサービスプランに加入する必要があります。 試用プランを利用できる場合は一定期間、OpenAIが提供するAIサービスを無料で使用することができます。しかし、基本的にはお金が掛かるということにご注意ください。

サービスプランに加入したら次のOpenAIのページにアクセスしてユーザーログインをします。

次に左上のSearchで「API Keys」で検索して一番先頭に出てきたページをクリックします。

すると、次の画面が表示されますので「Create new secret key」をクリックします。

これでAPIキーの設定画面が表示されますので、APIキーの名前を決めた上で「Create secret key」ボタンを押します。

ここまでの操作が完了すると、APIキーが発行されますので「Copy」ボタンをクリックしてクリップボードにコピーします。 このAPIキーは忘れないように管理してください。忘れたら再発行が必要です。

最後に「Done」ボタンをクリックするとAPIキーを管理するダッシュボードが表示されます。これでOpenAIのAPIキーの作成は一通り完了です。

OasisとOpenAIが連携できるネットワーク構成パターン

OpenAIはインターネットを介して利用できるAIサービスなのでOpenWrtデバイスはインターネット通信ができる状態である 必要があります。

以下はOpenAIを利用する際のネットワーク構成パターンです。一応以下のように列挙していますが、基本的にはインターネットに疎通できる ように配置できればOKです。

その1:OpenWrtをメインルーターとして利用しているとき
OpenWrtデバイスをメインルーターとして利用している場合は、その状態でインターネットにアクセス出来れば良いです。 つまり、その状態でスマホやPCがOpenWrtデバイスが管理するネットワークを経由してネットサーフィンできる状態であればOKです。

その2:OpenWrtをAPとして利用しているとき
メインルーターがインターネット通信ができる状態であり、アクセスポイントとして機能しているOpenWrtがメインルーターの LANセグメントに所属していれば問題ありません。

その3:OpenWrtをサブルーター(二重ルーター)として利用しているとき
これに関してもメインルーターがインターネット通信ができる状態であり、サブルーターのOpenWrtが正しくパケットをルーティング 出来れば問題ありません。

OasisがOpenAIと連携するための設定

上記の例を参考にOpenWrtデバイスがインターネットにアクセスできるようにしたら次はLuCIにアクセスしてOasisのSettingタブに 前節で作成したAPIキーなどの必要な情報を登録します。

※エンドポイントは必ずhttps://api.openai.com/v1/chat/completionsとしてください。

問題なければ「Apply」ボタンを押して設定を適用し、「Chat With AI」タブでAIにメッセージを送信すると応答が返ってきます。

このようにしてOasisとOpenAIのAIサービスを連携させることが可能です。

Oasisの使い方(その他)

チャットのタイトルを変更する

チャットデータをダウンロードする

RAWデータをダウンロードする(JSON)

AIとの会話のみを抽出したテキストデータをダウンロードする(TEXT)

AIの回答を調整する方法

既存システムメッセージの編集

カスタムシステムメッセージの追加(実装中)

外部サーバー内システムメッセージの利用(実装中)

RAG(追加モジュールとして開発を検討中)

おまけ:様々なテーマ適用後のOasisページの見え方

luci-theme-bootstrap

おわりに